generateSymmetricKeys(256);
generateRsaKeys(1024);
generateRsaKeys(2048);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
generateRsaKeys(4096);
-
+#endif
PLAIN_DATA = create_raw_buffer(createRandomBufferCAPI(BUF_LEN));
#ifdef TZ_BACKEND
ckmc_backend_info_h info;
test( { CKMC_ALGO_RSA_OAEP, 1024 });
test( { CKMC_ALGO_RSA_OAEP, 2048 });
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
test( { CKMC_ALGO_RSA_OAEP, 4096 });
+#endif
}
void testNoIvEnc(const Algo& algo)
testEncryptDecryptDifferentKeys({CKMC_ALGO_RSA_OAEP, 1024}, false);
testEncryptDecryptDifferentKeys({CKMC_ALGO_RSA_OAEP, 2048}, false);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testEncryptDecryptDifferentKeys({CKMC_ALGO_RSA_OAEP, 4096}, false);
+#endif
}
RUNNER_TEST_MULTIPLE(TED_0300_encrypt_decrypt, SyncEnv, AsyncEnv, CipherEnv)
RUNNER_IGNORED_MSG("RSA-OAEP labels are not supported in openssl");
encryptionWithCustomData({CKMC_ALGO_RSA_OAEP, 1024}, CKMC_PARAM_ED_LABEL);
encryptionWithCustomData({CKMC_ALGO_RSA_OAEP, 2048}, CKMC_PARAM_ED_LABEL);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
encryptionWithCustomData({CKMC_ALGO_RSA_OAEP, 4096}, CKMC_PARAM_ED_LABEL);
+#endif
}
RUNNER_TEST_MULTIPLE(TED_1330_rsa_longest_data, SyncEnv, AsyncEnv)
{
testRsaLongestData({CKMC_ALGO_RSA_OAEP, 1024}, 86);
testRsaLongestData({CKMC_ALGO_RSA_OAEP, 2048}, 214);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testRsaLongestData({CKMC_ALGO_RSA_OAEP, 4096}, 470);
+#endif
}
RUNNER_TEST_MULTIPLE(TED_1350_rsa_data_too_long, SyncEnv, AsyncEnv)
{
testRsaDataTooLong({CKMC_ALGO_RSA_OAEP, 1024}, 87);
testRsaDataTooLong({CKMC_ALGO_RSA_OAEP, 2048}, 215);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testRsaDataTooLong({CKMC_ALGO_RSA_OAEP, 4096}, 471);
+#endif
}
RUNNER_TEST_MULTIPLE(TED_1360_rsa_different_hashes, SyncEnv, AsyncEnv)
RSA_KEY_2048_PUB_ALIAS.c_str(),
UNEXPORTABLE,
EXPORTABLE);
-
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
assert_positive(ckmc_create_key_pair_rsa,
4096,
RSA_KEY_4096_PRV_ALIAS.c_str(),
RSA_KEY_4096_PUB_ALIAS.c_str(),
UNEXPORTABLE,
EXPORTABLE);
-
+#endif
assert_positive(ckmc_create_key_aes, 128, AES_KEY_128_ALIAS.c_str(), UNEXPORTABLE);
assert_positive(ckmc_create_key_aes, 192, AES_KEY_192_ALIAS.c_str(), UNEXPORTABLE);
assert_positive(ckmc_create_key_aes, 256, AES_KEY_256_ALIAS.c_str(), UNEXPORTABLE);
ckmc_remove_key(RSA_KEY_1024_PUB_ALIAS.c_str());
ckmc_remove_key(RSA_KEY_2048_PRV_ALIAS.c_str());
ckmc_remove_key(RSA_KEY_2048_PUB_ALIAS.c_str());
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
ckmc_remove_key(RSA_KEY_4096_PRV_ALIAS.c_str());
ckmc_remove_key(RSA_KEY_4096_PUB_ALIAS.c_str());
+#endif
ckmc_remove_key(AES_KEY_128_ALIAS.c_str());
ckmc_remove_key(AES_KEY_192_ALIAS.c_str());
ckmc_remove_key(AES_KEY_256_ALIAS.c_str());
testImportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
}
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
RUNNER_TEST(TKW_VALID_ARGS_RSA_OAEP_4096){
testImportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
testImportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
testImportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
}
+#endif
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, 8, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 12, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 82, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testImportInvalidBuffLen(RSA_OAEP_ALGO, 8, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 12, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 82, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
+#endif
}
RUNNER_TEST(TKW_RSAOAEP_EXPORT_INVALID_HASH){
testImportInvalidBuffLen(RSA_OAEP_ALGO, 16, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PUB_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 24, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PUB_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 32, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PUB_ALIAS);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testImportInvalidBuffLen(RSA_OAEP_ALGO, 16, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PUB_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 24, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PUB_ALIAS);
testImportInvalidBuffLen(RSA_OAEP_ALGO, 32, RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PUB_ALIAS);
+#endif
}
RUNNER_TEST(TKW_DIF_POLICIES_EXPORTABLE_IMPORTED){
RUNNER_IGNORED_MSG("RSA-OAEP labels are not supported in openssl");
testImportExportCustomParameters(RSA_OAEP_ALGO, RSA_KEY_1024_PUB_ALIAS, nullptr, RSA_KEY_1024_PRV_ALIAS, nullptr, DEFAULT_IV, CKMC_PARAM_ED_LABEL, AAD64);
testImportExportCustomParameters(RSA_OAEP_ALGO, RSA_KEY_2048_PUB_ALIAS, nullptr, RSA_KEY_2048_PRV_ALIAS, nullptr, DEFAULT_IV, CKMC_PARAM_ED_LABEL, AAD64);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testImportExportCustomParameters(RSA_OAEP_ALGO, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, DEFAULT_IV, CKMC_PARAM_ED_LABEL, AAD64);
+#endif
}
RUNNER_TEST(TKW_IMPORT_EXPORT_RSA_HASH){
};
test(RSA_KEY_1024_PUB_ALIAS, RSA_KEY_1024_PRV_ALIAS);
test(RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
test(RSA_KEY_4096_PUB_ALIAS, RSA_KEY_4096_PRV_ALIAS);
+#endif
}
RUNNER_TEST(TKW_RSA_WRAPPED_KEY){
testImportExportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_2048_PUB_ALIAS, nullptr, RSA_KEY_2048_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
testImportExportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_2048_PUB_ALIAS, nullptr, RSA_KEY_2048_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
testImportExportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_2048_PUB_ALIAS, nullptr, RSA_KEY_2048_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testImportExportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
testImportExportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
testImportExportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
-
+#endif
testImportExportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_1024_PUB_ALIAS, nullptr, RSA_KEY_1024_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
testImportExportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_1024_PUB_ALIAS, nullptr, RSA_KEY_1024_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
testImportExportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_1024_PUB_ALIAS, nullptr, RSA_KEY_1024_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
testImportExportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_2048_PUB_ALIAS, nullptr, RSA_KEY_2048_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
testImportExportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_2048_PUB_ALIAS, nullptr, RSA_KEY_2048_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
testImportExportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_2048_PUB_ALIAS, nullptr, RSA_KEY_2048_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
+#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testImportExportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
testImportExportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
testImportExportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_4096_PUB_ALIAS, nullptr, RSA_KEY_4096_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
+#endif
}