bcprov.patch:

patch against Bouncy Castle's bcprov:

The main differences involve removing algorithms not included in the
reference implementation (RI).  The libcore
java.security.StandardNames test support class provides the most
up-do-date documentation of differences between the RI's list of
supported algorithms and Android's. Some notable omissions versus the
RI:
- LDAP
- MD2
- RC2

Other performance (both speed and memory) and correctness changes:
- singleton DERNull (BouncyCastle now does this but we make constructor private to be sure)
- similarly made DERBoolean constructor private and moved to DERBoolean.{getInstance,TRUE,FALSE}
- removed use of Boolean constructor (not-upstreamable due to J2ME requirement upstream)
- DERObjectIdentifier interns its internal String indentifer value
- changed uses of 'new Integer' to 'Integers.valueOf'
- X509CertificateObject.getEncoded caches its result
- removed references to SecretKeyFactory.PBE/PKCS5 SecretKeyFactory.PBE/PKCS12
- OpenSSLDigest uses NativeCrypto JNI API
- JDKKeyStore made more tolerant of non-existant aliases
- Make BouncyCastleProvider.PROVIDER_NAME final
- Added wrapper for SecretKeyFactory.PBKDF2WithHmacSHA1

Other security changes:
- Blacklist fraudulent Comodo certificates in PKIXCertPathValidatorSpi
- Blacklist compromised DigiNotar Root CA by public key to block cross-signed intermediates

Other changes:
- Log entry and exit to DHParametersHelper.generateSafePrimes which has long, unpredictable runtime


bcpkix.patch:

patch against Bouncy Castle's bcpkix:

The main differences involve:
- removing algorithms not in our bcprov (MD2, MD4, SHA224, RIPEMD, GOST)
- using the singleton DERNull.INSTANCE