assert_aes_key_value(IMPORTED_ALIAS, nullptr, plainData);
}
-void testImportRSAHashes(int buffLen,
- const Alias &wrappingKeyAlias,
- const Alias &unwrappingKeyAlias){
- ParamListPtr params = getDefaultParams({CKMC_ALGO_RSA_OAEP, 0});
-
- auto test = [&]{
- RawBufferPtr plainKey = encryptAndImport(params,
- buffLen,
- wrappingKeyAlias,
- nullptr,
- unwrappingKeyAlias,
- nullptr,
- IMPORTED_ALIAS.c_str(),
- UNEXPORTABLE);
-
- assert_aes_key_value(IMPORTED_ALIAS, nullptr, plainKey);
-
- ckmc_remove_key(IMPORTED_ALIAS.c_str());
- };
-
- test();
- setParam(params, CKMC_PARAM_ED_OAEP_HASH, CKMC_HASH_SHA1);
- test();
- setParam(params, CKMC_PARAM_ED_OAEP_HASH, CKMC_HASH_SHA256);
- test();
-}
-
void testBadWrappedKey(const Algo &algo){
ParamListPtr params = getDefaultParams(algo);
ckmc_key_s *wrongKey = generate_AES_key(128, nullptr);
testImportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
}
-RUNNER_TEST(TKW_VALID_ARGS_RSA_OAEP_DIFFERENT_HASH){
- // 1024 is too short for SHA512 hash
- testImportRSAHashes(16, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
- testImportRSAHashes(16, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
-}
-
RUNNER_TEST(TKW_RSAOAEP_INVALID_BUFF_LENGTH){
testImportInvalidBuffLen(RSA_OAEP_ALGO, 8, RSA_KEY_1024_PUB_ALIAS, RSA_KEY_1024_PRV_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 12, RSA_KEY_1024_PUB_ALIAS, RSA_KEY_1024_PRV_ALIAS);
testImportExportCustomParameters(RSA_OAEP_ALGO, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, DEFAULT_IV, CKMC_PARAM_ED_LABEL, AAD64);
}
+RUNNER_TEST(TKW_IMPORT_EXPORT_RSA_HASH){
+ auto test = [](const Alias &wrappingKeyAlias, const Alias &unwrappingKeyAlias){
+ for (auto hash : {CKMC_HASH_SHA1, CKMC_HASH_SHA256}) {
+ // DEFAULT_IV will be ignored by RSA
+ testImportExportCustomParameters(RSA_OAEP_ALGO,
+ wrappingKeyAlias,
+ nullptr,
+ unwrappingKeyAlias,
+ nullptr,
+ DEFAULT_IV,
+ CKMC_PARAM_ED_OAEP_HASH,
+ hash);
+ }
+ };
+ test(RSA_KEY_1024_PUB_ALIAS, RSA_KEY_1024_PRV_ALIAS);
+ test(RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
+ test(RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
+}
+
RUNNER_TEST(TKW_RSA_WRAPPED_KEY){
ParamListPtr params = getDefaultParams(AES_CTR_ALGO);