am 820e040d: am b110a189: am 93772c3b: Tag keystore aliases with user-specific SYSTEM_UID
* commit '820e040dc991e8fa60a5eccf1922b8635f086728':
Tag keystore aliases with user-specific SYSTEM_UID
diff --git a/src/com/android/keychain/KeyChainService.java b/src/com/android/keychain/KeyChainService.java
index 6e77357..091475a 100644
--- a/src/com/android/keychain/KeyChainService.java
+++ b/src/com/android/keychain/KeyChainService.java
@@ -142,6 +142,25 @@
broadcastStorageChange();
}
+ @Override public void installKeyPair(byte[] privateKey, byte[] userCertificate,
+ String alias) {
+ checkCertInstallerOrSystemCaller();
+ if (!mKeyStore.importKey(Credentials.USER_PRIVATE_KEY + alias, privateKey, -1,
+ KeyStore.FLAG_ENCRYPTED)) {
+ Log.e(TAG, "Failed to import private key " + alias);
+ return;
+ }
+ if (!mKeyStore.put(Credentials.USER_CERTIFICATE + alias, userCertificate, -1,
+ KeyStore.FLAG_ENCRYPTED)) {
+ Log.e(TAG, "Failed to import user certificate " + userCertificate);
+ if (!mKeyStore.delKey(Credentials.USER_PRIVATE_KEY + alias)) {
+ Log.e(TAG, "Failed to delete private key after certificate importing failed");
+ }
+ return;
+ }
+ broadcastStorageChange();
+ }
+
private X509Certificate parseCertificate(byte[] bytes) throws CertificateException {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
return (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(bytes));