Merge change 8757 into donut

* changes:
  Support x509-user-cert mime type in browser.
diff --git a/core/java/android/webkit/LoadListener.java b/core/java/android/webkit/LoadListener.java
index 5ee824a..9ca2909 100644
--- a/core/java/android/webkit/LoadListener.java
+++ b/core/java/android/webkit/LoadListener.java
@@ -76,6 +76,7 @@
     static {
         sCertificateMimeTypeMap = new HashSet<String>();
         sCertificateMimeTypeMap.add("application/x-x509-ca-cert");
+        sCertificateMimeTypeMap.add("application/x-x509-user-cert");
         sCertificateMimeTypeMap.add("application/x-pkcs12");
     }
 
diff --git a/core/java/android/webkit/MimeTypeMap.java b/core/java/android/webkit/MimeTypeMap.java
index fdbc692..9fdde61 100644
--- a/core/java/android/webkit/MimeTypeMap.java
+++ b/core/java/android/webkit/MimeTypeMap.java
@@ -357,6 +357,7 @@
             sMimeTypeMap.loadEntry(
                     "application/x-webarchive", "webarchive", false); // added
             sMimeTypeMap.loadEntry("application/x-x509-ca-cert", "crt", false);
+            sMimeTypeMap.loadEntry("application/x-x509-user-cert", "crt", false);
             sMimeTypeMap.loadEntry("application/x-xcf", "xcf", false);
             sMimeTypeMap.loadEntry("application/x-xfig", "fig", false);
             sMimeTypeMap.loadEntry("audio/basic", "snd", false);
diff --git a/keystore/java/android/security/CertTool.java b/keystore/java/android/security/CertTool.java
index 1de007d..b1b78ea 100644
--- a/keystore/java/android/security/CertTool.java
+++ b/keystore/java/android/security/CertTool.java
@@ -140,7 +140,7 @@
 
     private void addExtraIntentInfo(Intent intent, String namespace,
             String data) {
-        intent.putExtra(KEY_ITEM + "1", data);
+        intent.putExtra(KEY_ITEM + "1", data.getBytes());
         intent.putExtra(KEY_NAMESPACE + "1", namespace);
     }
 
diff --git a/keystore/jni/cert.c b/keystore/jni/cert.c
index ea21b7d..006a0a3 100644
--- a/keystore/jni/cert.c
+++ b/keystore/jni/cert.c
@@ -46,7 +46,7 @@
     RSA *rsa = EVP_PKEY_get1_RSA(pkey);
     EVP_PKEY_set1_RSA(newpkey, rsa);
     PKEY_STORE_free(pkey_store[store_index]);
-    pkey_store[store_index].key_len = i2d_RSAPublicKey(rsa, &pkey_store[store_index].public_key);
+    pkey_store[store_index].key_len = i2d_RSA_PUBKEY(rsa, &pkey_store[store_index].public_key);
     pkey_store[store_index++].pkey = newpkey;
     store_index %= KEYGEN_STORE_SIZE;
     RSA_free(rsa);