summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2011-06-07 13:46:19 -0700
committerBrian Carlstrom <bdc@google.com>2011-06-07 15:36:13 -0700
commit2942ff86b52c8a12c5d137d94ce4a21300575887 (patch)
treeb26df1c4f8aadaa5ae56fe9e84fe18d0103911dd /src/com
parentc8150af204ffd38ac46635ff8793261045490ea2 (diff)
downloadandroid_packages_apps_CertInstaller-2942ff86b52c8a12c5d137d94ce4a21300575887.tar.gz
android_packages_apps_CertInstaller-2942ff86b52c8a12c5d137d94ce4a21300575887.tar.bz2
android_packages_apps_CertInstaller-2942ff86b52c8a12c5d137d94ce4a21300575887.zip
Move CredentialHelper.convertToPem to frameworks/base for reuse by KeyChain
Change-Id: I96d5a23201c070a7d0ce8856d189e54e3b05e3bd
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/certinstaller/CredentialHelper.java49
1 files changed, 18 insertions, 31 deletions
diff --git a/src/com/android/certinstaller/CredentialHelper.java b/src/com/android/certinstaller/CredentialHelper.java
index 7c7abfb..f9bd0e9 100644
--- a/src/com/android/certinstaller/CredentialHelper.java
+++ b/src/com/android/certinstaller/CredentialHelper.java
@@ -24,22 +24,16 @@ import android.security.Credentials;
import android.security.IKeyChainService;
import android.text.Html;
import android.util.Log;
-
import com.android.org.bouncycastle.asn1.ASN1InputStream;
import com.android.org.bouncycastle.asn1.ASN1Sequence;
import com.android.org.bouncycastle.asn1.DEROctetString;
import com.android.org.bouncycastle.asn1.x509.BasicConstraints;
-import com.android.org.bouncycastle.openssl.PEMWriter;
-
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.OutputStreamWriter;
import java.security.KeyFactory;
import java.security.KeyStore.PasswordProtection;
import java.security.KeyStore.PrivateKeyEntry;
import java.security.KeyStore;
-import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.cert.Certificate;
@@ -254,17 +248,25 @@ class CredentialHelper {
// To prevent the private key from being sniffed, we explicitly spell
// out the intent receiver class.
intent.setClassName("com.android.settings", "com.android.settings.CredentialStorage");
- if (mUserKey != null) {
- intent.putExtra(Credentials.USER_PRIVATE_KEY + mName, convertToPem(mUserKey));
- }
- if (mUserCert != null) {
- intent.putExtra(Credentials.USER_CERTIFICATE + mName, convertToPem(mUserCert));
- }
- if (!mCaCerts.isEmpty()) {
- Object[] caCerts = (Object[]) mCaCerts.toArray(new X509Certificate[mCaCerts.size()]);
- intent.putExtra(Credentials.CA_CERTIFICATE + mName, convertToPem(caCerts));
+ try {
+ if (mUserKey != null) {
+ intent.putExtra(Credentials.USER_PRIVATE_KEY + mName,
+ Credentials.convertToPem(mUserKey));
+ }
+ if (mUserCert != null) {
+ intent.putExtra(Credentials.USER_CERTIFICATE + mName,
+ Credentials.convertToPem(mUserCert));
+ }
+ if (!mCaCerts.isEmpty()) {
+ Object[] caCerts = (Object[])
+ mCaCerts.toArray(new X509Certificate[mCaCerts.size()]);
+ intent.putExtra(Credentials.CA_CERTIFICATE + mName,
+ Credentials.convertToPem(caCerts));
+ }
+ return intent;
+ } catch (IOException e) {
+ throw new AssertionError(e);
}
- return intent;
}
boolean installCaCertsToKeyChain(IKeyChainService keyChainService) {
@@ -339,19 +341,4 @@ class CredentialHelper {
return true;
}
-
- private byte[] convertToPem(Object... objects) {
- try {
- ByteArrayOutputStream bao = new ByteArrayOutputStream();
- OutputStreamWriter osw = new OutputStreamWriter(bao);
- PEMWriter pw = new PEMWriter(osw);
- for (Object o : objects) {
- pw.writeObject(o);
- }
- pw.close();
- return bao.toByteArray();
- } catch (IOException e) {
- throw new AssertionError(e);
- }
- }
}