summaryrefslogtreecommitdiff
path: root/src/applets/SimpleECCApplet.java
diff options
context:
space:
mode:
authorJ08nY2016-11-28 23:21:25 +0100
committerJ08nY2016-11-28 23:21:25 +0100
commit022f37b399583053fc256b9fcab397f828309ebf (patch)
tree75f7c332b3f44c3a874ad393f31c0c82fde084f4 /src/applets/SimpleECCApplet.java
parentf4b67923063ca35ae1405d701b461bfda0c10515 (diff)
downloadECTester-022f37b399583053fc256b9fcab397f828309ebf.tar.gz
ECTester-022f37b399583053fc256b9fcab397f828309ebf.tar.zst
ECTester-022f37b399583053fc256b9fcab397f828309ebf.zip
fixed small pubkey order test, this times out on some cards(SCARD_E_NOT_TRANSACTED)
yet some cards run fine and report illegal value.
Diffstat (limited to 'src/applets/SimpleECCApplet.java')
-rw-r--r--src/applets/SimpleECCApplet.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/applets/SimpleECCApplet.java b/src/applets/SimpleECCApplet.java
index 8cc4237..8043153 100644
--- a/src/applets/SimpleECCApplet.java
+++ b/src/applets/SimpleECCApplet.java
@@ -308,9 +308,9 @@ public class SimpleECCApplet extends Applet {
sw = SW_SKIPPED;
if ((testFlags & FLAG_ECTEST_ECDH_AGREEMENT_VALID_POINT) != (short) 0) {
sw = ecKeyGenerator.generatePair();
- ecPubKey = ecKeyGenerator.getPublicKey();
- ecPrivKey = ecKeyGenerator.getPrivateKey();
if (sw == ISO7816.SW_NO_ERROR) {
+ ecPubKey = ecKeyGenerator.getPublicKey();
+ ecPrivKey = ecKeyGenerator.getPrivateKey();
sw = ecKeyTester.testECDH_validPoint(ecPrivKey, ecPubKey, m_ramArray, (short) 0, m_ramArray2, (short) 0);
}
}
@@ -325,9 +325,9 @@ public class SimpleECCApplet extends Applet {
sw = SW_SKIPPED;
if ((testFlags & FLAG_ECTEST_ECDH_AGREEMENT_INVALID_POINT) != (short) 0) {
sw = ecKeyGenerator.generatePair();
- ecPubKey = ecKeyGenerator.getPublicKey();
- ecPrivKey = ecKeyGenerator.getPrivateKey();
if (sw == ISO7816.SW_NO_ERROR) {
+ ecPubKey = ecKeyGenerator.getPublicKey();
+ ecPrivKey = ecKeyGenerator.getPrivateKey();
sw = ecKeyTester.testECDH_invalidPoint(ecPrivKey, ecPubKey, m_ramArray, (short) 0, m_ramArray2, (short) 1);
}
}
@@ -342,9 +342,9 @@ public class SimpleECCApplet extends Applet {
sw = SW_SKIPPED;
if ((testFlags & FLAG_ECTEST_ECDSA_SIGNATURE) != (short) 0) {
sw = ecKeyGenerator.generatePair();
- ecPubKey = ecKeyGenerator.getPublicKey();
- ecPrivKey = ecKeyGenerator.getPrivateKey();
if (sw == ISO7816.SW_NO_ERROR) {
+ ecPubKey = ecKeyGenerator.getPublicKey();
+ ecPrivKey = ecKeyGenerator.getPrivateKey();
sw = ecKeyTester.testECDSA(ecPrivKey, ecPubKey, m_ramArray2, (short) 0, (short) m_ramArray2.length, m_ramArray, (short) 0);
}
}
@@ -387,6 +387,9 @@ public class SimpleECCApplet extends Applet {
bufferOffset++;
sw = SW_SKIPPED;
if ((testFlags & FLAG_ECTEST_ECDH_AGREEMENT_SMALL_DEGREE_POINT) != (short) 0) {
+ //TODO: this needs refactor, just quickly to see if it works
+ short pubLength = EC_Consts.getCurveParameter(EC_Consts.getAnomalousCurve(keyClass,keyLen), EC_Consts.PARAMETER_W, m_ramArray, (short) 0);
+ ecKeyGenerator.setParameter(ECKeyGenerator.KEY_PUBLIC, EC_Consts.PARAMETER_W, m_ramArray, (short)0, pubLength);
ecPubKey = ecKeyGenerator.getPublicKey();
ecPrivKey = ecKeyGenerator.getPrivateKey();
sw = ecKeyTester.testECDH_validPoint(ecPrivKey, ecPubKey, m_ramArray, (short) 0, m_ramArray2, (short) 1);