Merge "Reuse mSenderUid to pass to device policy"
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index b29a137..7d28eff 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -20,7 +20,7 @@
     <string name="title_no_certs" msgid="8350009443064722873">"هیچ گواهی‌ای یافت نشد"</string>
     <string name="title_select_cert" msgid="3588447616418041699">"انتخاب گواهی"</string>
     <string name="requesting_application" msgid="1589142627467598421">"‏برنامه %s درخواست یک گواهی کرده است. انتخاب یک گواهی به برنامه امکان می‌دهد از این هویت با سرورها درحال حاضر و در آینده استفاده کند."</string>
-    <string name="requesting_server" msgid="5832565605998634370">"‏برنامه سرور درخواست‌کننده را به‌عنوان %s تشخیص داده است اما فقط در صورتی که به برنامه اطمینان دارید باید به آن اجازه دسترسی به گواهی را بدهید."</string>
+    <string name="requesting_server" msgid="5832565605998634370">"‏برنامه سرور درخواست‌کننده را به‌عنوان %s تشخیص داده است اما فقط درصورتی‌که به برنامه اطمینان دارید باید به آن اجازه دسترسی به گواهی را بدهید."</string>
     <string name="install_new_cert_message" msgid="4451971501142085495">"‏با یک افرونه %2$s یا %1$s واقع در حافظه خارجی می‌توانید مجوزهارا از یک فایل PKCS#12 نصب کنید."</string>
     <string name="install_new_cert_button_label" msgid="510732745267546907">"نصب"</string>
     <string name="allow_button" msgid="5340501035618157678">"مجاز است"</string>
diff --git a/src/com/android/keychain/KeyChainService.java b/src/com/android/keychain/KeyChainService.java
index 8a94b19..ee19e50 100644
--- a/src/com/android/keychain/KeyChainService.java
+++ b/src/com/android/keychain/KeyChainService.java
@@ -152,6 +152,11 @@
         @Override public boolean installKeyPair(byte[] privateKey, byte[] userCertificate,
                 String alias) {
             checkCertInstallerOrSystemCaller();
+            if (!mKeyStore.isUnlocked()) {
+                Log.e(TAG, "Keystore is " + mKeyStore.state().toString() + ". Credentials cannot"
+                        + " be installed until device is unlocked");
+                return false;
+            }
             if (!mKeyStore.importKey(Credentials.USER_PRIVATE_KEY + alias, privateKey, -1,
                     KeyStore.FLAG_ENCRYPTED)) {
                 Log.e(TAG, "Failed to import private key " + alias);