What crypto algorithms does Android support?
Try this to list all security providers:
Provider[] providers = Security.getProviders();
for (Provider provider : providers) {
Log.i("CRYPTO","provider: "+provider.getName());
Set<Provider.Service> services = provider.getServices();
for (Provider.Service service : services) {
Log.i("CRYPTO"," algorithm: "+service.getAlgorithm());
}
}
Update
Here is a list for my Nexus S (OS 2.3.4):
provider: AndroidOpenSSL
algorithm: SHA-384
algorithm: SHA-1
algorithm: SSLv3
algorithm: MD5
algorithm: SSL
algorithm: SHA-256
algorithm: TLS
algorithm: SHA-512
algorithm: TLSv1
algorithm: Default
provider: DRLCertFactory
algorithm: X509
provider: BC
algorithm: PKCS12
algorithm: DESEDE
algorithm: DH
algorithm: RC4
algorithm: PBEWITHSHAAND128BITAES-CBC-BC
algorithm: DESEDE
algorithm: Collection
algorithm: SHA-1
algorithm: PBEWITHSHA256AND256BITAES-CBC-BC
algorithm: PBEWITHSHAAND192BITAES-CBC-BC
algorithm: DESEDEWRAP
algorithm: PBEWITHMD5AND128BITAES-CBC-OPENSSL
algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
algorithm: AES
algorithm: HMACSHA256
algorithm: OAEP
algorithm: HMACSHA256
algorithm: HMACSHA384
algorithm: DSA
algorithm: PBEWITHMD5AND192BITAES-CBC-OPENSSL
algorithm: DES
algorithm: PBEWITHMD5ANDDES
algorithm: SHA1withDSA
algorithm: PBEWITHMD5ANDDES
algorithm: BouncyCastle
algorithm: PKIX
algorithm: PKCS12PBE
algorithm: DSA
algorithm: RSA
algorithm: PBEWITHSHA1ANDDES
algorithm: DESEDE
algorithm: PBEWITHSHAAND128BITRC2-CBC
algorithm: PBEWITHSHAAND128BITRC2-CBC
algorithm: PBEWITHSHAAND256BITAES-CBC-BC
algorithm: PBEWITHSHAAND128BITRC4
algorithm: DH
algorithm: PBEWITHSHA256AND192BITAES-CBC-BC
algorithm: PBEWITHSHAAND128BITAES-CBC-BC
algorithm: PBEWITHSHAAND40BITRC2-CBC
algorithm: HMACSHA384
algorithm: AESWRAP
algorithm: PBEWITHSHAAND192BITAES-CBC-BC
algorithm: SHA256WithRSAEncryption
algorithm: DES
algorithm: HMACSHA512
algorithm: HMACSHA1
algorithm: DH
algorithm: PBEWITHSHA256AND128BITAES-CBC-BC
algorithm: PKIX
algorithm: PBEWITHMD5ANDRC2
algorithm: SHA-256
algorithm: PBEWITHSHA1ANDDES
algorithm: HMACSHA512
algorithm: SHA384WithRSAEncryption
algorithm: DES
algorithm: BLOWFISH
algorithm: PBEWITHMD5AND128BITAES-CBC-OPENSSL
algorithm: PBEWITHSHAAND3-KEYTRIPLEDES-CBC
algorithm: PBEWITHSHAAND256BITAES-CBC-BC
algorithm: DSA
algorithm: PBEWITHSHAAND40BITRC2-CBC
algorithm: BLOWFISH
algorithm: PBEWITHSHAAND40BITRC4
algorithm: PBKDF2WithHmacSHA1
algorithm: PBEWITHSHAAND40BITRC4
algorithm: HMACSHA1
algorithm: AES
algorithm: PBEWITHSHA256AND192BITAES-CBC-BC
algorithm: PBEWITHSHAAND2-KEYTRIPLEDES-CBC
algorithm: PBEWITHHMACSHA
algorithm: DH
algorithm: BKS
algorithm: NONEWITHDSA
algorithm: DES
algorithm: PBEWITHMD5ANDRC2
algorithm: DSA
algorithm: PBEWITHSHAANDTWOFISH-CBC
algorithm: SHA512WithRSAEncryption
algorithm: HMACMD5
algorithm: PBEWITHSHAAND3-KEYTRIPLEDES-CBC
algorithm: PBEWITHSHA1ANDRC2
algorithm: ARC4
algorithm: PBEWITHHMACSHA1
algorithm: AES
algorithm: PBEWITHHMACSHA1
algorithm: MD5
algorithm: RSA
algorithm: PBEWITHSHAANDTWOFISH-CBC
algorithm: PBEWITHSHA1ANDRC2
algorithm: PBEWITHSHAAND2-KEYTRIPLEDES-CBC
algorithm: PBEWITHSHAAND128BITRC4
algorithm: SHA-384
algorithm: RSA
algorithm: DESEDE
algorithm: SHA-512
algorithm: X.509
algorithm: PBEWITHMD5AND192BITAES-CBC-OPENSSL
algorithm: MD5WithRSAEncryption
algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
algorithm: PBEWITHSHA256AND256BITAES-CBC-BC
algorithm: BLOWFISH
algorithm: DH
algorithm: SHA1WithRSAEncryption
algorithm: HMACMD5
algorithm: PBEWITHSHA256AND128BITAES-CBC-BC
provider: Crypto
algorithm: SHA1withDSA
algorithm: SHA-1
algorithm: DSA
algorithm: SHA1PRNG
provider: HarmonyJSSE
algorithm: X509
algorithm: SSLv3
algorithm: TLS
algorithm: TLSv1
algorithm: X509
algorithm: SSL
The same list updated with android 4.2.2
I/CRYPTO (32293): provider: AndroidOpenSSL
I/CRYPTO (32293): algorithm: MD5WithRSA
I/CRYPTO (32293): algorithm: SHA1WithRSA
I/CRYPTO (32293): algorithm: SHA512WithRSA
I/CRYPTO (32293): algorithm: MD5
I/CRYPTO (32293): algorithm: SHA-512
I/CRYPTO (32293): algorithm: DSA
I/CRYPTO (32293): algorithm: RSA
I/CRYPTO (32293): algorithm: SHA384WithRSA
I/CRYPTO (32293): algorithm: NONEwithRSA
I/CRYPTO (32293): algorithm: SHA-256
I/CRYPTO (32293): algorithm: SHA256WithRSA
I/CRYPTO (32293): algorithm: SSL
I/CRYPTO (32293): algorithm: SHA1PRNG
I/CRYPTO (32293): algorithm: SHA-1
I/CRYPTO (32293): algorithm: SHA1withDSA
I/CRYPTO (32293): algorithm: TLSv1.1
I/CRYPTO (32293): algorithm: TLSv1.2
I/CRYPTO (32293): algorithm: SSLv3
I/CRYPTO (32293): algorithm: TLSv1
I/CRYPTO (32293): algorithm: RSA/ECB/PKCS1Padding
I/CRYPTO (32293): algorithm: TLS
I/CRYPTO (32293): algorithm: Default
I/CRYPTO (32293): algorithm: RSA
I/CRYPTO (32293): algorithm: SHA-384
I/CRYPTO (32293): algorithm: RSA/ECB/NoPadding
I/CRYPTO (32293): provider: DRLCertFactory
I/CRYPTO (32293): algorithm: X509
I/CRYPTO (32293): provider: BC
I/CRYPTO (32293): algorithm: SHA384WITHRSA
I/CRYPTO (32293): algorithm: MD5WITHRSA
I/CRYPTO (32293): algorithm: PKCS12PBE
I/CRYPTO (32293): algorithm: PBEWITHSHAAND40BITRC4
I/CRYPTO (32293): algorithm: SHA512WITHRSA
I/CRYPTO (32293): algorithm: DH
I/CRYPTO (32293): algorithm: AES
I/CRYPTO (32293): algorithm: PBEWITHSHAAND40BITRC4
I/CRYPTO (32293): algorithm: SHA-256
I/CRYPTO (32293): algorithm: PBEWITHSHAAND3-KEYTRIPLEDES-CBC
I/CRYPTO (32293): algorithm: PBEWITHSHAAND128BITRC4
I/CRYPTO (32293): algorithm: PBEWITHSHAAND40BITRC2-CBC
I/CRYPTO (32293): algorithm: HMACSHA1
I/CRYPTO (32293): algorithm: PBEWITHSHAAND2-KEYTRIPLEDES-CBC
I/CRYPTO (32293): algorithm: SHA-1
I/CRYPTO (32293): algorithm: PBEWITHSHAAND128BITRC2-CBC
I/CRYPTO (32293): algorithm: EC
I/CRYPTO (32293): algorithm: PBEWITHSHAAND256BITAES-CBC-BC
I/CRYPTO (32293): algorithm: SHA256WITHRSA
I/CRYPTO (32293): algorithm: AES
I/CRYPTO (32293): algorithm: ECDSA
I/CRYPTO (32293): algorithm: SHA256WITHECDSA
I/CRYPTO (32293): algorithm: DH
I/CRYPTO (32293): algorithm: SHA384WITHECDSA
I/CRYPTO (32293): algorithm: SHA1withDSA
I/CRYPTO (32293): algorithm: DES
I/CRYPTO (32293): algorithm: SHA512WITHECDSA
I/CRYPTO (32293): algorithm: SHA1WITHRSA
I/CRYPTO (32293): algorithm: HMACMD5
I/CRYPTO (32293): algorithm: PBEWITHMD5AND192BITAES-CBC-OPENSSL
I/CRYPTO (32293): algorithm: PBEWITHHMACSHA1
I/CRYPTO (32293): algorithm: SHA-384
I/CRYPTO (32293): algorithm: PBEWITHSHAAND128BITRC2-CBC
I/CRYPTO (32293): algorithm: HMACSHA256
I/CRYPTO (32293): algorithm: BouncyCastle
I/CRYPTO (32293): algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
I/CRYPTO (32293): algorithm: PBEWITHSHA256AND128BITAES-CBC-BC
I/CRYPTO (32293): algorithm: PBEWITHSHAANDTWOFISH-CBC
I/CRYPTO (32293): algorithm: HMACSHA1
I/CRYPTO (32293): algorithm: DSA
I/CRYPTO (32293): algorithm: PBEWITHSHAAND128BITAES-CBC-BC
I/CRYPTO (32293): algorithm: BLOWFISH
I/CRYPTO (32293): algorithm: AESWRAP
I/CRYPTO (32293): algorithm: DH
I/CRYPTO (32293): algorithm: PKIX
I/CRYPTO (32293): algorithm: HMACSHA384
I/CRYPTO (32293): algorithm: PBEWITHSHA1ANDRC2
I/CRYPTO (32293): algorithm: PBEWITHSHAAND3-KEYTRIPLEDES-CBC
I/CRYPTO (32293): algorithm: RSA
I/CRYPTO (32293): algorithm: PBKDF2WithHmacSHA1
I/CRYPTO (32293): algorithm: EC
I/CRYPTO (32293): algorithm: HMACSHA512
I/CRYPTO (32293): algorithm: DSA
I/CRYPTO (32293): algorithm: BLOWFISH
I/CRYPTO (32293): algorithm: BLOWFISH
I/CRYPTO (32293): algorithm: PBEWITHSHA256AND192BITAES-CBC-BC
I/CRYPTO (32293): algorithm: DH
I/CRYPTO (32293): algorithm: PBEWITHSHAAND192BITAES-CBC-BC
I/CRYPTO (32293): algorithm: MD5
I/CRYPTO (32293): algorithm: PBEWITHMD5ANDDES
I/CRYPTO (32293): algorithm: DESEDEWRAP
I/CRYPTO (32293): algorithm: DSA
I/CRYPTO (32293): algorithm: PBEWITHMD5AND128BITAES-CBC-OPENSSL
I/CRYPTO (32293): algorithm: BKS
I/CRYPTO (32293): algorithm: X.509
I/CRYPTO (32293): algorithm: HMACSHA512
I/CRYPTO (32293): algorithm: HMACSHA384
I/CRYPTO (32293): algorithm: PBEWITHSHA256AND256BITAES-CBC-BC
I/CRYPTO (32293): algorithm: PBEWITHSHA1ANDRC2
I/CRYPTO (32293): algorithm: PBEWITHSHA1ANDDES
I/CRYPTO (32293): algorithm: PBEWITHHMACSHA
I/CRYPTO (32293): algorithm: PBEWITHSHAAND192BITAES-CBC-BC
I/CRYPTO (32293): algorithm: DESEDE
I/CRYPTO (32293): algorithm: PBEWITHSHA256AND192BITAES-CBC-BC
I/CRYPTO (32293): algorithm: PBEWITHMD5ANDRC2
I/CRYPTO (32293): algorithm: DES
I/CRYPTO (32293): algorithm: ARC4
I/CRYPTO (32293): algorithm: DESEDE
I/CRYPTO (32293): algorithm: RSA
I/CRYPTO (32293): algorithm: PBEWITHSHAAND2-KEYTRIPLEDES-CBC
I/CRYPTO (32293): algorithm: DESEDE
I/CRYPTO (32293): algorithm: PBEWITHMD5ANDDES
I/CRYPTO (32293): algorithm: PKCS12
I/CRYPTO (32293): algorithm: ARC4
I/CRYPTO (32293): algorithm: HMACSHA256
I/CRYPTO (32293): algorithm: PKIX
I/CRYPTO (32293): algorithm: SHA-512
I/CRYPTO (32293): algorithm: PBEWITHSHAAND40BITRC2-CBC
I/CRYPTO (32293): algorithm: PBEWITHSHAAND128BITRC4
I/CRYPTO (32293): algorithm: Collection
I/CRYPTO (32293): algorithm: HMACMD5
I/CRYPTO (32293): algorithm: DSA
I/CRYPTO (32293): algorithm: PBEWITHSHAAND256BITAES-CBC-BC
I/CRYPTO (32293): algorithm: PBEWITHSHAAND128BITAES-CBC-BC
I/CRYPTO (32293): algorithm: PBEWITHMD5AND128BITAES-CBC-OPENSSL
I/CRYPTO (32293): algorithm: RSA
I/CRYPTO (32293): algorithm: PBEWITHSHA1ANDDES
I/CRYPTO (32293): algorithm: ECDH
I/CRYPTO (32293): algorithm: PBEWITHSHA256AND256BITAES-CBC-BC
I/CRYPTO (32293): algorithm: PBEWITHHMACSHA1
I/CRYPTO (32293): algorithm: PBEWITHSHA256AND128BITAES-CBC-BC
I/CRYPTO (32293): algorithm: NONEWITHDSA
I/CRYPTO (32293): algorithm: DESEDE
I/CRYPTO (32293): algorithm: PBEWITHSHAANDTWOFISH-CBC
I/CRYPTO (32293): algorithm: DES
I/CRYPTO (32293): algorithm: DH
I/CRYPTO (32293): algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
I/CRYPTO (32293): algorithm: AES
I/CRYPTO (32293): algorithm: PBEWITHMD5ANDRC2
I/CRYPTO (32293): algorithm: DES
I/CRYPTO (32293): algorithm: PBEWITHMD5AND192BITAES-CBC-OPENSSL
I/CRYPTO (32293): algorithm: OAEP
I/CRYPTO (32293): algorithm: NONEwithECDSA
I/CRYPTO (32293): provider: Crypto
I/CRYPTO (32293): algorithm: SHA1withDSA
I/CRYPTO (32293): algorithm: SHA-1
I/CRYPTO (32293): algorithm: SHA1PRNG
I/CRYPTO (32293): algorithm: DSA
I/CRYPTO (32293): provider: HarmonyJSSE
I/CRYPTO (32293): algorithm: SSLv3
I/CRYPTO (32293): algorithm: AndroidCAStore
I/CRYPTO (32293): algorithm: X509
I/CRYPTO (32293): algorithm: X509
I/CRYPTO (32293): algorithm: TLS
I/CRYPTO (32293): algorithm: SSL
I/CRYPTO (32293): algorithm: TLSv1
The official cipher list can be found here. alot are supported from SDK 1 but even more from SDK 10: https://developer.android.com/reference/javax/crypto/Cipher.html