blob: a80d6fd5108a3fc4beef3f734d21b650468e5fe5 [file] [log] [blame]
#include <gtest/gtest.h>
#include "hwcryptokeyimpl.h"
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
TEST(HwCryptoHalDelegator, keyPolicyCppToNdk) {
cpp_hwcrypto::KeyPolicy cppPolicy = cpp_hwcrypto::KeyPolicy();
cppPolicy.keyType = cpp_hwcrypto::types::KeyType::AES_128_CBC_PKCS7_PADDING;
cppPolicy.usage = cpp_hwcrypto::types::KeyUse::DECRYPT;
cppPolicy.keyLifetime = cpp_hwcrypto::types::KeyLifetime::PORTABLE;
cppPolicy.keyManagementKey = false;
cppPolicy.keyPermissions.push_back(
cpp_hwcrypto::types::KeyPermissions::ALLOW_PORTABLE_KEY_WRAPPING);
ndk_hwcrypto::KeyPolicy ndkPolicy = android::trusty::hwcryptohalservice::convertKeyPolicy<
ndk_hwcrypto::KeyPolicy, cpp_hwcrypto::KeyPolicy>(cppPolicy);
EXPECT_EQ(ndkPolicy.keyType, ndk_hwcrypto::types::KeyType::AES_128_CBC_PKCS7_PADDING);
EXPECT_EQ(ndkPolicy.usage, ndk_hwcrypto::types::KeyUse::DECRYPT);
EXPECT_EQ(ndkPolicy.keyLifetime, ndk_hwcrypto::types::KeyLifetime::PORTABLE);
EXPECT_EQ(ndkPolicy.keyManagementKey, false);
EXPECT_EQ(ndkPolicy.keyPermissions.size(), 1ul);
EXPECT_EQ(ndkPolicy.keyPermissions[0],
ndk_hwcrypto::types::KeyPermissions::ALLOW_PORTABLE_KEY_WRAPPING);
}
TEST(HwCryptoHalDelegator, keyPolicyNdkToCpp) {
ndk_hwcrypto::KeyPolicy ndkPolicy = ndk_hwcrypto::KeyPolicy();
ndkPolicy.keyType = ndk_hwcrypto::types::KeyType::AES_128_CTR;
ndkPolicy.usage = ndk_hwcrypto::types::KeyUse::ENCRYPT_DECRYPT;
ndkPolicy.keyLifetime = ndk_hwcrypto::types::KeyLifetime::HARDWARE;
ndkPolicy.keyManagementKey = true;
ndkPolicy.keyPermissions.push_back(
ndk_hwcrypto::types::KeyPermissions::ALLOW_EPHEMERAL_KEY_WRAPPING);
ndkPolicy.keyPermissions.push_back(
ndk_hwcrypto::types::KeyPermissions::ALLOW_HARDWARE_KEY_WRAPPING);
cpp_hwcrypto::KeyPolicy cppPolicy = android::trusty::hwcryptohalservice::convertKeyPolicy<
cpp_hwcrypto::KeyPolicy, ndk_hwcrypto::KeyPolicy>(ndkPolicy);
EXPECT_EQ(cppPolicy.keyType, cpp_hwcrypto::types::KeyType::AES_128_CTR);
EXPECT_EQ(cppPolicy.usage, cpp_hwcrypto::types::KeyUse::ENCRYPT_DECRYPT);
EXPECT_EQ(cppPolicy.keyLifetime, cpp_hwcrypto::types::KeyLifetime::HARDWARE);
EXPECT_EQ(cppPolicy.keyManagementKey, true);
EXPECT_EQ(cppPolicy.keyPermissions.size(), 2ul);
EXPECT_EQ(cppPolicy.keyPermissions[0],
cpp_hwcrypto::types::KeyPermissions::ALLOW_EPHEMERAL_KEY_WRAPPING);
EXPECT_EQ(cppPolicy.keyPermissions[1],
cpp_hwcrypto::types::KeyPermissions::ALLOW_HARDWARE_KEY_WRAPPING);
}