Allow keymaster 0.3 keys to interopt with keymaster 1.0 methods

Keymaster 0.3 keys are all valid keymaster 1.0 keys, so allow get to
return a keymaster 0.3 when looking for a 1.0 key to allow new methods
to work on old keys.

Change-Id: I20a32e39769a548224bcca7a42ef967285431c5d
diff --git a/keystore/keystore.cpp b/keystore/keystore.cpp
index a17ca20..b23770f 100644
--- a/keystore/keystore.cpp
+++ b/keystore/keystore.cpp
@@ -1182,6 +1182,12 @@
             }
         }
 
+        // Keymaster 0.3 keys are valid keymaster 1.0 keys, so silently upgrade
+        // them if needed.
+        if (type == TYPE_KEYMASTER_10 && keyBlob->getType() == TYPE_KEY_PAIR) {
+            keyBlob->setType(TYPE_KEYMASTER_10);
+        }
+
         if (type != TYPE_ANY && keyBlob->getType() != type) {
             ALOGW("key found but type doesn't match: %d vs %d", keyBlob->getType(), type);
             return KEY_NOT_FOUND;