summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Bentley <prb@google.com>2019-05-01 14:10:37 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-05-01 14:10:37 +0000
commitfc3983f6a4c9491d0c7a86408f3336ded3f98c27 (patch)
treea0ba281c36339f510926614c2a3fc2ea38a70ed6
parent043bacd9ca77d4a797f5296459b3966288c74d25 (diff)
parentd1cc1bde893a4d7013a5f22daee5a00a19107d78 (diff)
downloadbouncycastle-oreo-mr1-iot-release.tar.gz
Merge "Upstream partner request to add BC methods to core platform API."android-o-mr1-iot-release-1.0.12oreo-mr1-iot-release
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/ASN1Primitive.java2
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/pkcs/PrivateKeyInfo.java1
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/x500/style/BCStyle.java8
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/CipherParameters.java1
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/PBEParametersGenerator.java3
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java4
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/params/KeyParameter.java2
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper.java2
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemHeader.java2
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemObject.java1
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/x509/X509V1CertificateGenerator.java9
-rw-r--r--srcgen/core-platform-api.txt35
12 files changed, 70 insertions, 0 deletions
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/ASN1Primitive.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/ASN1Primitive.java
index e2aab07b..8ad3a8b2 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/ASN1Primitive.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/ASN1Primitive.java
@@ -23,6 +23,7 @@ public abstract class ASN1Primitive
* @return the base ASN.1 object represented by the byte stream.
* @exception IOException if there is a problem parsing the data, or parsing the stream did not exhaust the available data.
*/
+ @libcore.api.CorePlatformApi
public static ASN1Primitive fromByteArray(byte[] data)
throws IOException
{
@@ -55,6 +56,7 @@ public abstract class ASN1Primitive
return (o instanceof ASN1Encodable) && asn1Equals(((ASN1Encodable)o).toASN1Primitive());
}
+ @libcore.api.CorePlatformApi
public ASN1Primitive toASN1Primitive()
{
return this;
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/pkcs/PrivateKeyInfo.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/pkcs/PrivateKeyInfo.java
index 06f45c34..56743253 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/pkcs/PrivateKeyInfo.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/pkcs/PrivateKeyInfo.java
@@ -191,6 +191,7 @@ public class PrivateKeyInfo
return privateKeyAlgorithm;
}
+ @libcore.api.CorePlatformApi
public ASN1Encodable parsePrivateKey()
throws IOException
{
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/x500/style/BCStyle.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/x500/style/BCStyle.java
index a7671ff4..25aaa033 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/x500/style/BCStyle.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/asn1/x500/style/BCStyle.java
@@ -17,22 +17,26 @@ import com.android.org.bouncycastle.asn1.x509.X509ObjectIdentifiers;
/**
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public class BCStyle
extends AbstractX500NameStyle
{
/**
* country code - StringType(SIZE(2))
*/
+ @libcore.api.CorePlatformApi
public static final ASN1ObjectIdentifier C = new ASN1ObjectIdentifier("2.5.4.6").intern();
/**
* organization - StringType(SIZE(1..64))
*/
+ @libcore.api.CorePlatformApi
public static final ASN1ObjectIdentifier O = new ASN1ObjectIdentifier("2.5.4.10").intern();
/**
* organizational unit name - StringType(SIZE(1..64))
*/
+ @libcore.api.CorePlatformApi
public static final ASN1ObjectIdentifier OU = new ASN1ObjectIdentifier("2.5.4.11").intern();
/**
@@ -43,6 +47,7 @@ public class BCStyle
/**
* common name - StringType(SIZE(1..64))
*/
+ @libcore.api.CorePlatformApi
public static final ASN1ObjectIdentifier CN = new ASN1ObjectIdentifier("2.5.4.3").intern();
/**
@@ -63,11 +68,13 @@ public class BCStyle
/**
* locality name - StringType(SIZE(1..64))
*/
+ @libcore.api.CorePlatformApi
public static final ASN1ObjectIdentifier L = new ASN1ObjectIdentifier("2.5.4.7").intern();
/**
* state, or province name - StringType(SIZE(1..64))
*/
+ @libcore.api.CorePlatformApi
public static final ASN1ObjectIdentifier ST = new ASN1ObjectIdentifier("2.5.4.8").intern();
/**
@@ -175,6 +182,7 @@ public class BCStyle
/**
* email address in Verisign certificates
*/
+ @libcore.api.CorePlatformApi
public static final ASN1ObjectIdentifier E = EmailAddress;
/*
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/CipherParameters.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/CipherParameters.java
index 889837f7..11c433c3 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/CipherParameters.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/CipherParameters.java
@@ -5,6 +5,7 @@ package com.android.org.bouncycastle.crypto;
* all parameter classes implement this.
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public interface CipherParameters
{
}
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/PBEParametersGenerator.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/PBEParametersGenerator.java
index d6277271..956e9332 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/PBEParametersGenerator.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/PBEParametersGenerator.java
@@ -7,6 +7,7 @@ import com.android.org.bouncycastle.util.Strings;
* super class for all Password Based Encryption (PBE) parameter generator classes.
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public abstract class PBEParametersGenerator
{
protected byte[] password;
@@ -16,6 +17,7 @@ public abstract class PBEParametersGenerator
/**
* base constructor.
*/
+ @libcore.api.CorePlatformApi
protected PBEParametersGenerator()
{
}
@@ -102,6 +104,7 @@ public abstract class PBEParametersGenerator
* @param password a character array representing the password.
* @return a byte array representing the password.
*/
+ @libcore.api.CorePlatformApi
public static byte[] PKCS5PasswordToBytes(
char[] password)
{
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java
index 116aa7d4..7419815a 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator.java
@@ -18,6 +18,7 @@ import com.android.org.bouncycastle.crypto.digests.AndroidDigestFactory;
* <p>
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public class OpenSSLPBEParametersGenerator
extends PBEParametersGenerator
{
@@ -28,6 +29,7 @@ public class OpenSSLPBEParametersGenerator
/**
* Construct a OpenSSL Parameters generator.
*/
+ @libcore.api.CorePlatformApi
public OpenSSLPBEParametersGenerator()
{
}
@@ -38,6 +40,7 @@ public class OpenSSLPBEParametersGenerator
* @param password password to use.
* @param salt salt to use.
*/
+ @libcore.api.CorePlatformApi
public void init(
byte[] password,
byte[] salt)
@@ -89,6 +92,7 @@ public class OpenSSLPBEParametersGenerator
* @return a KeyParameter object.
* @exception IllegalArgumentException if the key length larger than the base hash size.
*/
+ @libcore.api.CorePlatformApi
public CipherParameters generateDerivedParameters(
int keySize)
{
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/params/KeyParameter.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/params/KeyParameter.java
index ad8fa0ce..bed0f702 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/params/KeyParameter.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/params/KeyParameter.java
@@ -6,6 +6,7 @@ import com.android.org.bouncycastle.crypto.CipherParameters;
/**
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public class KeyParameter
implements CipherParameters
{
@@ -27,6 +28,7 @@ public class KeyParameter
System.arraycopy(key, keyOff, this.key, 0, keyLen);
}
+ @libcore.api.CorePlatformApi
public byte[] getKey()
{
return key;
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper.java
index 5e91663b..3e289996 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper.java
@@ -24,9 +24,11 @@ import javax.crypto.SecretKeyFactory;
* without specifying a provider).
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public class DefaultJcaJceHelper
implements JcaJceHelper
{
+ @libcore.api.CorePlatformApi
public Cipher createCipher(
String algorithm)
throws NoSuchAlgorithmException, NoSuchPaddingException
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemHeader.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemHeader.java
index 2829673f..8465791f 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemHeader.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemHeader.java
@@ -5,6 +5,7 @@ package com.android.org.bouncycastle.util.io.pem;
* Class representing a PEM header (name, value) pair.
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public class PemHeader
{
private String name;
@@ -16,6 +17,7 @@ public class PemHeader
* @param name name of the header property.
* @param value value of the header property.
*/
+ @libcore.api.CorePlatformApi
public PemHeader(String name, String value)
{
this.name = name;
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemObject.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemObject.java
index 97ac2fa6..7dcd8324 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemObject.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/io/pem/PemObject.java
@@ -38,6 +38,7 @@ public class PemObject
* @param headers a list of PemHeader objects.
* @param content the binary content of the object.
*/
+ @libcore.api.CorePlatformApi
public PemObject(String type, List headers, byte[] content)
{
this.type = type;
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/x509/X509V1CertificateGenerator.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/x509/X509V1CertificateGenerator.java
index 2b5b831b..54e198da 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/x509/X509V1CertificateGenerator.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/x509/X509V1CertificateGenerator.java
@@ -41,6 +41,7 @@ import com.android.org.bouncycastle.jce.X509Principal;
* @deprecated use org.bouncycastle.cert.X509v1CertificateBuilder.
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public class X509V1CertificateGenerator
{
private final JcaJceHelper bcHelper = new BCJcaJceHelper(); // needed to force provider loading
@@ -51,6 +52,7 @@ public class X509V1CertificateGenerator
private AlgorithmIdentifier sigAlgId;
private String signatureAlgorithm;
+ @libcore.api.CorePlatformApi
public X509V1CertificateGenerator()
{
tbsGen = new V1TBSCertificateGenerator();
@@ -67,6 +69,7 @@ public class X509V1CertificateGenerator
/**
* set the serial number for the certificate.
*/
+ @libcore.api.CorePlatformApi
public void setSerialNumber(
BigInteger serialNumber)
{
@@ -105,12 +108,14 @@ public class X509V1CertificateGenerator
tbsGen.setIssuer(issuer);
}
+ @libcore.api.CorePlatformApi
public void setNotBefore(
Date date)
{
tbsGen.setStartDate(new Time(date));
}
+ @libcore.api.CorePlatformApi
public void setNotAfter(
Date date)
{
@@ -120,6 +125,7 @@ public class X509V1CertificateGenerator
/**
* Set the subject distinguished name. The subject describes the entity associated with the public key.
*/
+ @libcore.api.CorePlatformApi
public void setSubjectDN(
X500Principal subject)
{
@@ -142,6 +148,7 @@ public class X509V1CertificateGenerator
tbsGen.setSubject(subject);
}
+ @libcore.api.CorePlatformApi
public void setPublicKey(
PublicKey key)
{
@@ -161,6 +168,7 @@ public class X509V1CertificateGenerator
*
* @param signatureAlgorithm string representation of the algorithm name.
*/
+ @libcore.api.CorePlatformApi
public void setSignatureAlgorithm(
String signatureAlgorithm)
{
@@ -315,6 +323,7 @@ public class X509V1CertificateGenerator
* using the passed in provider for the signing, and the passed in source
* of randomness (if required).
*/
+ @libcore.api.CorePlatformApi
public X509Certificate generate(
PrivateKey key,
String provider)
diff --git a/srcgen/core-platform-api.txt b/srcgen/core-platform-api.txt
index 92025ea0..d0dad67e 100644
--- a/srcgen/core-platform-api.txt
+++ b/srcgen/core-platform-api.txt
@@ -1,5 +1,12 @@
field:com.android.org.bouncycastle.asn1.DERNull#INSTANCE
field:com.android.org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers#sha256WithRSAEncryption
+field:com.android.org.bouncycastle.asn1.x500.style.BCStyle#C
+field:com.android.org.bouncycastle.asn1.x500.style.BCStyle#CN
+field:com.android.org.bouncycastle.asn1.x500.style.BCStyle#E
+field:com.android.org.bouncycastle.asn1.x500.style.BCStyle#L
+field:com.android.org.bouncycastle.asn1.x500.style.BCStyle#O
+field:com.android.org.bouncycastle.asn1.x500.style.BCStyle#OU
+field:com.android.org.bouncycastle.asn1.x500.style.BCStyle#ST
field:com.android.org.bouncycastle.asn1.x509.GeneralName#dNSName
field:com.android.org.bouncycastle.asn1.x509.GeneralName#iPAddress
field:com.android.org.bouncycastle.asn1.x509.GeneralName#otherName
@@ -24,6 +31,8 @@ method:com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier#getId()
method:com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier#getInstance(Object)
method:com.android.org.bouncycastle.asn1.ASN1OctetString#getOctets()
method:com.android.org.bouncycastle.asn1.ASN1OctetString#hashCode()
+method:com.android.org.bouncycastle.asn1.ASN1Primitive#fromByteArray(byte[])
+method:com.android.org.bouncycastle.asn1.ASN1Primitive#toASN1Primitive()
method:com.android.org.bouncycastle.asn1.ASN1Sequence#getObjectAt(int)
method:com.android.org.bouncycastle.asn1.ASN1Sequence#hashCode()
method:com.android.org.bouncycastle.asn1.ASN1Sequence#size()
@@ -39,6 +48,7 @@ method:com.android.org.bouncycastle.asn1.DERUTF8String#DERUTF8String(String)
method:com.android.org.bouncycastle.asn1.DERUTF8String#getString()
method:com.android.org.bouncycastle.asn1.pkcs.PrivateKeyInfo#getInstance(Object)
method:com.android.org.bouncycastle.asn1.pkcs.PrivateKeyInfo#getPrivateKeyAlgorithm()
+method:com.android.org.bouncycastle.asn1.pkcs.PrivateKeyInfo#parsePrivateKey()
method:com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier#AlgorithmIdentifier(ASN1ObjectIdentifier)
method:com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier#AlgorithmIdentifier(ASN1ObjectIdentifier,ASN1Encodable)
method:com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier#getAlgorithm()
@@ -64,16 +74,33 @@ method:com.android.org.bouncycastle.asn1.x509.X509Name#getOIDs()
method:com.android.org.bouncycastle.asn1.x509.X509Name#getValues()
method:com.android.org.bouncycastle.asn1.x509.X509Name#toString(boolean,Hashtable)
method:com.android.org.bouncycastle.asn1.x509.X509Name#X509Name(String)
+method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#generateDerivedParameters(int)
+method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#init(byte[],byte[])
+method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#OpenSSLPBEParametersGenerator()
+method:com.android.org.bouncycastle.crypto.params.KeyParameter#getKey()
+method:com.android.org.bouncycastle.crypto.PBEParametersGenerator#PBEParametersGenerator()
+method:com.android.org.bouncycastle.crypto.PBEParametersGenerator#PKCS5PasswordToBytes(char[])
+method:com.android.org.bouncycastle.jcajce.util.DefaultJcaJceHelper#createCipher(String)
method:com.android.org.bouncycastle.jce.provider.BouncyCastleProvider#BouncyCastleProvider()
method:com.android.org.bouncycastle.jce.provider.X509CertificateObject#X509CertificateObject(com.android.org.bouncycastle.asn1.x509.Certificate)
method:com.android.org.bouncycastle.jce.X509Principal#X509Principal(byte[])
+method:com.android.org.bouncycastle.util.io.pem.PemHeader#PemHeader(String,String)
method:com.android.org.bouncycastle.util.io.pem.PemObject#getContent()
method:com.android.org.bouncycastle.util.io.pem.PemObject#getType()
method:com.android.org.bouncycastle.util.io.pem.PemObject#PemObject(String,byte[])
+method:com.android.org.bouncycastle.util.io.pem.PemObject#PemObject(String,List,byte[])
method:com.android.org.bouncycastle.util.io.pem.PemReader#PemReader(Reader)
method:com.android.org.bouncycastle.util.io.pem.PemReader#readPemObject()
method:com.android.org.bouncycastle.util.io.pem.PemWriter#PemWriter(Writer)
method:com.android.org.bouncycastle.util.io.pem.PemWriter#writeObject(PemObjectGenerator)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#generate(PrivateKey,String)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#setNotAfter(Date)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#setNotBefore(Date)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#setPublicKey(PublicKey)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#setSerialNumber(BigInteger)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#setSignatureAlgorithm(String)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#setSubjectDN(X500Principal)
+method:com.android.org.bouncycastle.x509.X509V1CertificateGenerator#X509V1CertificateGenerator()
method:com.android.org.bouncycastle.x509.X509V3CertificateGenerator#generate(PrivateKey)
method:com.android.org.bouncycastle.x509.X509V3CertificateGenerator#setIssuerDN(X500Principal)
method:com.android.org.bouncycastle.x509.X509V3CertificateGenerator#setNotAfter(Date)
@@ -104,6 +131,7 @@ type:com.android.org.bouncycastle.asn1.DERTaggedObject
type:com.android.org.bouncycastle.asn1.DERUTF8String
type:com.android.org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers
type:com.android.org.bouncycastle.asn1.pkcs.PrivateKeyInfo
+type:com.android.org.bouncycastle.asn1.x500.style.BCStyle
type:com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier
type:com.android.org.bouncycastle.asn1.x509.BasicConstraints
type:com.android.org.bouncycastle.asn1.x509.Certificate
@@ -114,12 +142,19 @@ type:com.android.org.bouncycastle.asn1.x509.Time
type:com.android.org.bouncycastle.asn1.x509.V3TBSCertificateGenerator
type:com.android.org.bouncycastle.asn1.x509.X509Name
type:com.android.org.bouncycastle.asn1.x9.X9ObjectIdentifiers
+type:com.android.org.bouncycastle.crypto.CipherParameters
+type:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator
+type:com.android.org.bouncycastle.crypto.params.KeyParameter
+type:com.android.org.bouncycastle.crypto.PBEParametersGenerator
+type:com.android.org.bouncycastle.jcajce.util.DefaultJcaJceHelper
type:com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
type:com.android.org.bouncycastle.jce.provider.X509CertificateObject
type:com.android.org.bouncycastle.jce.X509Principal
+type:com.android.org.bouncycastle.util.io.pem.PemHeader
type:com.android.org.bouncycastle.util.io.pem.PemObject
type:com.android.org.bouncycastle.util.io.pem.PemObjectGenerator
type:com.android.org.bouncycastle.util.io.pem.PemReader
type:com.android.org.bouncycastle.util.io.pem.PemWriter
type:com.android.org.bouncycastle.util.Iterable
+type:com.android.org.bouncycastle.x509.X509V1CertificateGenerator
type:com.android.org.bouncycastle.x509.X509V3CertificateGenerator