generateSymmetricKeys(256);
generateRsaKeys(1024);
generateRsaKeys(2048);
+ generateRsaKeys(3072);
#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
generateRsaKeys(4096);
#endif
test( { CKMC_ALGO_RSA_OAEP, 1024 });
test( { CKMC_ALGO_RSA_OAEP, 2048 });
+ test( { CKMC_ALGO_RSA_OAEP, 3072 });
#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
test( { CKMC_ALGO_RSA_OAEP, 4096 });
#endif
testEncryptDecryptDifferentKeys({CKMC_ALGO_RSA_OAEP, 1024}, false);
testEncryptDecryptDifferentKeys({CKMC_ALGO_RSA_OAEP, 2048}, false);
+ testEncryptDecryptDifferentKeys({CKMC_ALGO_RSA_OAEP, 3072}, false);
#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testEncryptDecryptDifferentKeys({CKMC_ALGO_RSA_OAEP, 4096}, false);
#endif
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);
+ encryptionWithCustomData({CKMC_ALGO_RSA_OAEP, 3072}, 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
{
testRsaLongestData({CKMC_ALGO_RSA_OAEP, 1024}, 86);
testRsaLongestData({CKMC_ALGO_RSA_OAEP, 2048}, 214);
+ testRsaLongestData({CKMC_ALGO_RSA_OAEP, 3072}, 342);
#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testRsaLongestData({CKMC_ALGO_RSA_OAEP, 4096}, 470);
#endif
{
testRsaDataTooLong({CKMC_ALGO_RSA_OAEP, 1024}, 87);
testRsaDataTooLong({CKMC_ALGO_RSA_OAEP, 2048}, 215);
+ testRsaDataTooLong({CKMC_ALGO_RSA_OAEP, 3072}, 343);
#ifndef TZ_LEGACY_BACKEND // no support for RSA 4k keys in old TEE implementations
testRsaDataTooLong({CKMC_ALGO_RSA_OAEP, 4096}, 471);
#endif
const Alias RSA_KEY_1024_PUB_ALIAS = "RSA-gen-test-1024-pub";
const Alias RSA_KEY_2048_PRV_ALIAS = "RSA-gen-test-2048-prv";
const Alias RSA_KEY_2048_PUB_ALIAS = "RSA-gen-test-2048-pub";
+const Alias RSA_KEY_3072_PRV_ALIAS = "RSA-gen-test-3072-prv";
+const Alias RSA_KEY_3072_PUB_ALIAS = "RSA-gen-test-3072-pub";
const Alias RSA_KEY_4096_PRV_ALIAS = "RSA-gen-test-4096-prv";
const Alias RSA_KEY_4096_PUB_ALIAS = "RSA-gen-test-4096-pub";
RSA_KEY_2048_PUB_ALIAS.c_str(),
UNEXPORTABLE,
EXPORTABLE);
+
+ assert_positive(ckmc_create_key_pair_rsa,
+ 3072,
+ RSA_KEY_3072_PRV_ALIAS.c_str(),
+ RSA_KEY_3072_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,
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());
+ ckmc_remove_key(RSA_KEY_3072_PRV_ALIAS.c_str());
+ ckmc_remove_key(RSA_KEY_3072_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());
testImportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_2048_PUB_ALIAS, RSA_KEY_2048_PRV_ALIAS);
}
+RUNNER_TEST(TKW_VALID_ARGS_RSA_OAEP_3072){
+ testImportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_PRV_ALIAS);
+ testImportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_PRV_ALIAS);
+ testImportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_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);
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);
+ testImportInvalidBuffLen(RSA_OAEP_ALGO, 8, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_PRV_ALIAS);
+ testImportInvalidBuffLen(RSA_OAEP_ALGO, 12, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_PRV_ALIAS);
+ testImportInvalidBuffLen(RSA_OAEP_ALGO, 82, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_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, 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);
+ testImportInvalidBuffLen(RSA_OAEP_ALGO, 16, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_PUB_ALIAS);
+ testImportInvalidBuffLen(RSA_OAEP_ALGO, 24, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_PUB_ALIAS);
+ testImportInvalidBuffLen(RSA_OAEP_ALGO, 32, RSA_KEY_3072_PUB_ALIAS, RSA_KEY_3072_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);
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);
+ testImportExportCustomParameters(RSA_OAEP_ALGO, RSA_KEY_3072_PUB_ALIAS, nullptr, RSA_KEY_3072_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
};
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_3072_PUB_ALIAS, RSA_KEY_3072_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
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);
+ testImportExportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_3072_PUB_ALIAS, nullptr, RSA_KEY_3072_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
+ testImportExportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_3072_PUB_ALIAS, nullptr, RSA_KEY_3072_PRV_ALIAS, nullptr, UNEXPORTABLE, nullptr);
+ testImportExportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_3072_PUB_ALIAS, nullptr, RSA_KEY_3072_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, 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);
+ testImportExportValidArgs(RSA_OAEP_ALGO, 16, RSA_KEY_3072_PUB_ALIAS, nullptr, RSA_KEY_3072_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
+ testImportExportValidArgs(RSA_OAEP_ALGO, 24, RSA_KEY_3072_PUB_ALIAS, nullptr, RSA_KEY_3072_PRV_ALIAS, nullptr, UNEXPORTABLE_PASS, KEY_PASSWORD);
+ testImportExportValidArgs(RSA_OAEP_ALGO, 32, RSA_KEY_3072_PUB_ALIAS, nullptr, RSA_KEY_3072_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);