diff options
| author | J08nY | 2017-03-24 17:11:44 +0100 |
|---|---|---|
| committer | J08nY | 2017-03-24 17:11:44 +0100 |
| commit | a50b554fbc577df6873705738b379fa15980d2b7 (patch) | |
| tree | 68f5fcaa4eec1ceabcc40d5a1fc63eecb052a419 /src/cz/crcs/ectester/applet/EC_Consts.java | |
| parent | dd0947b2dd33baa882279a50876806cc1f0471c4 (diff) | |
| download | ECTester-a50b554fbc577df6873705738b379fa15980d2b7.tar.gz ECTester-a50b554fbc577df6873705738b379fa15980d2b7.tar.zst ECTester-a50b554fbc577df6873705738b379fa15980d2b7.zip | |
Implemented ECDHC testing.
- also some work on ECDH/ECDHC compatibility testing
- new option -dhc / --ecdhc [count] the same as ecdh option,
except it does ECDHC algo
Diffstat (limited to 'src/cz/crcs/ectester/applet/EC_Consts.java')
| -rw-r--r-- | src/cz/crcs/ectester/applet/EC_Consts.java | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/cz/crcs/ectester/applet/EC_Consts.java b/src/cz/crcs/ectester/applet/EC_Consts.java index 64f8dca..cac5d79 100644 --- a/src/cz/crcs/ectester/applet/EC_Consts.java +++ b/src/cz/crcs/ectester/applet/EC_Consts.java @@ -26,7 +26,7 @@ public class EC_Consts { private static byte[] EC_F2M_F2M = null; //[short i1, short i2, short i3], f = x^m + x^i1 + x^i2 + x^i3 + 1 - + // EC domain parameter identifiers (bit flags) public static final short PARAMETER_FP = 0x0001; public static final short PARAMETER_F2M = 0x0002; @@ -53,10 +53,18 @@ public class EC_Consts { public static final short PARAMETERS_KEYPAIR = 0x0180; public static final short PARAMETERS_ALL = 0x01ff; + + // EC key identifiers public static final byte KEY_PUBLIC = 0x01; public static final byte KEY_PRIVATE = 0x02; public static final byte KEY_BOTH = KEY_PUBLIC | KEY_PRIVATE; + + // Key Agreement test identifiers + public static final byte KA_ECDH = 0x01; + public static final byte KA_ECDHC = 0x02; + public static final byte KA_BOTH = KA_ECDH | KA_ECDHC; + public static RandomData randomData = null; @@ -1298,21 +1306,22 @@ public class EC_Consts { size += xLength; short offset = outputOffset; + outputBuffer[offset] = 0; switch (form) { case X962_UNCOMPRESSED: - outputBuffer[offset] = 0x04; + outputBuffer[offset] = 4; break; + case X962_HYBRID: + outputBuffer[offset] = 4; case X962_COMPRESSED: byte yLSB = yBuffer[(short) (yOffset + yLength)]; byte yBit = (byte) (yLSB & 0x01); if (yBit == 1) { - outputBuffer[offset] = 3; + outputBuffer[offset] += 3; } else { - outputBuffer[offset] = 2; + outputBuffer[offset] += 2; } - case X962_HYBRID: - outputBuffer[offset] += 4; break; default: ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); |
