java.security.NoSuchAlgorithmException: KeyGenerator AES implementation not found
at org.apache.harmony.security.fortress.Engine.notFound(Engine.java)
at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java)
at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java)
I've tried adding some packages to the robo.xml but I can't find where is the one that has AES:
<forceLinkClasses>
<pattern>org.apache.harmony.xnet.provider.jsse.*</pattern>
<pattern>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</pattern>
<pattern>com.android.org.bouncycastle.jce.provider.JCERSACipher</pattern>
<pattern>org.apache.harmony.security.*</pattern>
<pattern>org.apache.harmony.security.fortress.*</pattern>
<pattern>org.apache.harmony.security.fortress.Engine*</pattern>
</forceLinkClasses>
Here is the relevant code:
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
try{
sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
}catch(NoSuchProviderException ex){
sr = SecureRandom.getInstance("SHA1PRNG");
}
--
You received this message because you are subscribed to the Google Groups "RoboVM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robovm+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
kgen.getClass().getName(): javax.crypto.KeyGenerator
kgen.getProvider().getInfo(): BouncyCastle Security Provider v1.46
kgen.getProvider().getName(): BC
kgen.getProvider().getClass().getName(): com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
sr.getProvider().getClass().getCanonicalName(): org.apache.harmony.security.provider.crypto.CryptoProvider
Code:
KeyGenerator kgen = KeyGenerator.getInstance("AES");
System.out.println(kgen.getClass().getName());
System.out.println(kgen.getProvider().getInfo());
System.out.println(kgen.getProvider().getName());
System.out.println(kgen.getProvider().getClass().getName());
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
try{
sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
}catch (NoSuchProviderException ex){
sr = SecureRandom.getInstance("SHA1PRNG");
}
System.out.println(sr.getProvider().getClass().getCanonicalName());
So I put the patterns:
<forceLinkClasses>
<pattern>javax.crypto.KeyGenerator</pattern>
<pattern>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</pattern>
<pattern>org.apache.harmony.security.provider.crypto.CryptoProvider</pattern>
</forceLinkClasses>
But still don't work and the same error as before.