Implement symmetric key import.
Change-Id: I902933c06c74c7b3b434873f53fb2c767d3b9721
diff --git a/google_keymaster_test.cpp b/google_keymaster_test.cpp
index b0c47d8..bb19ada 100644
--- a/google_keymaster_test.cpp
+++ b/google_keymaster_test.cpp
@@ -506,6 +506,16 @@
device()->get_supported_import_formats(device(), KM_ALGORITHM_RSA, &formats, &len));
EXPECT_TRUE(ResponseContains(KM_KEY_FORMAT_PKCS8, formats, len));
free(formats);
+
+ EXPECT_EQ(KM_ERROR_OK,
+ device()->get_supported_import_formats(device(), KM_ALGORITHM_AES, &formats, &len));
+ EXPECT_TRUE(ResponseContains(KM_KEY_FORMAT_RAW, formats, len));
+ free(formats);
+
+ EXPECT_EQ(KM_ERROR_OK,
+ device()->get_supported_import_formats(device(), KM_ALGORITHM_HMAC, &formats, &len));
+ EXPECT_TRUE(ResponseContains(KM_KEY_FORMAT_RAW, formats, len));
+ free(formats);
}
TEST_F(CheckSupported, SupportedExportFormats) {
@@ -531,6 +541,16 @@
device()->get_supported_export_formats(device(), KM_ALGORITHM_AES, &formats, &len));
EXPECT_EQ(0, len);
free(formats);
+
+ EXPECT_EQ(KM_ERROR_OK,
+ device()->get_supported_export_formats(device(), KM_ALGORITHM_AES, &formats, &len));
+ EXPECT_EQ(0, len);
+ free(formats);
+
+ EXPECT_EQ(KM_ERROR_OK,
+ device()->get_supported_export_formats(device(), KM_ALGORITHM_HMAC, &formats, &len));
+ EXPECT_EQ(0, len);
+ free(formats);
}
class NewKeyGeneration : public KeymasterTest {
@@ -626,8 +646,8 @@
}
TEST_F(NewKeyGeneration, AesOcbInvalidKeySize) {
- ASSERT_EQ(KM_ERROR_OK, GenerateKey(ParamBuilder().AesEncryptionKey(136).OcbMode(4096, 16)));
- EXPECT_EQ(KM_ERROR_UNSUPPORTED_KEY_SIZE, BeginOperation(KM_PURPOSE_ENCRYPT));
+ ASSERT_EQ(KM_ERROR_UNSUPPORTED_KEY_SIZE,
+ GenerateKey(ParamBuilder().AesEncryptionKey(136).OcbMode(4096, 16)));
}
TEST_F(NewKeyGeneration, AesOcbAllValidSizes) {
@@ -1096,6 +1116,15 @@
ASSERT_EQ(KM_ERROR_INVALID_KEY_BLOB, ExportKey(KM_KEY_FORMAT_X509, &export_data));
}
+TEST_F(ExportKeyTest, AesKeyExportFails) {
+ ASSERT_EQ(KM_ERROR_OK, GenerateKey(ParamBuilder().AesEncryptionKey(128)));
+ string export_data;
+
+ EXPECT_EQ(KM_ERROR_UNSUPPORTED_KEY_FORMAT, ExportKey(KM_KEY_FORMAT_X509, &export_data));
+ EXPECT_EQ(KM_ERROR_UNSUPPORTED_KEY_FORMAT, ExportKey(KM_KEY_FORMAT_PKCS8, &export_data));
+ EXPECT_EQ(KM_ERROR_UNSUPPORTED_KEY_FORMAT, ExportKey(KM_KEY_FORMAT_RAW, &export_data));
+}
+
static string read_file(const string& file_name) {
ifstream file_stream(file_name, std::ios::binary);
istreambuf_iterator<char> file_begin(file_stream);