277 lines
19 KiB
Text
277 lines
19 KiB
Text
Bouncy Castle on the Android platform.
|
|
---
|
|
|
|
The code in this directory is based on $BOUNCYCASTLE_VERSION in the
|
|
file bouncycastle.version. See patches/README for more information on
|
|
how the code differs from $BOUNCYCASTLE_VERSION.
|
|
|
|
Porting New Versions of Bouncy Castle.
|
|
--
|
|
|
|
The following steps are recommended for porting new Bouncy Castle versions.
|
|
|
|
1) Retrieve the appropriate version of the Bouncy Castle source from
|
|
www.bouncycastle.org/latest_releases.html (both bcprov-jdk*-*.tar.gz
|
|
and bcpkix-jdk*-*.tar.gz files).
|
|
|
|
Check the checksum (found at http://bouncycastle.org/checksums.html) with:
|
|
|
|
md5sum bcprov-jdk*-*.tar.gz
|
|
sha1sum bcprov-jdk*-*.tar.gz
|
|
md5sum bcpkix-jdk*-*.tar.gz
|
|
sha1sum bcpkix-jdk*-*.tar.gz
|
|
|
|
2) Update the variables in bouncycastle.config and bouncycastle.version as appropriate.
|
|
At the very least you will need to update the bouncycastle.version.
|
|
|
|
3) Run:
|
|
|
|
./import_bouncycastle.sh import bcprov-jdk*-*.tar.gz
|
|
|
|
Note the script expects to find the bcpkix-jdk*-*.tar.gz alongside the bcprov file.
|
|
|
|
4) If there are any errors, then modify bouncycastle.config, bouncycastle.version
|
|
and patches in patches/ as appropriate. You might want to use:
|
|
|
|
./import_bouncycastle.sh regenerate patches/*.patch
|
|
|
|
Repeat step 3.
|
|
|
|
5) Cleanup before building with:
|
|
|
|
m -j16 clean-bouncycastle
|
|
|
|
6) Build the bouncycastle target from the external/bouncycastle directory with:
|
|
|
|
mm -j16 snod && adb sync system
|
|
|
|
If there are build errors, then patches/*.mk or bouncycastle.config
|
|
may need updating.
|
|
|
|
7) Run tests to make sure things are working:
|
|
|
|
Some suggested tests by area:
|
|
- java.security.AlgorithmParameterGenerator
|
|
libcore/luni/src/test/java/libcore/java/security/OldAlgorithmParameterGeneratorTest.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParameterGeneratorTestDH.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParameterGeneratorTestDSA.java
|
|
- java.security.AlgorithmParameters
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDSA.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestAES.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDH.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDESede.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDES.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestOAEP.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/AlgorithmParameterGenerator1Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/AlgorithmParameterGenerator2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/AlgorithmParametersSpiTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/AlgorithmParametersTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/AlgorithmParametersTest.java
|
|
- java.security.cert.CertPathBuilder
|
|
libcore/luni/src/test/java/tests/targets/security/cert/CertPathBuilderTestPKIX.java
|
|
- java.security.cert.CertPathValidator
|
|
libcore/luni/src/test/java/tests/targets/security/cert/CertPathValidatorTestPKIX.java
|
|
- java.security.cert.CertStore
|
|
libcore/luni/src/test/java/tests/security/cert/CertStoreSpiTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertStore2Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertStore1Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertStoreExceptionTest.java
|
|
- java.security.cert.Certificate
|
|
libcore/luni/src/test/java/libcore/java/security/cert/X509CertificateTest.java
|
|
libcore/luni/src/test/java/tests/api/javax/security/cert/X509CertificateTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateCertificateRepTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/X509Certificate2Test.java
|
|
libcore/luni/src/test/java/tests/targets/security/cert/CertificateTest.java
|
|
- java.security.cert.CertificateFactory
|
|
libcore/luni/src/test/java/libcore/java/security/cert/CertificateFactoryTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateFactory1Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateFactory2Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateFactory3Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateFactory4Test.java
|
|
libcore/luni/src/test/java/tests/targets/security/cert/CertificateFactoryTestX509.java
|
|
- java.security.cert.CertificateFactorySpi
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateFactorySpiTest.java
|
|
- java.security.cert.CRL
|
|
libcore/luni/src/test/java/libcore/java/security/cert/X509CRLSelectorTest.java
|
|
libcore/luni/src/test/java/libcore/java/security/cert/X509CRLTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CRLTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/X509CRL2Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/X509CRLEntryTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/X509CRLSelector2Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/X509CRLSelectorTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/X509CRLTest.java
|
|
- javax.security.cert.Certificate
|
|
libcore/luni/src/test/java/tests/api/javax/security/cert/CertificateTest.java
|
|
- java.security.CodeSigner
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/CodeSignerTest.java
|
|
- javax.crypto.Cipher
|
|
libcore/luni/src/test/java/libcore/javax/crypto/CipherTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/CipherTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/NullCipherTest.java
|
|
- java.security.DigestInputStream
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/DigestInputStream2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/DigestInputStreamTest.java
|
|
- java.security.DigestOutputStream
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/DigestOutputStreamTest.java
|
|
- javax.crypto.spec.GCMParameterSpec
|
|
libcore/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/spec/GCMParameterSpecTest.java
|
|
- java.security.GuardedObject
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/GuardedObjectTest.java
|
|
- java.security.Identity
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/Identity2Test.java
|
|
- java.security.IdentityScope
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/IdentityScope2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/IdentityScopeTest.java
|
|
- javax.crypto.Key
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyTest.java
|
|
- javax.crypto.KeyAgreement
|
|
libcore/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/KeyAgreementTest.java
|
|
- java.security.KeyFactory
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/KeyFactoryTestDH.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/KeyFactoryTestDSA.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/KeyFactoryTestRSA.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyFactory2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyFactoryTest.java
|
|
- java.security.KeyFactorySpi
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyFactorySpiTest.java
|
|
- javax.crypto.KeyGenerator
|
|
libcore/luni/src/test/java/libcore/javax/crypto/KeyGeneratorTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/KeyGeneratorTest.java
|
|
- javax.net.ssl.KeyManagerFactory
|
|
libcore/luni/src/test/java/libcore/javax/net/ssl/KeyManagerFactoryTest.java
|
|
- java.security.KeyPair
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyPairTest.java
|
|
- java.security.KeyPairGenerator
|
|
libcore/luni/src/test/java/libcore/java/security/KeyPairGeneratorTest.java
|
|
libcore/luni/src/test/java/libcore/java/security/OldKeyPairGeneratorTestDH.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/KeyPairGeneratorTestDH.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/KeyPairGeneratorTestDSA.java
|
|
libcore/luni/src/test/java/libcore/javax/crypto/spec/KeyPairGeneratorTestRSA.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyPairGenerator1Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyPairGenerator2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyPairGenerator3Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyPairGenerator4Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyPairGeneratorSpiTest.java
|
|
libcore/luni/src/test/java/tests/security/interfaces/DSAKeyPairGeneratorTest.java
|
|
- java.security.KeyRep
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyRepTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyRepTypeTest.java
|
|
- java.security.KeyStore
|
|
libcore/luni/src/test/java/libcore/java/security/KeyStoreTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KSCallbackHandlerProtectionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KSPasswordProtectionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KSPrivateKeyEntryTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KSSecretKeyEntryTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KSTrustedCertificateEntryTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStore2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStore3Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStore4Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStoreBuilderTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStorePrivateKeyEntryTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStoreTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStoreTest.java
|
|
- java.security.KeyStoreSpi
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStoreSpiTest.java
|
|
- javax.crypto.Mac
|
|
libcore/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/MacTest.java
|
|
- java.security.MessageDigest
|
|
libcore/luni/src/test/java/libcore/java/security/MessageDigestTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/MessageDigest1Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/MessageDigest2Test.java
|
|
libcore/luni/src/test/java/tests/targets/security/MessageDigestTestMD2.java
|
|
libcore/luni/src/test/java/tests/targets/security/MessageDigestTestMD5.java
|
|
libcore/luni/src/test/java/tests/targets/security/MessageDigestTestSHA1.java
|
|
libcore/luni/src/test/java/tests/targets/security/MessageDigestTestSHA256.java
|
|
libcore/luni/src/test/java/tests/targets/security/MessageDigestTestSHA384.java
|
|
libcore/luni/src/test/java/tests/targets/security/MessageDigestTestSHA512.java
|
|
- java.security.MessageDigestSpi
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/MessageDigestSpiTest.java
|
|
- java.security.PrivateKey
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/PrivateKeyTest.java
|
|
- java.security.PrivilegedAction
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/PrivilegedActionTest.java
|
|
- java.security.Provider
|
|
libcore/luni/src/test/java/libcore/java/security/ProviderTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/Provider2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/ProviderServiceTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/ProviderTest.java
|
|
- java.security.PublicKey
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/PublicKeyTest.java
|
|
- java.security.Security
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/Security2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SecurityTest.java
|
|
- javax.net.ssl.SSLContext
|
|
libcore/luni/src/test/java/libcore/javax/net/ssl/SSLContextTest.java
|
|
- javax.crypto.SecretKeyFactory
|
|
libcore/luni/src/test/java/libcore/javax/crypto/SecretKeyFactoryTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/SecretKeyFactoryTest.java
|
|
- java.security.SecureRandom
|
|
libcore/luni/src/test/java/libcore/java/security/SecureRandomTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SecureRandom2Test.java
|
|
libcore/luni/src/test/java/tests/java/security/SecureRandomTest.java
|
|
libcore/luni/src/test/java/tests/targets/security/SecureRandomTestSHA1PRNG.java
|
|
- java.security.SecureRandomSpi
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SecureRandomSpiTest.java
|
|
- java.security.Signature
|
|
libcore/crypto/src/test/java/org/conscrypt/OpenSSLSignatureTest.java
|
|
libcore/luni/src/test/java/libcore/java/security/SignatureTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/Signature2Test.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SignatureTest.java
|
|
libcore/luni/src/test/java/tests/targets/security/SignatureTestMD2withRSA.java
|
|
- java.security.SignatureSpi
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SignatureSpiTest.java
|
|
- java.security.SignedObject
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SignedObjectTest.java
|
|
- java.security.Signer
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SignerTest.java
|
|
- java.security.Timestamp
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/TimestampTest.java
|
|
- java.security.cert.TrustAnchor
|
|
libcore/luni/src/test/java/tests/security/cert/TrustAnchorTest.java
|
|
- javax.net.ssl.TrustManagerFactory
|
|
libcore/luni/src/test/java/libcore/javax/net/ssl/TrustManagerFactoryTest.java
|
|
- java.net.URLConnection
|
|
libcore/luni/src/test/java/libcore/java/net/URLConnectionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/luni/tests/java/net/URLConnectionTest.java
|
|
- javax.security.auth.x500.X500Principal
|
|
libcore/luni/src/test/java/libcore/javax/net/ssl/DistinguishedNameParserTest.java
|
|
libcore/luni/src/test/java/libcore/javax/security/auth/x500/X500PrincipalTest.java
|
|
libcore/luni/src/test/java/tests/api/javax/security/auth/X500PrincipalTest.java
|
|
- javax.net.ssl.SSLSocket and javax.net.ssl.SSLEngine (which touch on Cipher, MessageDigest, Signature)
|
|
libcore/luni/src/test/java/libcore/javax/net/ssl/
|
|
- Test Android additions to bouncycastle such as org.bouncycastle.crypto.digests.OpenSSLDigest and org.bouncycastle.jce.provider.CertBlacklist
|
|
libcore/luni/src/test/java/com/android/org/bouncycastle/
|
|
- Exception "tests"
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/DigestExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/GeneralSecurityExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/InvalidAlgorithmParameterExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/InvalidKeyExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/InvalidParameterExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyManagementExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/KeyStoreExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/NoSuchAlgorithmExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/NoSuchProviderExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/ProviderExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/SignatureExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/UnrecoverableEntryExceptionTest.java
|
|
libcore/luni/src/test/java/org/apache/harmony/security/tests/java/security/UnrecoverableKeyExceptionTest.java
|
|
libcore/luni/src/test/java/tests/api/javax/security/cert/CertificateEncodingExceptionTest.java
|
|
libcore/luni/src/test/java/tests/api/javax/security/cert/CertificateExceptionTest.java
|
|
libcore/luni/src/test/java/tests/api/javax/security/cert/CertificateExpiredExceptionTest.java
|
|
libcore/luni/src/test/java/tests/api/javax/security/cert/CertificateNotYetValidExceptionTest.java
|
|
libcore/luni/src/test/java/tests/api/javax/security/cert/CertificateParsingExceptionTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CRLExceptionTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateEncodingException2Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateEncodingExceptionTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateException2Test.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateExceptionTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateExpiredExceptionTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateNotYetValidExceptionTest.java
|
|
libcore/luni/src/test/java/tests/security/cert/CertificateParsingExceptionTest.java
|
|
|
|
|
|
8) Do a full build before checking in:
|
|
|
|
m -j16
|