Ho did you make out on this? On Friday, March 6, 2015 at 9:16:42 AM UTC-5, [email protected] wrote: > > I posted the same question on StackOverflow but it might be Cryptopp > specific issue:Enter code here. > > http://stackoverflow.com/questions/28900187/android5-0-with-artandroid-runtime-segfaults-on-cryptos-rsapublickey-load > > > We have implemented a small wrapper for Cryptopp to exchange keys between > iOS and Android(JNI). Shared code works on iOS and pre-ART android devices. > Supposedly ART and its garbage collector is a lot stricter now. > > It might be important to point out that set private key function succeeds > on both Dalvik and ART. > > > Code: > --> setting public key : > > jboolean *isCopy; > //get bytes from jbytearray > jbyte* ba = (jbyte *)env->GetByteArrayElements( byteArray, isCopy); > > //load bytearray to crypto bytequeue > ByteQueue queue2; > > queue2.Put2((byte*)ba, 1000, 0, true); > > //build public key > AutoSeededRandomPool rnd; > RSA::PublicKey publicKey; > publicKey.Load(*queue2); //<-------- CRASH > > > --> setting private key > > jboolean *isCopy; > jbyte* ba = (jbyte *)env->GetByteArrayElements( byteArray, isCopy); > > //load bytearray to bytequeue > ByteQueue queue2; > queue2.Put2((byte*)ba, 3072, 0, true); > > //fill up the key > RSA::PrivateKey privateKey; > privateKey.Load(queue2); > > > Stack trace: > > > backtrace: > #00 pc 00027e6c <project_name>/lib/arm/libstlport_shared.so > #01 pc 00027e79 <project_name>/lib/arm/libstlport_shared.so > #02 pc 00027efb <project_name>/lib/arm/libstlport_shared.so > (std::terminate()+6) > #03 pc 000273d3 <project_name>/lib/arm/libstlport_shared.so > #04 pc 000268c9 <project_name>/lib/arm/libstlport_shared.so > #05 pc 0002698b <project_name>/lib/arm/libstlport_shared.so > (__cxa_throw+34) > #06 pc 001b3ce4 <project_name>/lib/arm/libcryptopp.so > (CryptoPP::BERDecodeError()+128) > #07 pc 001b1598 <project_name>/lib/arm/libcryptopp.so > (CryptoPP::BERGeneralDecoder::Init(unsigned char)+56) > #08 pc 001b1638 <project_name>/lib/arm/libcryptopp.so > (CryptoPP::BERGeneralDecoder::BERGeneralDecoder(CryptoPP::BufferedTransformation&, > > unsigned char)+104) > #09 pc 0027697c <project_name>/lib/arm/libcryptopp.so > (CryptoPP::Integer::BERDecode(CryptoPP::BufferedTransformation&)+20) > #10 pc 002aec7c <project_name>/lib/arm/libcryptopp.so > (CryptoPP::RSAFunction::BERDecodePublicKey(CryptoPP::BufferedTransformation&, > bool, unsigned int)+64) > #11 pc 001b20e0 <project_name>/lib/arm/libcryptopp.so > (CryptoPP::X509PublicKey::BERDecode(CryptoPP::BufferedTransformation&)+264) > #12 pc 00014a0b <project_name>/lib/arm/libsecurity.so > (CryptoPP::ASN1CryptoMaterial<CryptoPP::PublicKey>::Load(CryptoPP::BufferedTransformation&)+6) > > > Might be worth mentioning that new (mostly) Google devices (Nexus 4,5,7) > use ART by default now. > > Please advice! >
-- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
