Fix RSA and ECDSA key import in softkeymaster.

Bug: 20055613
Change-Id: Ie1998476659cb4c9e1311f0391cc3a6ecb9204ca
diff --git a/google_keymaster_test.cpp b/google_keymaster_test.cpp
index 7284377..70201d4 100644
--- a/google_keymaster_test.cpp
+++ b/google_keymaster_test.cpp
@@ -20,6 +20,8 @@
 
 #include <openssl/engine.h>
 
+#include <hardware/keymaster0.h>
+
 #include <keymaster/google_keymaster_utils.h>
 #include <keymaster/keymaster_tags.h>
 #include <keymaster/soft_keymaster_device.h>
@@ -1083,6 +1085,25 @@
     VerifyMessage(message, signature);
 }
 
+TEST_F(ImportKeyTest, OldApiRsaSuccess) {
+    string pk8_key = read_file("rsa_privkey_pk8.der");
+    ASSERT_EQ(633U, pk8_key.size());
+
+    // NOTE: This will break when the keymaster0 APIs are removed from keymaster1.  But at that
+    // point softkeymaster will no longer support keymaster0 APIs anyway.
+    uint8_t* key_blob;
+    size_t key_blob_length;
+    ASSERT_EQ(0,
+              device()->import_keypair(device(), reinterpret_cast<const uint8_t*>(pk8_key.data()),
+                                       pk8_key.size(), &key_blob, &key_blob_length));
+    set_key_blob(key_blob, key_blob_length);
+
+    string message(1024 / 8, 'a');
+    string signature;
+    SignMessage(message, &signature, false /* use_client_params */);
+    VerifyMessage(message, signature, false /* use_client_params */);
+}
+
 TEST_F(ImportKeyTest, RsaKeySizeMismatch) {
     string pk8_key = read_file("rsa_privkey_pk8.der");
     ASSERT_EQ(633U, pk8_key.size());