Commit Graph

139 Commits

Author SHA1 Message Date
Michele Balistreri f71286e7d1 add NDEF applet 2018-10-08 13:18:55 +02:00
Michele Balistreri 7e11327f69 refresh EC keys every 100 SELECT commands 2018-10-08 12:31:47 +02:00
Michele Balistreri 9a8932ca2a correct javadoc 2018-10-08 11:32:51 +02:00
Michele Balistreri 582002b29e add key uid 2018-10-01 15:41:19 +02:00
Michele Balistreri 6a0ca5e260 add remove key command 2018-10-01 10:58:44 +02:00
Michele Balistreri 3c5fd3bfca avoid non-primitive, non-final static references 2018-09-26 15:22:04 +02:00
Michele Balistreri 174675dba8 add unassisted key derivation performance test 2018-09-24 14:18:12 +03:00
Michele Balistreri fde5d12850 implemented EXPORT KEY changes 2018-09-18 11:26:24 +03:00
Michele Balistreri 6af167612e use pairing key generated using PBKDF2 2018-09-14 11:35:47 +03:00
Michele Balistreri 7ed8b803df add performance tests 2018-09-04 15:06:06 +03:00
Michele Balistreri be4bad496e add performance test 2018-09-04 15:04:31 +03:00
Michele Balistreri 527760d7df decouple pairing secret from PUK 2018-06-25 11:13:06 +02:00
Timotej Stanek 94c9289b64 fixed typos 2018-05-04 11:26:17 +02:00
Michele Balistreri d98eafd6b6 add application version and PUK retry count to select 2018-04-22 13:39:10 +03:00
Michele Balistreri 64ca24fbac add key derivation from parent 2018-01-23 13:41:30 +03:00
Michele Balistreri d475900300 check and fix the S field of the ECDSA signature to avoid malleability 2018-01-19 15:40:36 +03:00
Michele Balistreri e15da6a7e0 add ability to export current public key 2018-01-19 12:04:55 +03:00
Michele Balistreri 404aef15a0 adapt tests 2018-01-19 10:58:36 +03:00
Michele Balistreri c15eef418f fix merge conflict, adapt tests 2018-01-19 10:54:02 +03:00
Michele Balistreri 450938f203 fixing GET STATUS length 2018-01-18 16:53:26 +03:00
Nick Johnson 07c1f9cc42 Make boolean true 0xFF, not 0x01 2018-01-17 15:29:16 +00:00
Nick Johnson 6855e46975 Replace context-specific tags on GET_STATUS with type tags, and fix length 2018-01-17 13:27:33 +00:00
Michele Balistreri 08e657a2c8 make the UID tag context specific too 2018-01-05 18:11:14 +03:00
Michele Balistreri d1b90a872a convert private tags in context-specific or application-specific tags 2018-01-05 16:11:00 +03:00
Michele Balistreri 5a8dcf4888 add missing documentation 2017-11-21 17:02:45 +03:00
Michele Balistreri e04f4c7bc7 implement AES CBC-MAC with a software fallback 2017-11-21 16:21:56 +03:00
Michele Balistreri 9cab2f993a make MAC actually work 2017-11-21 15:46:21 +03:00
Michele Balistreri 9772f17efa implement MAC 2017-11-20 17:42:12 +03:00
Michele Balistreri ca8c61ed5d test pair/unpair 2017-11-20 12:44:37 +03:00
Michele Balistreri d8b862d58d improve MUTUALLY AUTHENTICATE 2017-11-17 17:27:58 +03:00
Michele Balistreri 60f18b7afd Add the MUTUALLY AUTHENTICATE command 2017-11-17 16:12:28 +03:00
Michele Balistreri 09fe778d85 add instance UID 2017-11-15 12:55:41 +03:00
Michele Balistreri a61369d1bc update test to use pairing/unpairing 2017-11-15 12:11:01 +03:00
Michele Balistreri e11d817c64 implement PAIR/UNPAIR 2017-11-14 18:04:22 +03:00
Michele Balistreri 868c476ced document test utils 2017-11-04 12:54:31 +03:00
Michele Balistreri 10a429bf6d document Crypto utility class 2017-10-28 19:43:07 +03:00
Michele Balistreri a216b29b97 document SECP256k1 utility class 2017-10-28 19:04:24 +03:00
Michele Balistreri 5bf6f62ac7 fix typo 2017-10-28 18:47:47 +03:00
Michele Balistreri 74594092c8 document SecureChannel 2017-10-28 18:46:56 +03:00
Michele Balistreri 196e91f3ec document main applet class 2017-10-28 18:20:06 +03:00
Michele Balistreri b68c6bd275 implement EXPORT KEY 2017-10-26 14:15:40 +03:00
Michele Balistreri d778080899 implement PIN-less path 2017-10-26 12:11:49 +03:00
Michele Balistreri 5fc82298b8 implement retrieval of current key path 2017-10-25 14:29:13 +03:00
Michele Balistreri c062e53a6e fix situation where the card would get stuck in waiting for public key status 2017-10-25 12:25:08 +03:00
Michele Balistreri 24352fb0bc split sign and sign data tests 2017-10-25 11:20:40 +03:00
Michele Balistreri 760f431a16 implement assisted DERIVE KEY 2017-10-24 15:42:59 +03:00
Michele Balistreri 49c8f06c2d implement append in key derivation 2017-10-24 11:45:05 +03:00
Michele Balistreri 3a32731061 specify assisted key derivation 2017-10-19 16:37:14 +03:00
Michele Balistreri dc2af3b4fb test master key reset 2017-10-19 14:56:57 +03:00
Michele Balistreri c4b0da3703 fix DERIVE KEY 2017-10-18 15:51:03 +03:00
Michele Balistreri 32fbcfdcd5 implement DERIVE KEY test 2017-10-18 14:30:56 +03:00
Michele Balistreri de91e33f74 implement low-level BIP32 CKDPriv function 2017-10-18 11:40:20 +03:00
Michele Balistreri 4c0c58ac90 add hint if public key derivation is optimized or not 2017-10-16 17:34:37 +03:00
Michele Balistreri d26b1120a0 support T=0 in tests 2017-10-16 17:00:10 +03:00
Michele Balistreri 232db9b571 separate master and derived chain codes 2017-10-12 13:46:25 +03:00
Michele Balistreri f923e48333 rename ECCCurves to SEC256k1 to avoid confusion with the similarly named
ECCurve class
2017-10-12 13:43:08 +03:00
Michele Balistreri 84d56c95cd javacard applet can only define 1 package. JCMathLib has been integrated
in the main package
2017-10-12 13:39:04 +03:00
Michele Balistreri 48f1905cee add point multiplication through JCMathLib 2017-10-12 13:21:19 +03:00
Michele Balistreri b2543239aa make right shift work on both simulator and JavaCard 2017-10-11 13:26:50 +03:00
Michele Balistreri f134be461c remove duplication in loadKey variants 2017-10-11 12:55:47 +03:00
Michele Balistreri 8424f262df extend LOAD KEY with seed loading support 2017-10-11 12:44:48 +03:00
Michele Balistreri 97d195e6b5 simplify specifications - public key derivation must be somehow implemented 2017-10-11 10:55:04 +03:00
Michele Balistreri 5be35a8fe1 extend LOAD KEY 2017-10-11 10:45:37 +03:00
Michele Balistreri 9396e1448d implement GENERATE MNEMONIC 2017-10-10 20:07:09 +03:00
Michele Balistreri 5ba012fad1 implement GET STATUS 2017-10-09 17:12:21 +03:00
Michele Balistreri 3b0319cb37 add interface (and possible implementation) for public key derivation from
private key
2017-10-09 12:37:50 +03:00
Michele Balistreri 3c13025773 add public key to the output of the SIGN command 2017-10-06 15:08:07 +03:00
Michele Balistreri c7e35b8aeb explain compilation 2017-10-06 12:58:10 +03:00
Michele Balistreri 6035857f08 add web3j based test 2017-10-06 11:58:41 +03:00
Michele Balistreri fb24995cee add web3j based test (incomplete) 2017-10-05 14:10:49 +03:00
Michele Balistreri 7c72c16578 test with simulator 2017-10-04 17:25:28 +03:00
Michele Balistreri a78c5340c2 add ability to SIGN precomputed hashes. Switch to ECDSA with SHA256 for
data sign
2017-10-04 15:10:59 +03:00
Michele Balistreri ac5929a9fe implement SIGN 2017-09-30 17:26:06 +03:00
Michele Balistreri dd11e0cfa4 enforce P1 on LOAD KEY 2017-09-30 12:24:19 +03:00
Michele Balistreri 18ff9b1bdb implemented LOAD KEY 2017-09-29 19:02:24 +03:00
Michele Balistreri 91b4a96194 implement UNBLOCK PIN 2017-09-27 19:49:02 +03:00
Michele Balistreri f05190111c add PUK installation parameter 2017-09-27 16:01:45 +03:00
Michele Balistreri 8a06c7d074 implement CHANGE PIN 2017-09-27 15:22:34 +03:00
Michele Balistreri b0b5a68d2c implement secure channel encryption 2017-09-26 15:43:35 +03:00
Michele Balistreri 7ae588054b correct data length for decryption 2017-09-26 14:21:57 +03:00
Michele Balistreri 69a27f4c86 correct decryption overlapping offsets 2017-09-26 14:20:23 +03:00
Michele Balistreri 1c56b7fbf2 implement decrypt channel 2017-09-26 14:16:39 +03:00
Michele Balistreri 5a70ed2113 implement secure channel key exchange (open secure channel) 2017-09-26 13:05:59 +03:00
Michele Balistreri c12ce33fc6 test VERIFY PIN 2017-09-25 14:33:00 +03:00
Michele Balistreri fe37968654 add testing facilities 2017-09-25 14:16:26 +03:00
Michele Balistreri 6b600182dd begin application implementation 2017-09-25 12:26:15 +03:00
Michele Balistreri a2887abee4 draft of the secure channel implementation 2017-09-21 17:16:49 +03:00
Michele Balistreri 9427ccf48c add scripts to install on card and a smoke test 2017-09-21 16:06:36 +03:00
Michele Balistreri d977bac7f9 add skeleton app 2017-09-21 15:09:04 +03:00