From dd2338aac4651c1bfea45c6b725d923fda903d04 Mon Sep 17 00:00:00 2001 From: Tobias Kellner Date: Mon, 12 Jan 2015 18:58:13 +0100 Subject: New ATRs for ITCards --- .../java/at/gv/egiz/smcc/SignatureCardFactory.java | 249 +++++++++++++++++++++ 1 file changed, 249 insertions(+) diff --git a/smcc/src/main/java/at/gv/egiz/smcc/SignatureCardFactory.java b/smcc/src/main/java/at/gv/egiz/smcc/SignatureCardFactory.java index 550c961a..afe21ba4 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/SignatureCardFactory.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/SignatureCardFactory.java @@ -594,6 +594,7 @@ public class SignatureCardFactory { * (byte) 0xff, (byte) 0xff */ }, "at.gv.egiz.smcc.ITCard")); + supportedCards.add(new SupportedCard( // ATR // (3B:FF:18:00:FF:C1:0A:31:FE:55:00:6B:05:08:C8:05:01:01:01:43:4E:53:10:31:80:1C) @@ -614,6 +615,7 @@ public class SignatureCardFactory { (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff }, "at.gv.egiz.smcc.ITCard")); + supportedCards.add(new SupportedCard( // ATR // (3B:DF:18:00:81:31:FE:7D:00:6B:15:0C:01:81:01:01:01:43:4E:53:10:31:80:F8) @@ -635,6 +637,253 @@ public class SignatureCardFactory { (byte) 0xff}, "at.gv.egiz.smcc.ITCard")); + supportedCards.add(new SupportedCard( + // ATR = 3B xF x1 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 0-0 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x01, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:0f:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x0f, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF x1 xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 0-1 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x01, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:0f:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x0f, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF x1 xx xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 0-2 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x01, (byte) 0x00, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:0f:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x0f, (byte) 0x00, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF x1 xx xx xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 0-3 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:0f:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx x1 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 1-0 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x01, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:0f:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x0f, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx x1 xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 1-1 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x01, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:0f:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x0f, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx x1 xx xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 1-2 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:0f:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x0f, (byte) 0x00, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx x1 xx xx xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 1-3 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:0f:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx xx x1 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 2-0 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x00, (byte) 0x01, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:00:0f:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x0f, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx xx x1 xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 2-1 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:00:0f:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x0f, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx xx x1 xx xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 2-2 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:00:0f:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x0f, (byte) 0x00, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx xx x1 xx xx xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 2-3 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:00:0f:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + + supportedCards.add(new SupportedCard( + // ATR = 3B xF xx xx xx x1 xx xx xx 31 FE 7D 00 6B 15 0C 01 81 01 01 01 43 4E 53 10 31 80 F8 + // 3-3 variant + new byte[] { (byte) 0x3B, (byte) 0x0F, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x31, (byte) 0xFE, (byte) 0x7D, (byte) 0x00, + (byte) 0x6B, (byte) 0x15, (byte) 0x0C, (byte) 0x01, + (byte) 0x81, (byte) 0x01, (byte) 0x01, (byte) 0x01, + (byte) 0x43, (byte) 0x4E, (byte) 0x53, (byte) 0x10, + (byte) 0x31, (byte) 0x80, (byte) 0xF8 + }, + // mask (ff:0f:00:00:00:0f:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:..) + new byte[] { (byte) 0xff, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x0f, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, + (byte) 0xff, (byte) 0xff, (byte) 0xff + }, "at.gv.egiz.smcc.ITCard")); + // ATR for EstEID v.1.0 realised on Micardo Public 2.1 - Warm ATR // ATR for EstEID v.1.0 realised on Micardo Public 3.0 - Warm ATR // ATR for EstEID v.1.1 for DigiID realised on MultoOS by KeyCorp on IE4 - Cold ATR -- cgit v1.2.3