aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/applet/ECKeyTester.java
diff options
context:
space:
mode:
authorJ08nY2017-05-04 20:48:43 +0200
committerJ08nY2017-05-04 20:48:43 +0200
commit8884b0f8d55fd9cb89597ddce6f74a5e9b538f7b (patch)
treeec48fa86d60f12d52bdb5b218b35e57b3a659643 /src/cz/crcs/ectester/applet/ECKeyTester.java
parentade2dffcd7723f4414e681cd80a374c6fe8001ef (diff)
downloadECTester-8884b0f8d55fd9cb89597ddce6f74a5e9b538f7b.tar.gz
ECTester-8884b0f8d55fd9cb89597ddce6f74a5e9b538f7b.tar.zst
ECTester-8884b0f8d55fd9cb89597ddce6f74a5e9b538f7b.zip
Added support for extended APDUs, fixed problems with large cmds
- Switched ECTesterApplet to Javacard 2.2.2 which supports Extended length APDUs (necessary for some Set commands when a large external curve is sent to the applet) - The incoming APDU is now copied over to a sufficiently large buffer before being processed - Simplified instruction processing logic - Renamed ECUtil to AppletUtil - Fixed padding error in nist/P-521
Diffstat (limited to 'src/cz/crcs/ectester/applet/ECKeyTester.java')
-rw-r--r--src/cz/crcs/ectester/applet/ECKeyTester.java11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/cz/crcs/ectester/applet/ECKeyTester.java b/src/cz/crcs/ectester/applet/ECKeyTester.java
index 1d113ae..7664c72 100644
--- a/src/cz/crcs/ectester/applet/ECKeyTester.java
+++ b/src/cz/crcs/ectester/applet/ECKeyTester.java
@@ -3,7 +3,6 @@ package cz.crcs.ectester.applet;
import javacard.framework.CardRuntimeException;
import javacard.framework.ISO7816;
-import javacard.framework.Util;
import javacard.security.*;
/**
@@ -53,9 +52,9 @@ public class ECKeyTester {
private short testKA(KeyAgreement ka, KeyPair privatePair, KeyPair publicPair, byte[] pubkeyBuffer, short pubkeyOffset, byte[] outputBuffer, short outputOffset, short corruption) {
short length = 0;
try {
- sw = ECUtil.kaCheck(ka);
- sw = ECUtil.keypairCheck(privatePair);
- sw = ECUtil.keypairCheck(publicPair);
+ sw = AppletUtil.kaCheck(ka);
+ sw = AppletUtil.keypairCheck(privatePair);
+ sw = AppletUtil.keypairCheck(publicPair);
ka.init(privatePair.getPrivate());
short pubkeyLength = ((ECPublicKey) publicPair.getPublic()).getW(pubkeyBuffer, pubkeyOffset);
@@ -123,7 +122,7 @@ public class ECKeyTester {
if (sw != ISO7816.SW_NO_ERROR) {
return length;
}
- if (Util.arrayCompare(outputBuffer, outputOffset, outputBuffer, (short) (outputOffset + ecdhLength), ecdhLength) != 0) {
+ if (javacard.framework.Util.arrayCompare(outputBuffer, outputOffset, outputBuffer, (short) (outputOffset + ecdhLength), ecdhLength) != 0) {
sw = ECTesterApplet.SW_DH_DHC_MISMATCH;
}
return length;
@@ -164,7 +163,7 @@ public class ECKeyTester {
public short testECDSA(ECPrivateKey signKey, ECPublicKey verifyKey, byte[] inputBuffer, short inputOffset, short inputLength, byte[] sigBuffer, short sigOffset) {
short length = 0;
try {
- sw = ECUtil.signCheck(ecdsaSignature);
+ sw = AppletUtil.signCheck(ecdsaSignature);
ecdsaSignature.init(signKey, Signature.MODE_SIGN);
length = ecdsaSignature.sign(inputBuffer, inputOffset, inputLength, sigBuffer, sigOffset);