android - ECC key generation error -



android - ECC key generation error -

hi trying implement code provided anindonesian in flexiprovider - how encrypt/de formatted keypair on android.

i getting nullpointerexception kpg.initialize(brainpoolp160r1);

i new android , cryptography help appreciated. here have created page generates ecc key , encrypts/decrypts info , displays in text box.

import android.os.bundle; import android.support.v7.app.actionbaractivity; import android.util.base64; import android.view.menu; import android.view.menuitem; import android.widget.textview; import org.bouncycastle.jce.provider.bouncycastleprovider; import java.security.invalidalgorithmparameterexception; import java.security.invalidkeyexception; import java.security.keypair; import java.security.keypairgenerator; import java.security.nosuchalgorithmexception; import java.security.nosuchproviderexception; import java.security.privatekey; import java.security.publickey; import java.security.security; import java.security.spec.ecgenparameterspec; import javax.crypto.badpaddingexception; import javax.crypto.cipher; import javax.crypto.illegalblocksizeexception; import javax.crypto.nosuchpaddingexception; public class ecc_page extends actionbaractivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_ecc_page); security.addprovider(new bouncycastleprovider()); keypairgenerator kpg = null; seek { kpg = keypairgenerator.getinstance("ecies", "bc"); } grab (nosuchalgorithmexception | nosuchproviderexception e) { e.printstacktrace(); } ecgenparameterspec brainpoolp160r1 = new ecgenparameterspec("brainpoolp160r1"); seek { assert kpg != null; kpg.initialize(brainpoolp160r1); //i getting error here } grab (invalidalgorithmparameterexception ignored) { } keypair kp = kpg.generatekeypair(); publickey publickey = kp.getpublic(); privatekey privatekey = kp.getprivate(); byte[] publickey = publickey.getencoded(); byte[] privatekey = privatekey.getencoded(); cipher c = null; seek { c = cipher.getinstance("ecieswithaes/dhaes/nopadding", "bc"); } grab (nosuchalgorithmexception | nosuchpaddingexception | nosuchproviderexception e) { e.printstacktrace(); } seek { c.init(cipher.encrypt_mode, publickey); } grab (invalidkeyexception e) { e.printstacktrace(); } byte[] cipher = new byte[0]; seek { cipher = c.dofinal("this message".getbytes()); } grab (illegalblocksizeexception | badpaddingexception e) { e.printstacktrace(); } textview eccencoded = (textview) findviewbyid(r.id.eccencoded); eccencoded.settext("[encoded]:\n" + base64.encodetostring(cipher, base64.default) + "\n"); seek { c.init(cipher.decrypt_mode, privatekey); } grab (invalidkeyexception e) { e.printstacktrace(); } byte[] plaintext = new byte[0]; seek { plaintext = c.dofinal(cipher); } grab (illegalblocksizeexception | badpaddingexception e) { e.printstacktrace(); } textview eccdecoded = (textview) findviewbyid(r.id.eccdecoded); eccdecoded.settext("[decoded]:\n" + base64.encodetostring(plaintext, base64.default) + "\n"); } }

i have inserted apacheds-all-1.5.5.jar in libs folder..

the error java.security.nosuchalgorithmexception: keypairgenerator ecies implementation not found caused by: java.lang.nullpointerexception @ com.example.vinay.myapplication.ecc_page.oncreate(ecc_page.java:47)

also please point out errors in code if possible... jar file insert suggested android studio..

the flexiprovider not bouncy castle ("bc").

try:

kpg = keypairgenerator.getinstance("ecies");

or:

kpg = keypairgenerator.getinstance("ecies", "flexiec");

for specific provider selection.

note elliptic curve key pair generation identicial ecdh (key agreement), ecdsa (digital signature generation) , ecies (hybrid encryption). try:

kpg = keypairgenerator.getinstance("ec");

or:

kpg = keypairgenerator.getinstance("ec", "flexiec");

adding flexi providers instead of bouncy castle provider may help:

security.addprovider(new bouncycastleprovider());

is incorrect.

android cryptography bouncycastle public-key-encryption

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -