[UTC][key-manager][ACR-1797] Tests for OAEP hash parameter 22/299822/2
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:55:11 +0000 (09:55 +0200)
Change-Id: I6cfa1d2b7512435a0aebe9d5b06b5c34ceff9f8f

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

index 77aed0ab345dc552cf94dca647390fc64951a02c..54fa9e9350d05f433e97510f4601ed7c0b260c11 100755 (executable)
@@ -1505,6 +1505,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);
 
@@ -1532,8 +1539,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);
 
@@ -1543,8 +1561,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)
 {
@@ -1575,6 +1593,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);
 
@@ -1632,6 +1653,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);
 
@@ -1656,7 +1684,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);