From 4f5a072e47c9633d41c50dbcc7a24502cc5f356e Mon Sep 17 00:00:00 2001 From: petrs Date: Tue, 4 Oct 2016 13:11:54 +0200 Subject: [PATCH] EC curve testing in separate apdu due to weird behavior of some cards after multiple errors within single apdu --- !uploader/simpleECC.cap | Bin 9444 -> 9542 bytes dist/SimpleAPDU.jar | Bin 45888 -> 47118 bytes src/applets/SimpleECCApplet.java | 22 +++++++++- src/simpleapdu/SimpleAPDU.java | 73 ++++++++++++++++++++++++++----- 4 files changed, 83 insertions(+), 12 deletions(-) diff --git a/!uploader/simpleECC.cap b/!uploader/simpleECC.cap index 39e0bc446bcc24533c14068c20b1b62604a5c18c..7fb5ce84fca148568478d41b9fcb5f8b00d90ed7 100644 GIT binary patch delta 4405 zcmbuC3vg7`8OQ%;?{i<-_hxtVev*Zlgb-c{;UO60Rf9oHAS8icq7h}$Q7PE&hJZk0 zv~t1vs8cLH5L{ctqN#R7uo=aQ))}-@b!aVy5{KB4ip~X0zk8P?yGiMcb?=<}JKuND z`OZ1tIp5iHPR;9?Z>?Uy@ovbnjB_{7dB{30yl8DliRHd8ue~T`yga+wa8>k`1JCa& zkKQ`*{TFKZ22b?f!p-|GePcd5X?MmKcmH^c>zum%Z1-EAr!0N!wcYzxKO`MaZChUd z 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 delta 4382 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 diff --git a/dist/SimpleAPDU.jar b/dist/SimpleAPDU.jar index c2cf0cce93c14dc0c58c5689c4dca42b32d60608..c1fcaba45cc0f84b92a9f43c19c36646ff53fdc5 100644 GIT binary patch delta 13026 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 diff --git a/src/applets/SimpleECCApplet.java b/src/applets/SimpleECCApplet.java index 55191044..720ee4e2 100644 --- a/src/applets/SimpleECCApplet.java +++ b/src/applets/SimpleECCApplet.java @@ -23,6 +23,7 @@ public class SimpleECCApplet extends javacard.framework.Applet final static byte INS_TESTECSUPPORTALL_FP = (byte) 0x5e; final static byte INS_TESTECSUPPORTALL_F2M = (byte) 0x5f; final static byte INS_TESTEC_GENERATEINVALID_FP = (byte) 0x70; + final static byte INS_TESTECSUPPORT_GIVENALG = (byte) 0x71; final static byte INS_TESTEC_LASTUSEDPARAMS = (byte) 0x40; @@ -165,6 +166,10 @@ public void process(APDU apdu) throws ISOException if (apduBuffer[ISO7816.OFFSET_CLA] == CLA_SIMPLEECCAPPLET) { switch ( apduBuffer[ISO7816.OFFSET_INS] ) { + + case INS_TESTECSUPPORT_GIVENALG: + TestEC_SupportGivenLength(apdu); + break; case INS_TESTECSUPPORTALL_FP: TestEC_FP_SupportAllLengths(apdu); break; @@ -433,11 +438,26 @@ short TestECSupport(byte keyClass, short keyLen, byte[] buffer, short bufferOffs return (short) (bufferOffset - baseOffset); } - void TestEC_FP_SupportAllLengths(APDU apdu) { + void TestEC_SupportGivenLength(APDU apdu) { byte[] apdubuf = apdu.getBuffer(); short len = apdu.setIncomingAndReceive(); + short dataOffset = ISO7816.OFFSET_CDATA; + byte algType = apdubuf[dataOffset]; dataOffset++; + short keyLength = Util.getShort(apdubuf, dataOffset); + dataOffset += 2; + + dataOffset = 0; + dataOffset += TestECSupport(algType, keyLength, apdubuf, dataOffset); + + apdu.setOutgoingAndSend((short) 0, dataOffset); + } + + void TestEC_FP_SupportAllLengths(APDU apdu) { + byte[] apdubuf = apdu.getBuffer(); + short len = apdu.setIncomingAndReceive(); short dataOffset = 0; + // FP dataOffset += TestECSupport(KeyPair.ALG_EC_FP, (short) 128, apdubuf, dataOffset); dataOffset += TestECSupport(KeyPair.ALG_EC_FP, (short) 160, apdubuf, dataOffset); diff --git a/src/simpleapdu/SimpleAPDU.java b/src/simpleapdu/SimpleAPDU.java index 78d5bd82..0ea9ca36 100644 --- a/src/simpleapdu/SimpleAPDU.java +++ b/src/simpleapdu/SimpleAPDU.java @@ -21,6 +21,10 @@ public class SimpleAPDU { private static final byte TESTECSUPPORTALL_FP[] = {(byte) 0xB0, (byte) 0x5E, (byte) 0x00, (byte) 0x00, (byte) 0x00}; private static final byte TESTECSUPPORTALL_F2M[] = {(byte) 0xB0, (byte) 0x5F, (byte) 0x00, (byte) 0x00, (byte) 0x00}; + private static final byte TESTECSUPPORT_GIVENALG[] = {(byte) 0xB0, (byte) 0x71, (byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x00, (byte) 0x00, (byte) 0x00}; + private static final short TESTECSUPPORT_ALG_OFFSET = 5; + private static final short TESTECSUPPORT_KEYLENGTH_OFFSET = 6; + private static final byte TESTECSUPPORTALL_LASTUSEDPARAMS[] = {(byte) 0xB0, (byte) 0x40, (byte) 0x00, (byte) 0x00, (byte) 0x00}; private static final byte TESTECSUPPORTALL_FP_KEYGEN_INVALIDCURVEB[] = {(byte) 0xB0, (byte) 0x70, (byte) 0x00, (byte) 0x00, (byte) 0x05, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00}; @@ -45,34 +49,81 @@ static void testFPkeyGen_rewindOnSuccess(byte[] apduArray, boolean bRewind) { apduArray[INVALIDCURVEB_REWINDONSUCCESS_OFFSET] = bRewind ? (byte) 1 : (byte) 0; } + static CardMngr ReconnnectToCard() throws Exception { + cardManager.DisconnectFromCard(); + if (cardManager.ConnectToCard()) { + // Select our application on card + cardManager.sendAPDU(SELECT_ECTESTERAPPLET); + } + return cardManager; + } + + static void testSupportECGivenAlg(byte[] apdu, CardMngr cardManager) throws Exception { + ReconnnectToCard(); + ResponseAPDU resp = cardManager.sendAPDU(apdu); + PrintECSupport(resp); + } + static void testSupportECAll(CardMngr cardManager) throws Exception { + byte[] testAPDU = Arrays.clone(TESTECSUPPORT_GIVENALG); + + testAPDU[TESTECSUPPORT_ALG_OFFSET] = KeyPair.ALG_EC_FP; + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 128); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 160); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 192); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 224); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 256); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 384); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 521); + testSupportECGivenAlg(testAPDU, cardManager); + + testAPDU[TESTECSUPPORT_ALG_OFFSET] = KeyPair.ALG_EC_F2M; + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 113); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 131); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 163); + testSupportECGivenAlg(testAPDU, cardManager); + setShort(testAPDU, TESTECSUPPORT_KEYLENGTH_OFFSET, (short) 193); + testSupportECGivenAlg(testAPDU, cardManager); + + } public static void main(String[] args) { try { // // REAL CARDS // if (cardManager.ConnectToCard()) { - // Select our application on card - cardManager.sendAPDU(SELECT_ECTESTERAPPLET); - // Test setting invalid parameter B of curev + testSupportECAll(cardManager); + + // Test setting invalid parameter B of curve byte[] testAPDU = Arrays.clone(TESTECSUPPORTALL_FP_KEYGEN_INVALIDCURVEB); //testFPkeyGen_setCorruptionType(testAPDU, SimpleECCApplet.CORRUPT_B_LASTBYTEINCREMENT); testFPkeyGen_setCorruptionType(testAPDU, SimpleECCApplet.CORRUPT_B_ONEBYTERANDOM); //testFPkeyGen_setCorruptionType(testAPDU, SimpleECCApplet.CORRUPT_B_FULLRANDOM); testFPkeyGen_setNumRepeats(testAPDU, (short) 10); testFPkeyGen_rewindOnSuccess(testAPDU, true); + ReconnnectToCard(); ResponseAPDU resp_fp_keygen = cardManager.sendAPDU(testAPDU); ResponseAPDU resp_keygen_params = cardManager.sendAPDU(TESTECSUPPORTALL_LASTUSEDPARAMS); PrintECKeyGenInvalidCurveB(resp_fp_keygen); PrintECKeyGenInvalidCurveB_lastUserParams(resp_keygen_params); - - // Test support for different types of curves - ResponseAPDU resp_fp = cardManager.sendAPDU(TESTECSUPPORTALL_FP); - ResponseAPDU resp_f2m = cardManager.sendAPDU(TESTECSUPPORTALL_F2M); - PrintECSupport(resp_fp); - PrintECSupport(resp_f2m); - + /* + // Test support for different types of curves + ReconnnectToCard(); + ResponseAPDU resp_fp = cardManager.sendAPDU(TESTECSUPPORTALL_FP); + ReconnnectToCard(); + ResponseAPDU resp_f2m = cardManager.sendAPDU(TESTECSUPPORTALL_F2M); + PrintECSupport(resp_fp); + PrintECSupport(resp_f2m); + */ cardManager.DisconnectFromCard(); } else { @@ -209,7 +260,7 @@ static void PrintECKeyGenInvalidCurveB(ResponseAPDU resp) { short numRepeats = getShort(buffer, bufferOffset); bufferOffset += 2; - System.out.println(String.format("Executed repeats before unexpected error: %d times", numRepeats)); + System.out.println(String.format("%-53s%d times", "Executed repeats before unexpected error: ", numRepeats)); bufferOffset = VerifyPrintResult("KeyPair object allocation:", SimpleECCApplet.ECTEST_ALLOCATE_KEYPAIR, buffer, bufferOffset, ExpResult.SHOULD_SUCCEDD);