[UTC][key-manager][ACR-1797] Tests for OAEP hash parameter 64/299864/1
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 10 Oct 2023 10:35:16 +0000 (12:35 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 11 Oct 2023 07:33:54 +0000 (09:33 +0200)
Change-Id: I6cfa1d2b7512435a0aebe9d5b06b5c34ceff9f8f

src/utc/key-manager/utc-key-manager-crypto.c

index c29fac3..85ad577 100755 (executable)
@@ -1422,6 +1422,13 @@ int utc_ckmc_import_wrapped_key_n(void)
     iv_buffer.data = iv;
     iv_buffer.size = sizeof(iv);
 
+    size_t rsa_size = 1024;
+    const char *rsa_prv = "rsa-prv";
+    const char *rsa_pub = "rsa-pub";
+
+    ret = ckmc_create_key_pair_rsa(rsa_size, rsa_prv, rsa_pub, exportable, exportable);
+    assert_eq(ret, CKMC_ERROR_NONE);
+
     ret = ckmc_create_key_aes(size, aes_key_alias, exportable);
     assert_eq(ret, CKMC_ERROR_NONE);
 
@@ -1449,8 +1456,19 @@ int utc_ckmc_import_wrapped_key_n(void)
     ret = ckmc_import_wrapped_key(params, aes_key_alias, "", imported_alias, NULL, exportable);
     assert_eq(ret, CKMC_ERROR_INVALID_PARAMETER);
 
+    ret = ckmc_param_list_set_integer(params, CKMC_PARAM_ALGO_TYPE, CKMC_ALGO_RSA_OAEP);
+    assert_eq(ret, CKMC_ERROR_NONE);
+
+    ret = ckmc_param_list_set_integer(params, CKMC_PARAM_ED_OAEP_HASH, CKMC_HASH_SHA384);
+    assert_eq(ret, CKMC_ERROR_NONE);
+
+    ret = ckmc_import_wrapped_key(params, rsa_prv, "", imported_alias, aes_key, exportable);
+    assert_eq(ret, CKMC_ERROR_INVALID_PARAMETER);
+
     ckmc_param_list_free(params);
     ckmc_remove_alias(aes_key_alias);
+    ckmc_remove_alias(rsa_prv);
+    ckmc_remove_alias(rsa_pub);
     ckmc_buffer_free(encrypted);
     ckmc_key_free(aes_key);
 
@@ -1460,8 +1478,8 @@ int utc_ckmc_import_wrapped_key_n(void)
 /**
  * @testcase        utc_ckmc_export_wrapped_key_p
  * @since_tizen     6.0
- * @description     Export key with AES GCM algorithm.
- * @scenario        Create AES key, wrap it with AES GCM, import and export.
+ * @description     Export key with RSA OAEP algorithm.
+ * @scenario        Create AES key, wrap it with RSA OAEP, import and export.
  */
 int utc_ckmc_export_wrapped_key_p(void)
 {
@@ -1492,6 +1510,9 @@ int utc_ckmc_export_wrapped_key_p(void)
     ret = ckmc_generate_new_params(CKMC_ALGO_RSA_OAEP, &params);
     assert_eq(ret, CKMC_ERROR_NONE);
 
+    ret = ckmc_param_list_set_integer(params, CKMC_PARAM_ED_OAEP_HASH, CKMC_HASH_SHA256);
+    assert_eq(ret, CKMC_ERROR_NONE);
+
     ret = ckmc_encrypt_data(params, rsa_prv, "", plain_text, &encrypted);
     assert_eq(ret, CKMC_ERROR_NONE);
 
@@ -1549,6 +1570,13 @@ int utc_ckmc_export_wrapped_key_n(void)
     iv_buffer.data = iv;
     iv_buffer.size = sizeof(iv);
 
+    size_t rsa_size = 1024;
+    const char *rsa_prv = "rsa-prv";
+    const char *rsa_pub = "rsa-pub";
+
+    ret = ckmc_create_key_pair_rsa(rsa_size, rsa_prv, rsa_pub, exportable, exportable);
+    assert_eq(ret, CKMC_ERROR_NONE);
+
     ret = ckmc_create_key_aes(128, imported_alias, exportable);
     assert_eq(ret, CKMC_ERROR_NONE);
 
@@ -1573,7 +1601,18 @@ int utc_ckmc_export_wrapped_key_n(void)
     ret = ckmc_export_wrapped_key(params, aes_key_alias, "", imported_alias, "", NULL);
     assert_eq(ret, CKMC_ERROR_INVALID_PARAMETER);
 
+    ret = ckmc_param_list_set_integer(params, CKMC_PARAM_ALGO_TYPE, CKMC_ALGO_RSA_OAEP);
+    assert_eq(ret, CKMC_ERROR_NONE);
+
+    ret = ckmc_param_list_set_integer(params, CKMC_PARAM_ED_OAEP_HASH, CKMC_HASH_SHA384);
+    assert_eq(ret, CKMC_ERROR_NONE);
+
+    ret = ckmc_export_wrapped_key(params, rsa_pub, "", imported_alias, "", NULL);
+    assert_eq(ret, CKMC_ERROR_INVALID_PARAMETER);
+
     ckmc_param_list_free(params);
+    ckmc_remove_alias(rsa_prv);
+    ckmc_remove_alias(rsa_pub);
     ckmc_remove_alias(imported_alias);
     ckmc_remove_alias(aes_key_alias);
     ckmc_key_free(imported_key);