java - Generating ECDSA public key at host side from W parameter -
i want send public key of private-public key pair (ecdsa) generated in applet host application/terminal.
in rsa send modulus , exponent , generate public key @ host side.
in ecdsa read link can same if take w parameter bytes outside card click here: stackoverflow answer: encode public key on java
i have w bytes card now. can suggest how create public key this?
i wrote method convert ec public key java.security.interfaces.ecpublickey key object. use bouncy castle provider (bcprov-ext-jdk16-1.46.jar). can download latest version here.
/** * method converts ec public key (ecpublickey#getw()) ecpublickey * @param cardpublickey w * @param curvename (for example "p-224") * @return java.security.interfaces.ecpublickey */ public ecpublickey ucpublickeytopublickey(byte[] cardpublickey, string curvename) { //for example curvename = "p-224"; java.security.interfaces.ecpublickey ecpublickey = null; // java.security.interfaces.ecpublickey java.security.keyfactory kf = null; org.bouncycastle.jce.spec.ecnamedcurveparameterspec ecnamedcurveparameterspec = ecnamedcurvetable.getparameterspec(curvename); org.bouncycastle.math.ec.eccurve curve = ecnamedcurveparameterspec.getcurve(); java.security.spec.ellipticcurve ellipticcurve = ec5util.convertcurve(curve, ecnamedcurveparameterspec.getseed()); java.security.spec.ecpoint ecpoint = ecpointutil.decodepoint(ellipticcurve, cardpublickey); java.security.spec.ecparameterspec ecparameterspec = ec5util.convertspec(ellipticcurve, ecnamedcurveparameterspec); java.security.spec.ecpublickeyspec publickeyspec = new java.security.spec.ecpublickeyspec(ecpoint, ecparameterspec); try { kf = java.security.keyfactory.getinstance("ec", "bc"); } catch (exception e) { system.out.println("caught exception kf : " + e.tostring()); } try { ecpublickey = (ecpublickey) kf.generatepublic(publickeyspec); } catch (exception e) { system.out.println("caught exception public key: " + e.tostring()); } return ecpublickey; }
Comments
Post a Comment