Android: com.nimbusds.jose.JOSEException: Couldn't create AES/GCM/NoPadding cipher: unknown parameter type

Issue #185 resolved
Former user created an issue

I am trying to use Nimbus library nimbus-jose-jwt-4.5.jar for JWE. This fails to work on many Android devices giving below exception,

com.nimbusds.jose.JOSEException: Couldn't create AES/GCM/NoPadding cipher: unknown parameter type.
     at com.nimbusds.jose.crypto.AESGCM.encrypt(AESGCM.java:93)
     at com.nimbusds.jose.crypto.ContentCryptoProvider.encrypt(ContentCryptoProvider.java:169)
     at com.nimbusds.jose.crypto.ECDHEncrypter.encrypt(ECDHEncrypter.java:149)
     at com.nimbusds.jose.JWEObject.encrypt(JWEObject.java:353)
     at com.sample.activity.MainActivity.onCreate(MainActivity.java:111)
     at android.app.Activity.performCreate(Activity.java:5245)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2164)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249)
     at android.app.ActivityThread.access$800(ActivityThread.java:141)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1212)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:136)
     at android.app.ActivityThread.main(ActivityThread.java:5113)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:515)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
     at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.security.InvalidAlgorithmParameterException: unknown parameter type.
     at com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineInit(BaseBlockCipher.java:559)
     at javax.crypto.Cipher.init(Cipher.java:616)
     at javax.crypto.Cipher.init(Cipher.java:566)
     at com.nimbusds.jose.crypto.AESGCM.encrypt(AESGCM.java:89)
    ... 21 more

This issue is seen primarily on Android 4.4 devices. e.g.* HTC One M8(Verizon, OS: 4.4.2) * LG Nexus 4(OS: 4.4.3) etc..

My code to do JWE is pretty simple, below is the snippet,

ECKey publicKey = ECKey.parse(key); 
ECDHEncrypter encrypter = new ECDHEncrypter(publicKey); 
Payload payload = new Payload(data); 
JWEHeader header = new JWEHeader(JWEAlgorithm.ECDH_ES,EncryptionMethod.A128GCM); 
JWEObject jWEObject = new JWEObject(header, payload); 
jWEObject.encrypt(encrypter); 

While this works on many devices, it fails to work on many other devices. I tried to make use of latest Nimbus library nimbus-jose-jwt-4.13.1.jar and latest Bouncy Castle library bcprov-jdk15on-154.jar but the issue persist. Please help me resolve this.

Comments (12)

  1. User_Kapil

    I called above API also, but the issue remains as it is. Further, I dumped the available crypto algs, its huge (587), and apparently some duplicates. Will dumping the crypto algs will be of any help to you?

  2. Connect2id OSS

    Yes, please post the alg list, even if it's long.

    Regarding alg support, the Nimbus JOSE+JWT lib delegates AES/GCM/NoPadding processing to the underlying JCA impl. Now why BouncyCastle succeeds on some platforms with this fails on others, we cannot explain. Technically the code is Java, so the platform shouldn't matter. Perhaps a BouncyCastle maintainer or some one more familiar with security on Android can help out with this.

  3. Karthik Kalahasthi

    Android has a strip down version of BouncyCastle , you could probably try org.spongycastle.*

  4. User_Kapil

    please find below the alg list.

    Alg.Alias.Signature.SHA-1/RSA   SHA1WithRSA
    SecureRandom.SHA1PRNG ImplementedIn Software
    Alg.Alias.Signature.SHA/DSA SHA1withDSA
    Alg.Alias.Signature.2.16.840.1.101.3.4.2.2with1.2.840.10045.2.1 SHA384withECDSA
    Alg.Alias.Signature.2.16.840.1.101.3.4.2.3with1.2.840.10045.2.1 SHA512withECDSA
    SSLContext.TLS  com.android.org.conscrypt.OpenSSLContextImpl
    Signature.SHA256WithRSA com.android.org.conscrypt.OpenSSLSignature$SHA256RSA
    Alg.Alias.Signature.MD5/RSA MD5WithRSA
    Alg.Alias.Signature.1.2.840.113549.1.1.11   SHA256WithRSA
    Alg.Alias.Signature.1.2.840.113549.1.1.5    SHA1WithRSA
    Alg.Alias.MessageDigest.1.3.14.3.2.26   SHA-1
    Alg.Alias.Mac.HMAC/SHA1 HmacSHA1
    Alg.Alias.Signature.SHA256WithRSAEncryption SHA256WithRSA
    Alg.Alias.Signature.SHA384WithRSAEncryption SHA384WithRSA
    Alg.Alias.Signature.1.2.840.113549.1.1.4    MD5WithRSA
    Alg.Alias.Signature.SHA1/RSA    SHA1WithRSA
    Signature.SHA256withECDSA   com.android.org.conscrypt.OpenSSLSignature$SHA256ECDSA
    KeyFactory.EC   com.android.org.conscrypt.OpenSSLECKeyFactory
    KeyPairGenerator.DSA    com.android.org.conscrypt.OpenSSLDSAKeyPairGenerator
    Cipher.DESEDE/OFB/PKCS5Padding  com.android.org.conscrypt.OpenSSLCipher$DESEDE$OFB$PKCS5Padding
    Signature.SHA1withDSA   com.android.org.conscrypt.OpenSSLSignature$SHA1DSA
    Cipher.DESEDE/ECB/PKCS5Padding  com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB$PKCS5Padding
    CertificateFactory.X509 com.android.org.conscrypt.OpenSSLX509CertificateFactory
    Alg.Alias.Signature.2.16.840.1.101.3.4.2.1with1.2.840.113549.1.1.11 SHA256WithRSA
    Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1.1 RSA
    Mac.HmacSHA1    com.android.org.conscrypt.OpenSSLMac$HmacSHA1
    Mac.HmacSHA512  com.android.org.conscrypt.OpenSSLMac$HmacSHA512
    SSLContext.TLSv1.1  com.android.org.conscrypt.OpenSSLContextImpl
    Signature.SHA512withECDSA   com.android.org.conscrypt.OpenSSLSignature$SHA512ECDSA
    Alg.Alias.Signature.SHA512WithRSAEncryption SHA512WithRSA
    Cipher.AES/CBC/PKCS5Padding com.android.org.conscrypt.OpenSSLCipher$AES$CBC$PKCS5Padding
    Cipher.DESEDE/CFB/NoPadding com.android.org.conscrypt.OpenSSLCipher$DESEDE$CFB$NoPadding
    Alg.Alias.MessageDigest.SHA512  SHA-512
    Signature.SHA384WithRSA com.android.org.conscrypt.OpenSSLSignature$SHA384RSA
    Alg.Alias.Signature.MD5WithRSAEncryption    MD5WithRSA
    Provider.id className   com.android.org.conscrypt.OpenSSLProvider
    KeyAgreement.ECDH   com.android.org.conscrypt.OpenSSLECDHKeyAgreement
    SecureRandom.SHA1PRNG   com.android.org.conscrypt.OpenSSLRandom
    Alg.Alias.Signature.1.2.840.113549.1.1.13   SHA512WithRSA
    Alg.Alias.Mac.HMAC/SHA384   HmacSHA384
    Signature.SHA1WithRSA   com.android.org.conscrypt.OpenSSLSignature$SHA1RSA
    Signature.SHA512WithRSA com.android.org.conscrypt.OpenSSLSignature$SHA512RSA
    Alg.Alias.Signature.2.16.840.1.101.3.4.2.3with1.2.840.113549.1.1.1  SHA512WithRSA
    Alg.Alias.Signature.1.2.840.10045.4.3.3 SHA384withECDSA
    Alg.Alias.MessageDigest.SHA384  SHA-384
    KeyPairGenerator.RSA    com.android.org.conscrypt.OpenSSLRSAKeyPairGenerator
    Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.1  SHA-256
    Cipher.AES/ECB/NoPadding    com.android.org.conscrypt.OpenSSLCipher$AES$ECB$NoPadding
    Alg.Alias.Mac.1.2.840.113549.2.11   HmacSHA512
    Cipher.AES/CTR/PKCS5Padding com.android.org.conscrypt.OpenSSLCipher$AES$CTR$PKCS5Padding
    SSLContext.SSLv3    com.android.org.conscrypt.OpenSSLContextImpl
    Alg.Alias.Mac.HMAC/SHA512   HmacSHA512
    Alg.Alias.Cipher.RSA/None/NoPadding RSA/ECB/NoPadding
    SSLContext.SSL  com.android.org.conscrypt.OpenSSLContextImpl
    Mac.HmacSHA384  com.android.org.conscrypt.OpenSSLMac$HmacSHA384
    Provider.id name    AndroidOpenSSL
    MessageDigest.SHA-512   com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA512
    Alg.Alias.Signature.1.2.840.113549.2.5with1.2.840.113549.1.1.1  MD5WithRSA
    Alg.Alias.Mac.HMAC-SHA1 HmacSHA1
    Cipher.AES/OFB/NoPadding    com.android.org.conscrypt.OpenSSLCipher$AES$OFB$NoPadding
    KeyFactory.DSA  com.android.org.conscrypt.OpenSSLDSAKeyFactory
    Cipher.AES/OFB/PKCS5Padding com.android.org.conscrypt.OpenSSLCipher$AES$OFB$PKCS5Padding
    Mac.HmacMD5 com.android.org.conscrypt.OpenSSLMac$HmacMD5
    Alg.Alias.Mac.1.2.840.113549.2.9    HmacSHA256
    Cipher.DESEDE/ECB/NoPadding com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB$NoPadding
    MessageDigest.SHA-384   com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA384
    Cipher.AES/CBC/NoPadding    com.android.org.conscrypt.OpenSSLCipher$AES$CBC$NoPadding
    MessageDigest.MD5   com.android.org.conscrypt.OpenSSLMessageDigestJDK$MD5
    Alg.Alias.Mac.HMAC/SHA256   HmacSHA256
    Alg.Alias.Signature.DSAWithSHA1 SHA1withDSA
    Signature.NONEwithRSA   com.android.org.conscrypt.OpenSSLSignatureRawRSA
    SSLContext.TLSv1    com.android.org.conscrypt.OpenSSLContextImpl
    Cipher.RSA/ECB/NoPadding    com.android.org.conscrypt.OpenSSLCipherRSA$Raw
    Provider.id version 1.0
    Alg.Alias.Mac.HMAC-SHA384   HmacSHA384
    MessageDigest.SHA-256   com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA256
    Alg.Alias.Signature.2.16.840.1.101.3.4.2.1with1.2.840.10045.2.1 SHA256withECDSA
    Cipher.AES/CFB/NoPadding    com.android.org.conscrypt.OpenSSLCipher$AES$CFB$NoPadding
    Alg.Alias.Mac.1.2.840.113549.2.10   HmacSHA384
    Alg.Alias.Mac.1.2.840.113549.2.7    HmacSHA1
    Alg.Alias.Signature.2.16.840.1.101.3.4.2.1with1.2.840.113549.1.1.1  SHA256WithRSA
    Alg.Alias.MessageDigest.SHA256  SHA-256
    Alg.Alias.Signature.1.2.840.113549.1.1.12   SHA384WithRSA
    Cipher.DESEDE/CFB/PKCS5Padding  com.android.org.conscrypt.OpenSSLCipher$DESEDE$CFB$PKCS5Padding
    KeyFactory.RSA  com.android.org.conscrypt.OpenSSLRSAKeyFactory
    Cipher.AES/CTR/NoPadding    com.android.org.conscrypt.OpenSSLCipher$AES$CTR$NoPadding
    Alg.Alias.Signature.2.16.840.1.101.3.4.2.2with1.2.840.113549.1.1.1  SHA384WithRSA
    Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10045.2.1  ECDSA
    Alg.Alias.MessageDigest.1.2.840.113549.2.5  MD5
    Alg.Alias.Mac.HMAC-SHA256   HmacSHA256
    KeyPairGenerator.EC com.android.org.conscrypt.OpenSSLECKeyPairGenerator
    Signature.MD5WithRSA    com.android.org.conscrypt.OpenSSLSignature$MD5RSA
    Alg.Alias.CertificateFactory.X.509  X509
    MessageDigest.SHA-1 com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA1
    Cipher.DESEDE/OFB/NoPadding com.android.org.conscrypt.OpenSSLCipher$DESEDE$OFB$NoPadding
    Alg.Alias.Mac.HMAC-SHA512   HmacSHA512
    Alg.Alias.Signature.SHA1withECDSA   ECDSA
    Alg.Alias.Signature.1.2.840.10045.4.3.2 SHA256withECDSA
    Cipher.DESEDE/CBC/PKCS5Padding  com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC$PKCS5Padding
    Alg.Alias.Signature.ECDSAwithSHA1   ECDSA
    Alg.Alias.Signature.SHA1WithRSAEncryption   SHA1WithRSA
    Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.3  SHA-512
    Cipher.ARC4 com.android.org.conscrypt.OpenSSLCipher$ARC4
    Cipher.AES/CFB/PKCS5Padding com.android.org.conscrypt.OpenSSLCipher$AES$CFB$PKCS5Padding
    Alg.Alias.Signature.1.2.840.10045.4.3.4 SHA512withECDSA
    Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.113549.1.1.1   SHA1WithRSA
    Alg.Alias.Cipher.RSA/None/PKCS1Padding  RSA/ECB/PKCS1Padding
    Cipher.AES/ECB/PKCS5Padding com.android.org.conscrypt.OpenSSLCipher$AES$ECB$PKCS5Padding
    Alg.Alias.Signature.1.2.840.10045.4.1   ECDSA
    Provider.id info    Android's OpenSSL-backed security provider
    SSLContext.TLSv1.2  com.android.org.conscrypt.OpenSSLContextImpl
    Cipher.DESEDE/CBC/NoPadding com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC$NoPadding
    Alg.Alias.Signature.1.2.840.10040.4.3   SHA1withDSA
    Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.2  SHA-384
    Alg.Alias.Signature.1.3.14.3.2.29   SHA1WithRSA
    Mac.HmacSHA256  com.android.org.conscrypt.OpenSSLMac$HmacSHA256
    Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.3  SHA1withDSA
    SSLContext.Default  com.android.org.conscrypt.DefaultSSLContextImpl
    Alg.Alias.MessageDigest.SHA SHA-1
    Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.1  SHA1withDSA
    Alg.Alias.Signature.DSA SHA1withDSA
    Signature.ECDSA com.android.org.conscrypt.OpenSSLSignature$SHA1ECDSA
    Alg.Alias.KeyFactory.1.2.840.113549.1.1.1   RSA
    Cipher.RSA/ECB/PKCS1Padding com.android.org.conscrypt.OpenSSLCipherRSA$PKCS1
    Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.113549.1.1.5   SHA1WithRSA
    Alg.Alias.MessageDigest.SHA1    SHA-1
    Signature.SHA384withECDSA   com.android.org.conscrypt.OpenSSLSignature$SHA384ECDSA
    Provider.id info    ASN.1, DER, PkiPath, PKCS7
    Provider.id name    DRLCertFactory
    Alg.Alias.CertificateFactory.X.509  X509
    Provider.id className   org.apache.harmony.security.provider.cert.DRLCertFactory
    CertificateFactory.X509 org.apache.harmony.security.provider.cert.X509CertFactoryImpl
    Provider.id version 1.0
    Alg.Alias.KeyGenerator.2.16.840.1.101.3.4.2.1   HMACSHA256
    Alg.Alias.KeyGenerator.1.2.840.113549.3.4   ARC4
    Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.3029.1.2  BLOWFISH
    Alg.Alias.Signature.SHA256WITHRSAENCRYPTION SHA256WITHRSA
    Alg.Alias.Signature.1.2.840.113549.1.1.5    SHA1WITHRSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHAANDDES3KEY-CBC  PKCS12PBE
    Alg.Alias.Mac.HMAC/SHA1 HMACSHA1
    Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.1   PKCS12PBE
    Alg.Alias.KeyGenerator.HMAC/SHA1    HMACSHA1
    SecretKeyFactory.PBEWITHSHA1ANDDES  com.android.org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithSHA1KeyFactory
    KeyAgreement.DH com.android.org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi
    Cipher.PBEWITHSHAAND128BITAES-CBC-BC    com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Cipher.PBEWITHSHA1ANDRC2    com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHA1AndRC2
    Alg.Alias.KeyPairGenerator.2.5.8.1.1    RSA
    Alg.Alias.KeyGenerator.HMAC-SHA512  HMACSHA512
    KeyPairGenerator.DSA    com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyPairGeneratorSpi
    Alg.Alias.Cipher.PBEWITHSHA1AND40BITRC2-CBC PBEWITHSHAAND40BITRC2-CBC
    Alg.Alias.AlgorithmParameterGenerator.1.2.840.10040.4.1 DSA
    Alg.Alias.Signature.SHA512WithECDSA SHA512WITHECDSA
    Alg.Alias.SecretKeyFactory.PBEWITHSHA1AND128BITAES-CBC-BC   PBEWITHSHAAND128BITAES-CBC-BC
    Alg.Alias.KeyGenerator.1.2.840.113549.2.10  HMACSHA384
    Signature.SHA512WITHECDSA   com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA512
    Alg.Alias.Signature.SHA256withRSAEncryption SHA256WITHRSA
    Alg.Alias.MessageDigest.SHA512  SHA-512
    Alg.Alias.Signature.SHA512withECDSA SHA512WITHECDSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHA-1AND128BITAES-CBC-BC   PKCS12PBE
    Alg.Alias.Signature.MD5WithRSAEncryption    MD5WITHRSA
    Alg.Alias.Signature.1.2.840.113549.1.1.13   SHA512WITHRSA
    Alg.Alias.Cipher.PBEWITHSHA1AND128BITAES-CBC-BC PBEWITHSHAAND128BITAES-CBC-BC
    SecretKeyFactory.PBEWITHSHAAND40BITRC4  com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd40BitKeyFactory
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.2  PBEWITHSHAAND40BITRC4
    Alg.Alias.AlgorithmParameters.PBEWITHSHAANDRC2  PKCS12PBE
    Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.1  SHA-256
    Alg.Alias.AlgorithmParameters.PBEWITHSHA1AND128BITAES-CBC-BC    PKCS12PBE
    Alg.Alias.Signature.SHA256withRSA   SHA256WITHRSA
    CertPathBuilder.PKIX    com.android.org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi
    Mac.HMACSHA1    com.android.org.bouncycastle.jcajce.provider.digest.SHA1$HashMac
    Alg.Alias.Cipher.1.3.6.1.4.1.22554.1.1.2.1.2    PBEWITHSHAAND128BITAES-CBC-BC
    Alg.Alias.KeyStore.UBER BouncyCastle
    Alg.Alias.KeyStore.bouncycastle BouncyCastle
    Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.42   AES
    AlgorithmParameters.OAEP    com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.AlgorithmParametersSpi$OAEP
    Alg.Alias.AlgorithmParameterGenerator.DIFFIEHELLMAN DH
    Alg.Alias.Cipher.1.2.840.113549.1.12.1.6    PBEWITHSHAAND40BITRC2-CBC
    Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.6   PKCS12PBE
    KeyPairGenerator.DH com.android.org.bouncycastle.jcajce.provider.asymmetric.dh.KeyPairGeneratorSpi
    MessageDigest.SHA-384   com.android.org.bouncycastle.jcajce.provider.digest.SHA384$Digest
    Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.2  AES
    KeyGenerator.ARC4   com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$KeyGen
    Alg.Alias.KeyPairGenerator.1.3.133.16.840.63.0.2    EC
    Alg.Alias.Signature.SHA1WITHDSA SHA1withDSA
    Alg.Alias.Signature.1.3.14.3.2.27   SHA1withDSA
    Provider.id version 1.49
    Alg.Alias.Mac.HMAC-SHA384   HMACSHA384
    Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.4   PKCS12PBE
    AlgorithmParameterGenerator.DH  com.android.org.bouncycastle.jcajce.provider.asymmetric.dh.AlgorithmParameterGeneratorSpi
    Alg.Alias.Signature.OID.1.2.840.113549.1.1.11   SHA256WITHRSA
    Alg.Alias.SecretKeyFactory.1.3.6.1.4.1.22554.1.2.1.2.1.42   PBEWITHSHA256AND256BITAES-CBC-BC
    SecretKeyFactory.PBEWITHMD5ANDDES   com.android.org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD5KeyFactory
    Alg.Alias.Mac.1.2.840.113549.2.7    HMACSHA1
    Alg.Alias.MessageDigest.SHA256  SHA-256
    Alg.Alias.KeyGenerator.HMAC/MD5 HMACMD5
    Alg.Alias.SecretKeyFactory.1.3.6.1.4.1.22554.1.2.1.2.1.22   PBEWITHSHA256AND192BITAES-CBC-BC
    Alg.Alias.KeyGenerator.HMAC-SHA384  HMACSHA384
    Alg.Alias.Signature.SHA1WithECDSA   ECDSA
    Alg.Alias.Cipher.1.2.840.113549.1.12.1.4    PBEWITHSHAAND2-KEYTRIPLEDES-CBC
    Alg.Alias.AlgorithmParameters.DIFFIEHELLMAN DH
    Alg.Alias.Cipher.PBEWITHSHA1ANDDESEDE   PBEWITHSHAAND3-KEYTRIPLEDES-CBC
    Alg.Alias.Mac.HMAC-SHA256   HMACSHA256
    Alg.Alias.AlgorithmParameters.PBEWITHSHA-1AND192BITAES-CBC-BC   PKCS12PBE
    KeyPairGenerator.EC com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$EC
    Alg.Alias.Cipher.PBEWithSHAAnd3KeyTripleDES PBEWITHSHAAND3-KEYTRIPLEDES-CBC
    MessageDigest.SHA-1 com.android.org.bouncycastle.jcajce.provider.digest.SHA1$Digest
    KeyGenerator.HMACSHA512 com.android.org.bouncycastle.jcajce.provider.digest.SHA512$KeyGenerator
    Alg.Alias.AlgorithmParameters.1.2.840.113549.3.7    DESEDE
    AlgorithmParameters.DSA com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.AlgorithmParametersSpi
    Alg.Alias.KeyGenerator.TDEA DESEDE
    Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.22 AES
    Alg.Alias.SecretKeyFactory.PBEWITHMD5ANDDES-CBC PBEWITHMD5ANDDES
    Alg.Alias.Cipher.1.2.840.113549.1.12.1.2    PBEWITHSHAAND40BITRC4
    Alg.Alias.KeyGenerator.1.2.840.113549.2.9   HMACSHA256
    Cipher.RSA  com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$NoPadding
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND2-KEYTRIPLEDES   PKCS12PBE
    Alg.Alias.KeyPairGenerator.1.2.840.10045.2.1    EC
    Alg.Alias.Cipher.PBEWITHSHA1AND2-KEYTRIPLEDES-CBC   PBEWITHSHAAND2-KEYTRIPLEDES-CBC
    Alg.Alias.Mac.HMAC/MD5  HMACMD5
    Alg.Alias.Signature.DSA SHA1withDSA
    Cipher.PBEWITHSHAAND40BITRC4    com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd40Bit
    KeyStore.BouncyCastle   com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$BouncyCastleStore
    Cipher.PBEWITHSHAAND128BITRC4   com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd128Bit
    AlgorithmParameters.AES com.android.org.bouncycastle.jcajce.provider.symmetric.AES$AlgParams
    Alg.Alias.KeyGenerator.RC4  ARC4
    Alg.Alias.Signature.SHA/DSA SHA1withDSA
    Alg.Alias.SecretKeyFactory.1.3.6.1.4.1.22554.1.1.2.1.22 PBEWITHSHAAND192BITAES-CBC-BC
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.5.6 PBEWITHMD5ANDRC2
    Alg.Alias.SecretKeyFactory.PBEWITHSHA-1AND256BITAES-CBC-BC  PBEWITHSHAAND256BITAES-CBC-BC
    Alg.Alias.Signature.1.2.840.113549.1.1.11   SHA256WITHRSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHA256AND192BITAES-CBC-BC  PKCS12PBE
    Alg.Alias.SecretKeyFactory.PBEWITHSHA1ANDDES-CBC    PBEWITHSHA1ANDDES
    CertificateFactory.X.509    com.android.org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory
    Alg.Alias.MessageDigest.1.3.14.3.2.26   SHA-1
    Mac.HMACSHA384  com.android.org.bouncycastle.jcajce.provider.digest.SHA384$HashMac
    Alg.Alias.Cipher.2.16.840.1.101.3.4.1.45    AESWRAP
    Alg.Alias.Signature.SHA384WithRSAEncryption SHA384WITHRSA
    Alg.Alias.KeyPairGenerator.DIFFIEHELLMAN    DH
    Alg.Alias.Signature.SHA1/RSA    SHA1WITHRSA
    SecretKeyFactory.PBEWITHSHAAND192BITAES-CBC-BC  com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHAAnd192BitAESBC
    KeyFactory.DH   com.android.org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi
    Alg.Alias.KeyStore.BOUNCYCASTLE BouncyCastle
    Alg.Alias.Cipher.2.16.840.1.101.3.4.1.5 AESWRAP
    Cipher.PBEWITHSHA1ANDDES    com.android.org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithSHA1
    Alg.Alias.AlgorithmParameters.PBEWITHSHAANDDES2KEY-CBC  PKCS12PBE
    SecretKeyFactory.PBEWITHMD5AND256BITAES-CBC-OPENSSL com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithMD5And256BitAESCBCOpenSSL
    Alg.Alias.KeyGenerator.1.2.840.113549.2.7   HMACSHA1
    Alg.Alias.SecretKeyFactory.PBEWITHSHA-256AND192BITAES-CBC-BC    PBEWITHSHA256AND192BITAES-CBC-BC
    Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.22554.1.2.1.2.1.22    PKCS12PBE
    Alg.Alias.Signature.SHA256WithRSA   SHA256WITHRSA
    Alg.Alias.Signature.SHA384withRSA   SHA384WITHRSA
    Alg.Alias.Signature.MD5withRSAEncryption    MD5WITHRSA
    Alg.Alias.Signature.SHA1WITHRSAENCRYPTION   SHA1WITHRSA
    Alg.Alias.Signature.DSAWITHSHA1 SHA1withDSA
    Alg.Alias.Mac.HMAC/SHA384   HMACSHA384
    Alg.Alias.KeyFactory.1.3.14.3.2.27  DSA
    Alg.Alias.Signature.OID.1.2.840.113549.1.1.13   SHA512WITHRSA
    Alg.Alias.SecretKeyFactory.PBEWITHSHA1ANDRC2-CBC    PBEWITHSHA1ANDRC2
    Alg.Alias.Cipher.2.16.840.1.101.3.4.22  AES
    KeyGenerator.AES    com.android.org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen
    Cipher.PBEWITHSHAAND192BITAES-CBC-BC    com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Alg.Alias.SecretKeyFactory.PBEWITHMD5ANDRC2-CBC PBEWITHMD5ANDRC2
    Alg.Alias.SecretKeyFactory.1.3.14.3.2.26    PBEWITHHMACSHA1
    Provider.id name    BC
    Alg.Alias.Signature.SHA384WITHRSAENCRYPTION SHA384WITHRSA
    AlgorithmParameterGenerator.DSA com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.AlgorithmParameterGeneratorSpi
    Alg.Alias.KeyFactory.1.3.133.16.840.63.0.2  EC
    Signature.SHA256WITHRSA com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256
    Alg.Alias.AlgorithmParameters.PBEWITHSHA1ANDRC2 PKCS12PBE
    Alg.Alias.Cipher.1.2.840.113549.1.5.3   PBEWITHMD5ANDDES
    Alg.Alias.SecretKeyFactory.PBEWITHSHA-256AND256BITAES-CBC-BC    PBEWITHSHA256AND256BITAES-CBC-BC
    Alg.Alias.Cipher.PBEWITHSHA-256AND128BITAES-CBC-BC  PBEWITHSHA256AND128BITAES-CBC-BC
    MessageDigest.MD5   com.android.org.bouncycastle.jcajce.provider.digest.MD5$Digest
    Alg.Alias.Cipher.1.3.6.1.4.1.22554.1.1.2.1.42   PBEWITHSHAAND256BITAES-CBC-BC
    Alg.Alias.Signature.SHA256WithECDSA SHA256WITHECDSA
    Alg.Alias.Mac.HMAC-MD5  HMACMD5
    Cipher.DESEDEWRAP   com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$Wrap
    KeyGenerator.DESEDE com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$KeyGenerator
    Alg.Alias.Signature.OID.1.2.840.113549.1.1.12   SHA384WITHRSA
    SecretKeyFactory.PBEWITHSHA256AND128BITAES-CBC-BC   com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256And128BitAESBC
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.4  PBEWITHSHAAND2-KEYTRIPLEDES-CBC
    Alg.Alias.Cipher.2.16.840.1.101.3.4.2   AES
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.5.11    PBEWITHSHA1ANDRC2
    Alg.Alias.Signature.1.2.840.113549.1.1.12   SHA384WITHRSA
    Alg.Alias.Signature.DSAwithSHA1 SHA1withDSA
    KeyGenerator.HMACSHA384 com.android.org.bouncycastle.jcajce.provider.digest.SHA384$KeyGenerator
    Signature.MD5WITHRSA    com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$MD5
    Alg.Alias.Signature.MD5WITHRSAENCRYPTION    MD5WITHRSA
    Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.2    AES
    Cipher.AES  com.android.org.bouncycastle.jcajce.provider.symmetric.AES$ECB
    Signature.SHA512WITHRSA com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512
    Cipher.PBEWITHSHAAND128BITRC2-CBC   com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd128BitRC2
    Alg.Alias.KeyGenerator.1.3.6.1.4.1.3029.1.2 BLOWFISH
    SecretKeyFactory.PBEWITHMD5AND128BITAES-CBC-OPENSSL com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithMD5And128BitAESCBCOpenSSL
    Alg.Alias.Cipher.1.2.840.113549.1.12.1.3    PBEWITHSHAAND3-KEYTRIPLEDES-CBC
    Alg.Alias.Signature.SHA512withRSAEncryption SHA512WITHRSA
    Alg.Alias.Mac.HMAC-SHA512   HMACSHA512
    Cipher.PBEWITHSHAAND40BITRC2-CBC    com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd40BitRC2
    Alg.Alias.Signature.SHA1withECDSA   ECDSA
    Alg.Alias.Signature.1.2.840.10045.4.3.2 SHA256WITHECDSA
    Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.3  SHA-512
    Alg.Alias.KeyGenerator.HMAC/SHA512  HMACSHA512
    Alg.Alias.AlgorithmParameters.PBEWITHSHA-1AND256BITAES-CBC-BC   PKCS12PBE
    SecretKeyFactory.PBEWITHSHA256AND256BITAES-CBC-BC   com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256And256BitAESBC
    Alg.Alias.AlgorithmParameters.PBEWITHSHA256AND128BITAES-CBC-BC  PKCS12PBE
    Signature.SHA256WITHECDSA   com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA256
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND128BITAES-CBC-BC PKCS12PBE
    Alg.Alias.KeyFactory.DIFFIEHELLMAN  DH
    Alg.Alias.Signature.SHA512WithRSA   SHA512WITHRSA
    Alg.Alias.Signature.1.2.840.10040.4.3   SHA1withDSA
    Signature.SHA384WITHECDSA   com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA384
    Alg.Alias.SecretKeyFactory.PBEWithSHAAnd3KeyTripleDES   PBEWITHSHAAND3-KEYTRIPLEDES-CBC
    SecretKeyFactory.PBKDF2WithHmacSHA1 com.android.org.bouncycastle.jcajce.provider.digest.SHA1$PBKDF2WithHmacSHA1UTF8
    SecretKeyFactory.PBEWITHHMACSHA1    com.android.org.bouncycastle.jcajce.provider.digest.SHA1$PBEWithMacKeyFactory
    Alg.Alias.Signature.SHA384WithRSA   SHA384WITHRSA
    Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.1  SHA1withDSA
    Alg.Alias.Signature.SHA512/ECDSA    SHA512WITHECDSA
    CertPathValidator.PKIX  com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
    Alg.Alias.AlgorithmParameters.1.2.840.10040.4.1 DSA
    Cipher.PBEWITHMD5ANDRC2 com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithMD5AndRC2
    Cipher.PBEWITHSHA256AND256BITAES-CBC-BC com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Alg.Alias.Signature.ECDSAWithSHA1   ECDSA
    Alg.Alias.Mac.1.3.14.3.2.26 PBEWITHHMACSHA
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND128BITRC2-CBC    PKCS12PBE
    Alg.Alias.Signature.MD5/RSA MD5WITHRSA
    Cipher.PBEWITHSHAAND2-KEYTRIPLEDES-CBC  com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES2Key
    Alg.Alias.Signature.SHA256withECDSA SHA256WITHECDSA
    Alg.Alias.KeyFactory.1.2.840.113549.1.1.7   RSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHAANDRC4  PKCS12PBE
    SecretKeyFactory.PBEWITHSHAAND2-KEYTRIPLEDES-CBC    com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES2KeyFactory
    Alg.Alias.Cipher.TDEAWRAP   DESEDEWRAP
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.1  PBEWITHSHAAND128BITRC4
    Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.3   PKCS12PBE
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.5  PBEWITHSHAAND128BITRC2-CBC
    Alg.Alias.AlgorithmParameters.PBEWITHSHA1AND256BITAES-CBC-BC    PKCS12PBE
    Alg.Alias.Signature.SHA512WITHRSAENCRYPTION SHA512WITHRSA
    Alg.Alias.Signature.1.2.840.10040.4.1   SHA1withDSA
    Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.5   PKCS12PBE
    Alg.Alias.Signature.SHA256/ECDSA    SHA256WITHECDSA
    Alg.Alias.Signature.SHA256/RSA  SHA256WITHRSA
    Alg.Alias.Signature.OID.1.2.840.113549.1.1.5    SHA1WITHRSA
    SecretKeyFactory.DES    com.android.org.bouncycastle.jcajce.provider.symmetric.DES$KeyFactory
    Signature.SHA1withDSA   com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$stdDSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHA-256AND128BITAES-CBC-BC PKCS12PBE
    Alg.Alias.AlgorithmParameterGenerator.1.3.14.3.2.27 DSA
    SecretKeyFactory.PBEWITHMD5ANDRC2   com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithMD5KeyFactory
    Alg.Alias.Signature.SHA512WithRSAEncryption SHA512WITHRSA
    Alg.Alias.SecretKeyFactory.PBEWITHSHA-256AND128BITAES-CBC-BC    PBEWITHSHA256AND128BITAES-CBC-BC
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND3-KEYTRIPLEDES-CBC   PKCS12PBE
    SecretKeyFactory.PBEWITHSHAAND128BITRC4 com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd128BitKeyFactory
    Provider.id className   com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
    KeyAgreement.ECDH   com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DH
    Alg.Alias.KeyGenerator.1.2.840.113549.2.11  HMACSHA512
    Alg.Alias.Cipher.PBEWITHSHA1AND3-KEYTRIPLEDES-CBC   PBEWITHSHAAND3-KEYTRIPLEDES-CBC
    AlgorithmParameters.DH  com.android.org.bouncycastle.jcajce.provider.asymmetric.dh.AlgorithmParametersSpi
    KeyGenerator.HMACSHA1   com.android.org.bouncycastle.jcajce.provider.digest.SHA1$KeyGenerator
    Alg.Alias.Signature.1.2.840.10045.4.3.3 SHA384WITHECDSA
    Alg.Alias.MessageDigest.SHA384  SHA-384
    Alg.Alias.KeyGenerator.1.3.6.1.5.5.8.1.1    HMACMD5
    KeyPairGenerator.RSA    com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi
    Alg.Alias.Signature.ECDSAWITHSHA1   ECDSA
    Alg.Alias.Cipher.PBEWITHSHA-256AND192BITAES-CBC-BC  PBEWITHSHA256AND192BITAES-CBC-BC
    KeyStore.PKCS12 com.android.org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi$BCPKCS12KeyStore
    Alg.Alias.KeyGenerator.HMAC-MD5 HMACMD5
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.5.10    PBEWITHSHA1ANDDES
    Alg.Alias.Mac.HMAC/SHA512   HMACSHA512
    Alg.Alias.Cipher.1.3.6.1.4.1.22554.1.2.1.2.1.2  PBEWITHSHA256AND128BITAES-CBC-BC
    SecretKeyFactory.PBEWITHSHA256AND192BITAES-CBC-BC   com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256And192BitAESBC
    Alg.Alias.Signature.SHA384WithECDSA SHA384WITHECDSA
    KeyGenerator.BLOWFISH   com.android.org.bouncycastle.jcajce.provider.symmetric.Blowfish$KeyGen
    Cipher.BLOWFISH com.android.org.bouncycastle.jcajce.provider.symmetric.Blowfish$ECB
    Alg.Alias.Mac.HMAC-SHA1 HMACSHA1
    Alg.Alias.SecretKeyFactory.PBEWITHSHA-1AND128BITAES-CBC-BC  PBEWITHSHAAND128BITAES-CBC-BC
    Alg.Alias.Signature.SHA384withRSAEncryption SHA384WITHRSA
    KeyFactory.DSA  com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpi
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND128BITRC4    PKCS12PBE
    Alg.Alias.AlgorithmParameters.PBEWITHSHAANDTWOFISH-CBC  PKCS12PBE
    Cipher.PBEWITHSHA256AND128BITAES-CBC-BC com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    SecretKeyFactory.PBEWITHSHAAND3-KEYTRIPLEDES-CBC    com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES3KeyFactory
    Cipher.AESWRAP  com.android.org.bouncycastle.jcajce.provider.symmetric.AES$Wrap
    Alg.Alias.SecretKeyFactory.PBKDF2WithHmacSHA1AndUTF8    PBKDF2WithHmacSHA1
    SecretKeyFactory.PBEWITHSHAAND128BITRC2-CBC com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd128BitKeyFactory
    Cipher.PBEWITHSHAAND256BITAES-CBC-BC    com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Alg.Alias.Signature.OID.1.2.840.10045.4.3.4 SHA512WITHECDSA
    Alg.Alias.Cipher.1.2.840.113549.1.9.16.3.6  DESEDEWRAP
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND256BITAES-CBC-BC PKCS12PBE
    Cipher.PBEWITHSHAAND3-KEYTRIPLEDES-CBC  com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES3Key
    Alg.Alias.Cipher.PBEWITHSHA1AND192BITAES-CBC-BC PBEWITHSHAAND192BITAES-CBC-BC
    Alg.Alias.Cipher.RSA//NOPADDING RSA
    CertStore.Collection    com.android.org.bouncycastle.jce.provider.CertStoreCollectionSpi
    Signature.SHA1WITHRSA   com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA1
    Alg.Alias.KeyGenerator.1.3.6.1.5.5.8.1.2    HMACSHA1
    MessageDigest.SHA-256   com.android.org.bouncycastle.jcajce.provider.digest.SHA256$Digest
    Alg.Alias.Signature.SHA1WithRSA SHA1WITHRSA
    Cipher.PBEWITHMD5AND128BITAES-CBC-OPENSSL   com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Alg.Alias.SecretKeyFactory.PBEWITHSHA1AND192BITAES-CBC-BC   PBEWITHSHAAND192BITAES-CBC-BC
    Alg.Alias.Cipher.1.3.6.1.4.1.22554.1.2.1.2.1.22 PBEWITHSHA256AND192BITAES-CBC-BC
    Alg.Alias.Cipher.2.16.840.1.101.3.4.42  AES
    KeyGenerator.DES    com.android.org.bouncycastle.jcajce.provider.symmetric.DES$KeyGenerator
    Alg.Alias.Signature.SHA1withRSA SHA1WITHRSA
    Alg.Alias.Signature.SHA384/RSA  SHA384WITHRSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHA-256AND192BITAES-CBC-BC PKCS12PBE
    KeyFactory.RSA  com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi
    SecretKeyFactory.DESEDE com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$KeyFactory
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND40BITRC2-CBC PKCS12PBE
    Alg.Alias.Cipher.1.2.840.113549.1.5.11  PBEWITHSHA1ANDRC2
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.5.3 PBEWITHMD5ANDDES
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND2-KEYTRIPLEDES-CBC   PKCS12PBE
    Alg.Alias.Signature.SHA384withECDSA SHA384WITHECDSA
    Alg.Alias.Signature.OID.1.2.840.10045.4.3.2 SHA256WITHECDSA
    Alg.Alias.Signature.SHA1WithRSAEncryption   SHA1WITHRSA
    Alg.Alias.AlgorithmParameters.PBEWithSHAAnd3KeyTripleDES    PKCS12PBE
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.5.12    PBKDF2WithHmacSHA1
    Alg.Alias.Cipher.PBEWITHSHA-1AND256BITAES-CBC-BC    PBEWITHSHAAND256BITAES-CBC-BC
    Alg.Alias.Signature.1.2.840.10045.4.3.4 SHA512WITHECDSA
    Alg.Alias.SecretKeyFactory.1.3.6.1.4.1.22554.1.1.2.1.42 PBEWITHSHAAND256BITAES-CBC-BC
    Alg.Alias.Cipher.PBEWITHSHA1AND128BITRC2-CBC    PBEWITHSHAAND128BITRC2-CBC
    Alg.Alias.Signature.1.2.840.10045.4.1   ECDSA
    Provider.id info    BouncyCastle Security Provider v1.49
    Cipher.PBEWITHMD5AND192BITAES-CBC-OPENSSL   com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Alg.Alias.Signature.SHA1withRSAEncryption   SHA1WITHRSA
    Alg.Alias.Cipher.RC4    ARC4
    Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.2  SHA-384
    Alg.Alias.KeyFactory.1.2.840.10040.4.1  DSA
    Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.22554.1.1.2.1.42  PKCS12PBE
    Alg.Alias.MessageDigest.SHA SHA-1
    SecretKeyFactory.PBEWITHSHAAND40BITRC2-CBC  com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd40BitKeyFactory
    Alg.Alias.Signature.SHA384/ECDSA    SHA384WITHECDSA
    Alg.Alias.KeyFactory.2.5.8.1.1  RSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHA1ANDRC2-CBC PKCS12PBE
    Alg.Alias.Cipher.PBEWITHSHA1AND40BITRC4 PBEWITHSHAAND40BITRC4
    Alg.Alias.SecretKeyFactory.PBEWITHSHA-1AND192BITAES-CBC-BC  PBEWITHSHAAND192BITAES-CBC-BC
    SecretKeyFactory.PBEWITHSHAANDTWOFISH-CBC   com.android.org.bouncycastle.jcajce.provider.symmetric.Twofish$PBEWithSHAKeyFactory
    Signature.SHA384WITHRSA com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA384
    Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.22554.1.2.1.2.1.42    PKCS12PBE
    Alg.Alias.Cipher.2.16.840.1.101.3.4.1.25    AESWRAP
    Alg.Alias.KeyPairGenerator.1.3.14.3.2.27    DSA
    Mac.PBEWITHHMACSHA1 com.android.org.bouncycastle.jcajce.provider.digest.SHA1$SHA1Mac
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.6  PBEWITHSHAAND40BITRC2-CBC
    Cipher.PBEWITHSHAANDTWOFISH-CBC com.android.org.bouncycastle.jcajce.provider.symmetric.Twofish$PBEWithSHA
    Cipher.DESEDE   com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$ECB
    Alg.Alias.SecretKeyFactory.TDEA DESEDE
    Alg.Alias.Signature.SHA256WithRSAEncryption SHA256WITHRSA
    Alg.Alias.Mac.1.3.6.1.5.5.8.1.2 HMACSHA1
    Alg.Alias.Signature.1.2.840.113549.1.1.4    MD5WITHRSA
    Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1.7 RSA
    Alg.Alias.SecretKeyFactory.1.2.840.113549.1.12.1.3  PBEWITHSHAAND3-KEYTRIPLEDES-CBC
    KeyGenerator.HMACMD5    com.android.org.bouncycastle.jcajce.provider.digest.MD5$KeyGenerator
    KeyFactory.EC   com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$EC
    Alg.Alias.SecretKeyFactory.PBEWITHSHA1AND256BITAES-CBC-BC   PBEWITHSHAAND256BITAES-CBC-BC
    Alg.Alias.Signature.OID.1.3.14.3.2.29   SHA1WITHRSA
    Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.22554.1.1.2.1.22  PKCS12PBE
    Alg.Alias.KeyPairGenerator.1.2.840.113549.1.1.1 RSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHA256AND256BITAES-CBC-BC  PKCS12PBE
    Cipher.DES  com.android.org.bouncycastle.jcajce.provider.symmetric.DES$ECB
    Alg.Alias.AlgorithmParameters.1.3.14.3.2.27 DSA
    KeyGenerator.HMACSHA256 com.android.org.bouncycastle.jcajce.provider.digest.SHA256$KeyGenerator
    Alg.Alias.Cipher.TDEA   DESEDE
    Alg.Alias.AlgorithmParameters.TDEA  DESEDE
    Mac.HMACMD5 com.android.org.bouncycastle.jcajce.provider.digest.MD5$HashMac
    Alg.Alias.SecretKeyFactory.1.3.6.1.4.1.22554.1.1.2.1.2  PBEWITHSHAAND128BITAES-CBC-BC
    Signature.NONEwithECDSA com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSAnone
    Mac.HMACSHA512  com.android.org.bouncycastle.jcajce.provider.digest.SHA512$HashMac
    Alg.Alias.KeyFactory.1.2.840.10045.2.1  EC
    Alg.Alias.Cipher.1.2.840.113549.1.12.1.1    PBEWITHSHAAND128BITRC4
    Alg.Alias.AlgorithmParameters.PBEWITHSHA-256AND256BITAES-CBC-BC PKCS12PBE
    Alg.Alias.Cipher.RSA//RAW   RSA
    Alg.Alias.AlgorithmParameters.1.3.14.3.2.7  DES
    Alg.Alias.Mac.1.2.840.113549.2.11   HMACSHA512
    Alg.Alias.AlgorithmParameters.1.2.840.113549.1.12.1.2   PKCS12PBE
    SecretKeyFactory.PBEWITHSHAAND128BITAES-CBC-BC  com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHAAnd128BitAESBC
    Alg.Alias.Mac.1.3.6.1.5.5.8.1.1 HMACMD5
    SecretKeyFactory.PBKDF2WithHmacSHA1And8BIT  com.android.org.bouncycastle.jcajce.provider.digest.SHA1$PBKDF2WithHmacSHA18BIT
    AlgorithmParameters.DESEDE  com.android.org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters
    Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.42 AES
    Cipher.PBEWITHMD5ANDDES com.android.org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD5
    Alg.Alias.Cipher.ARCFOUR    ARC4
    Signature.NONEWITHDSA   com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$noneDSA
    Alg.Alias.Signature.SHA1WithDSA SHA1withDSA
    Alg.Alias.Cipher.PBEWITHSHA-1AND192BITAES-CBC-BC    PBEWITHSHAAND192BITAES-CBC-BC
    Mac.PBEWITHHMACSHA  com.android.org.bouncycastle.jcajce.provider.digest.SHA1$SHA1Mac
    MessageDigest.SHA-512   com.android.org.bouncycastle.jcajce.provider.digest.SHA512$Digest
    Alg.Alias.Signature.SHA512withRSA   SHA512WITHRSA
    Alg.Alias.Signature.RAWDSA  NONEWITHDSA
    Alg.Alias.Cipher.PBEWITHSHA-1AND128BITAES-CBC-BC    PBEWITHSHAAND128BITAES-CBC-BC
    Alg.Alias.AlgorithmParameters.PBEWITHSHA1AND192BITAES-CBC-BC    PKCS12PBE
    Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.22554.1.1.2.1.2   PKCS12PBE
    AlgorithmParameters.BLOWFISH    com.android.org.bouncycastle.jcajce.provider.symmetric.Blowfish$AlgParams
    Alg.Alias.KeyPairGenerator.1.2.840.10040.4.1    DSA
    Alg.Alias.KeyGenerator.HMAC/SHA256  HMACSHA256
    Alg.Alias.Mac.1.2.840.113549.2.9    HMACSHA256
    Alg.Alias.Cipher.1.3.6.1.4.1.22554.1.2.1.2.1.42 PBEWITHSHA256AND256BITAES-CBC-BC
    Alg.Alias.Mac.HMAC/SHA256   HMACSHA256
    KeyStore.BKS    com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND3-KEYTRIPLEDES   PKCS12PBE
    Alg.Alias.Signature.DSAWithSHA1 SHA1withDSA
    Alg.Alias.SecretKeyFactory.PBEWITHHMACSHA   PBEWITHHMACSHA1
    Alg.Alias.SecretKeyFactory.1.3.6.1.4.1.22554.1.2.1.2.1.2    PBEWITHSHA256AND128BITAES-CBC-BC
    Alg.Alias.KeyGenerator.HMAC-SHA256  HMACSHA256
    Alg.Alias.Signature.MD5WithRSA  MD5WITHRSA
    Alg.Alias.Signature.SHA512/RSA  SHA512WITHRSA
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND40BITRC4 PKCS12PBE
    Alg.Alias.Signature.OID.1.2.840.10045.4.3.3 SHA384WITHECDSA
    SecretKeyFactory.PBEWITHMD5AND192BITAES-CBC-OPENSSL com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithMD5And192BitAESCBCOpenSSL
    Alg.Alias.Cipher.1.3.6.1.4.1.22554.1.1.2.1.22   PBEWITHSHAAND192BITAES-CBC-BC
    Alg.Alias.Mac.1.2.840.113549.2.10   HMACSHA384
    SecretKeyFactory.PBEWITHSHAAND256BITAES-CBC-BC  com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHAAnd256BitAESBC
    Alg.Alias.AlgorithmParameters.PBEWITHSHAAND192BITAES-CBC-BC PKCS12PBE
    SecretKeyFactory.PBEWITHSHA1ANDRC2  com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHA1KeyFactory
    Mac.HMACSHA256  com.android.org.bouncycastle.jcajce.provider.digest.SHA256$HashMac
    Alg.Alias.Cipher.PBEWITHSHA-256AND256BITAES-CBC-BC  PBEWITHSHA256AND256BITAES-CBC-BC
    AlgorithmParameters.PKCS12PBE   com.android.org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$AlgParams
    Alg.Alias.Cipher.PBEWITHSHA1AND256BITAES-CBC-BC PBEWITHSHAAND256BITAES-CBC-BC
    Alg.Alias.MessageDigest.1.2.840.113549.2.5  MD5
    Alg.Alias.Mac.2.16.840.1.101.3.4.2.1    HMACSHA256
    Alg.Alias.KeyAgreement.DIFFIEHELLMAN    DH
    Alg.Alias.Signature.ECDSAwithSHA1   ECDSA
    Alg.Alias.CertificateFactory.X509   X.509
    Cipher.ARC4 com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$Base
    Alg.Alias.Cipher.RSA/RAW    RSA
    Alg.Alias.Signature.MD5withRSA  MD5WITHRSA
    Alg.Alias.Cipher.1.2.840.113549.1.5.10  PBEWITHSHA1ANDDES
    Alg.Alias.KeyGenerator.HMAC/SHA384  HMACSHA384
    Alg.Alias.KeyGenerator.HMAC-SHA1    HMACSHA1
    Alg.Alias.AlgorithmParameters.PBEWITHSHAANDTWOFISH  PKCS12PBE
    Alg.Alias.Cipher.1.2.840.113549.1.12.1.5    PBEWITHSHAAND128BITRC2-CBC
    Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.22   AES
    Alg.Alias.Cipher.1.2.840.113549.1.5.6   PBEWITHMD5ANDRC2
    Alg.Alias.Signature.SHA1WITHECDSA   ECDSA
    Cipher.PBEWITHSHA256AND192BITAES-CBC-BC com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Alg.Alias.Signature.OID.1.2.840.113549.1.1.4    MD5WITHRSA
    Cipher.PBEWITHMD5AND256BITAES-CBC-OPENSSL   com.android.org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC
    Alg.Alias.Signature.1.3.14.3.2.29   SHA1WITHRSA
    Alg.Alias.Signature.1.3.14.3.2.26with1.2.840.10040.4.3  SHA1withDSA
    Alg.Alias.Cipher.PBEWITHSHA1AND128BITRC4    PBEWITHSHAAND128BITRC4
    AlgorithmParameters.DES com.android.org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters
    Signature.ECDSA com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA
    Alg.Alias.KeyFactory.1.2.840.113549.1.1.1   RSA
    Alg.Alias.AlgorithmParameters.1.3.6.1.4.1.22554.1.2.1.2.1.2 PKCS12PBE
    Alg.Alias.MessageDigest.SHA1    SHA-1
    Alg.Alias.Cipher.1.2.840.113549.3.4 ARC4
    Alg.Alias.Signature.SHA1/DSA    SHA1withDSA
    SecureRandom.SHA1PRNG ImplementedIn Software
    MessageDigest.SHA-1 org.apache.harmony.security.provider.crypto.SHA1_MessageDigestImpl
    Alg.Alias.Signature.SHA/DSA SHA1withDSA
    KeyFactory.DSA ImplementedIn    Software
    Provider.id className   org.apache.harmony.security.provider.crypto.CryptoProvider
    SecureRandom.SHA1PRNG   org.apache.harmony.security.provider.crypto.SHA1PRNG_SecureRandomImpl
    Alg.Alias.Signature.DSS SHA1withDSA
    Signature.SHA1withDSA ImplementedIn Software
    Alg.Alias.Signature.1.3.14.3.2.27   SHA1withDSA
    Alg.Alias.KeyFactory.1.3.14.3.2.12  DSA
    Provider.id version 1.0
    Provider.id info    HARMONY (SHA1 digest; SecureRandom; SHA1withDSA signature)
    Alg.Alias.Signature.SHA-1/DSA   SHA1withDSA
    Alg.Alias.Signature.OID.1.2.840.10040.4.3   SHA1withDSA
    Alg.Alias.Signature.1.2.840.10040.4.3   SHA1withDSA
    Alg.Alias.KeyFactory.1.2.840.10040.4.1  DSA
    Alg.Alias.Signature.SHAwithDSA  SHA1withDSA
    Alg.Alias.MessageDigest.SHA SHA-1
    Alg.Alias.Signature.DSAwithSHA1 SHA1withDSA
    Signature.SHA1withDSA   org.apache.harmony.security.provider.crypto.SHA1withDSA_SignatureImpl
    Alg.Alias.Signature.DSA SHA1withDSA
    Alg.Alias.Signature.1.3.14.3.2.13   SHA1withDSA
    Provider.id name    Crypto
    MessageDigest.SHA-1 ImplementedIn   Software
    Alg.Alias.MessageDigest.SHA1    SHA-1
    KeyFactory.DSA  org.apache.harmony.security.provider.crypto.DSAKeyFactoryImpl
    Provider.id info    Harmony JSSE Provider
    KeyManagerFactory.PKIX  com.android.org.conscrypt.KeyManagerFactoryImpl
    TrustManagerFactory.PKIX    com.android.org.conscrypt.TrustManagerFactoryImpl
    SSLContext.SSL  com.android.org.conscrypt.SSLContextImpl
    KeyStore.AndroidCAStore com.android.org.conscrypt.TrustedCertificateKeyStoreSpi
    Provider.id name    HarmonyJSSE
    SSLContext.TLS  com.android.org.conscrypt.SSLContextImpl
    Alg.Alias.TrustManagerFactory.X509  PKIX
    SSLContext.SSLv3    com.android.org.conscrypt.SSLContextImpl
    Provider.id className   com.android.org.conscrypt.JSSEProvider
    Alg.Alias.KeyManagerFactory.X509    PKIX
    SSLContext.TLSv1    com.android.org.conscrypt.SSLContextImpl
    Provider.id version 1.0
    Provider.id info    Android KeyStore security provider
    KeyPairGenerator.RSA    android.security.AndroidKeyPairGenerator
    Provider.id name    AndroidKeyStore
    KeyStore.AndroidKeyStore    android.security.AndroidKeyStore
    Provider.id className   android.security.AndroidKeyStoreProvider
    Provider.id version 1.0
    
  5. User_Kapil

    Any update on this? In the meantime I tried to use Spongy Castle library also but that was of no help either.

  6. Connect2id OSS

    Hi!

    The dump shows no support for AES/GCM/NoPadding.

    You should be seeing something like this:

    Cipher.AES_128/GCM/NoPadding
    

    Could you do the same dump on a device where the GCM cipher works?

  7. Connect2id OSS

    This is a dump of the GCM algs of BouncyCastle on a desktop machine:

            Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.6    GCM
            Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.46   GCM
            Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.26   GCM
            AlgorithmParameterGenerator.GCM org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGenGCM
            Cipher.GCM      org.bouncycastle.jcajce.provider.symmetric.AES$GCM
            Alg.Alias.Cipher.2.16.840.1.101.3.4.1.46        GCM
            Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.1.46   GCM
            Alg.Alias.Cipher.2.16.840.1.101.3.4.1.26        GCM
            Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.6     GCM
            Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.1.26   GCM
            Alg.Alias.Cipher.2.16.840.1.101.3.4.1.6 GCM
            Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.46    GCM
            Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.26    GCM
            Alg.Alias.AlgorithmParameterGenerator.2.16.840.1.101.3.4.1.6    GCM
            AlgorithmParameters.GCM org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamsGCM
    

    Again you can see we have clear indication that GCM is supported here.

    There must be some reason why GCM is not included or supported on the Android device that you have. Perhaps the underlying hardware? We are not Android pros, so to find out more I suggest you ask for assistance in a Android security forum.

    Or, you could instead switch to the supported

    Cipher.AES/CBC/PKCS5Padding com.android.org.conscrypt.OpenSSLCipher$AES$CBC$PKCS5Padding
    

    which as JOSE enc is A128CBC-HS256.

  8. Karthik Kalahasthi

    Dump of BC GCM on Android Device ( Lollipop , 5.1.1 )

    Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.46   GCM
        Alg.Alias.Cipher.2.16.840.1.101.3.4.1.6 GCM
        AlgorithmParameters.GCM com.android.org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamsGCM
        Cipher.GCM  com.android.org.bouncycastle.jcajce.provider.symmetric.AES$GCM
        Alg.Alias.Cipher.2.16.840.1.101.3.4.1.46    GCM
        Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.6    GCM
        Alg.Alias.Cipher.2.16.840.1.101.3.4.1.26    GCM
        Alg.Alias.AlgorithmParameters.2.16.840.1.101.3.4.1.26   GCM
    

    I do see GCM , what version of Android are you working with.

  9. Log in to comment