diff options
| author | petrs | 2017-06-16 17:24:48 +0200 |
|---|---|---|
| committer | petrs | 2017-06-16 17:24:48 +0200 |
| commit | 7ab02af142427a996cedf7540ffa3345612fe1bc (patch) | |
| tree | 058f525742c9af67506bee5a4108c06369c1f3ea /src/cz/crcs/ectester/applet/ECKeyTester.java | |
| parent | 359b4bb5be1a822e389e54b9697504f4f0b43d34 (diff) | |
| download | ECTester-7ab02af142427a996cedf7540ffa3345612fe1bc.tar.gz ECTester-7ab02af142427a996cedf7540ffa3345612fe1bc.tar.zst ECTester-7ab02af142427a996cedf7540ffa3345612fe1bc.zip | |
Diffstat (limited to 'src/cz/crcs/ectester/applet/ECKeyTester.java')
| -rw-r--r-- | src/cz/crcs/ectester/applet/ECKeyTester.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/cz/crcs/ectester/applet/ECKeyTester.java b/src/cz/crcs/ectester/applet/ECKeyTester.java index b18073f..0b3c1e0 100644 --- a/src/cz/crcs/ectester/applet/ECKeyTester.java +++ b/src/cz/crcs/ectester/applet/ECKeyTester.java @@ -3,6 +3,7 @@ package cz.crcs.ectester.applet; import javacard.framework.CardRuntimeException; import javacard.framework.ISO7816; +import javacard.framework.ISOException; import javacard.security.*; /** @@ -19,20 +20,20 @@ public class ECKeyTester { private short sw = ISO7816.SW_NO_ERROR; - public short allocateECDH() { + public short allocateECDH(byte algorithm) { sw = ISO7816.SW_NO_ERROR; try { - ecdhKeyAgreement = KeyAgreement.getInstance(KeyAgreement.ALG_EC_SVDP_DH, false); + ecdhKeyAgreement = KeyAgreement.getInstance(algorithm, false); } catch (CardRuntimeException ce) { sw = ce.getReason(); } return sw; } - public short allocateECDHC() { + public short allocateECDHC(byte algorithm) { sw = ISO7816.SW_NO_ERROR; try { - ecdhcKeyAgreement = KeyAgreement.getInstance(KeyAgreement.ALG_EC_SVDP_DHC, false); + ecdhcKeyAgreement = KeyAgreement.getInstance(algorithm, false); } catch (CardRuntimeException ce) { sw = ce.getReason(); } @@ -55,9 +56,11 @@ public class ECKeyTester { sw = AppletUtil.kaCheck(ka); sw = AppletUtil.keypairCheck(privatePair); sw = AppletUtil.keypairCheck(publicPair); - - ka.init(privatePair.getPrivate()); short pubkeyLength = ((ECPublicKey) publicPair.getPublic()).getW(pubkeyBuffer, pubkeyOffset); + // reached ok + ka.init(privatePair.getPrivate()); // throws UNITIALIZED KEY when ALG_EC_SVDP_DHC_PLAIN is used + //ISOException.throwIt((short) 0x666); + pubkeyLength = EC_Consts.corruptParameter(corruption, pubkeyBuffer, pubkeyOffset, pubkeyLength); length = ka.generateSecret(pubkeyBuffer, pubkeyOffset, pubkeyLength, outputBuffer, outputOffset); } catch (CardRuntimeException ce) { |
