From fd3db87e28e5b9ed186a15944234f6ff520773c6 Mon Sep 17 00:00:00 2001 From: Chung-yih Wang Date: Tue, 28 Jul 2009 18:37:13 +0800 Subject: [PATCH] Support x509-user-cert mime type in browser. + Fix the public key matching and intent parameter mismatch. --- core/java/android/webkit/LoadListener.java | 1 + core/java/android/webkit/MimeTypeMap.java | 1 + keystore/java/android/security/CertTool.java | 2 +- keystore/jni/cert.c | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/java/android/webkit/LoadListener.java b/core/java/android/webkit/LoadListener.java index 5ee824ab90c71..9ca2909483115 100644 --- a/core/java/android/webkit/LoadListener.java +++ b/core/java/android/webkit/LoadListener.java @@ -76,6 +76,7 @@ class LoadListener extends Handler implements EventHandler { static { sCertificateMimeTypeMap = new HashSet(); 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 fdbc692bf271d..9fdde6192e672 100644 --- a/core/java/android/webkit/MimeTypeMap.java +++ b/core/java/android/webkit/MimeTypeMap.java @@ -357,6 +357,7 @@ public /* package */ class MimeTypeMap { 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 1de007db1b5ec..b1b78ea963626 100644 --- a/keystore/java/android/security/CertTool.java +++ b/keystore/java/android/security/CertTool.java @@ -140,7 +140,7 @@ public class CertTool { 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 ea21b7d062d17..006a0a3512586 100644 --- a/keystore/jni/cert.c +++ b/keystore/jni/cert.c @@ -46,7 +46,7 @@ static void save_in_store(EVP_PKEY *pkey) 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);