diff options
author | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-07-20 13:06:01 +0000 |
---|---|---|
committer | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-07-20 13:06:01 +0000 |
commit | 1103be1b14d0ad771386438696cd39bede15c6f6 (patch) | |
tree | 77867825e516f414319d7f678dca37f409371561 | |
parent | 36c6eea7b9623c8b36e235b34362f5045b583e34 (diff) | |
download | mocca-1103be1b14d0ad771386438696cd39bede15c6f6.tar.gz mocca-1103be1b14d0ad771386438696cd39bede15c6f6.tar.bz2 mocca-1103be1b14d0ad771386438696cd39bede15c6f6.zip |
Issue #MOCCA-746 - QuoVadis SuisseID integration
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@788 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/ACOSCard.java | 4 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/AbstractSignatureCard.java | 13 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/BELPICCard.java | 7 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/EstEIDCard.java | 4 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/ITCard.java | 7 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/PtEidCard.java | 4 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java | 7 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/SignatureCardFactory.java | 17 | ||||
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/SuisseIDCard.java (renamed from smcc/src/main/java/at/gv/egiz/smcc/SwissSignIDCard.java) | 53 |
9 files changed, 55 insertions, 61 deletions
diff --git a/smcc/src/main/java/at/gv/egiz/smcc/ACOSCard.java b/smcc/src/main/java/at/gv/egiz/smcc/ACOSCard.java index bb913c67..febb8677 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/ACOSCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/ACOSCard.java @@ -113,10 +113,6 @@ public class ACOSCard extends AbstractSignatureCard implements PINMgmtSignatureC */ protected int appVersion = -1; - public ACOSCard() { - super("at/gv/egiz/smcc/ACOSCard"); - } - @Override public void init(Card card, CardTerminal cardTerminal) { super.init(card, cardTerminal); diff --git a/smcc/src/main/java/at/gv/egiz/smcc/AbstractSignatureCard.java b/smcc/src/main/java/at/gv/egiz/smcc/AbstractSignatureCard.java index 73dadceb..ecf08c54 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/AbstractSignatureCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/AbstractSignatureCard.java @@ -33,17 +33,13 @@ public abstract class AbstractSignatureCard implements SignatureCard { private final Logger log = LoggerFactory.getLogger(AbstractSignatureCard.class); - private ResourceBundle i18n; - private String resourceBundleName; - private Locale locale = Locale.getDefault(); private Card card_; protected CardReader reader; - protected AbstractSignatureCard(String resourceBundleName) { - this.resourceBundleName = resourceBundleName; + protected AbstractSignatureCard() { } protected String toString(byte[] b) { @@ -83,13 +79,6 @@ public abstract class AbstractSignatureCard implements SignatureCard { this.locale = locale; } - protected ResourceBundle getResourceBundle() { - if (i18n == null) { - i18n = ResourceBundle.getBundle(resourceBundleName, locale); - } - return i18n; - } - @Override public void disconnect(boolean reset) { log.debug("Disconnect called"); diff --git a/smcc/src/main/java/at/gv/egiz/smcc/BELPICCard.java b/smcc/src/main/java/at/gv/egiz/smcc/BELPICCard.java index bd42f47c..e9f0db83 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/BELPICCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/BELPICCard.java @@ -68,13 +68,6 @@ public class BELPICCard extends AbstractSignatureCard implements SignatureCard { new PinInfo(4, 12, "[0-9]", "at/gv/egiz/smcc/BELPICCard", "sig.pin", KID, DF_BELPIC, PinInfo.UNKNOWN_RETRIES); - /** - * Creates a new instance. - */ - public BELPICCard() { - super("at/gv/egiz/smcc/BelpicCard"); - } - @Override @Exclusive public byte[] getCertificate(KeyboxName keyboxName) diff --git a/smcc/src/main/java/at/gv/egiz/smcc/EstEIDCard.java b/smcc/src/main/java/at/gv/egiz/smcc/EstEIDCard.java index 9d889d79..f32109c9 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/EstEIDCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/EstEIDCard.java @@ -50,10 +50,6 @@ public class EstEIDCard extends AbstractSignatureCard { private static final PinInfo QS_PIN_SPEC = new PinInfo(5, 12, "[0-9]", "at/gv/egiz/smcc/EstEIDCard", "qs.pin", KID_PIN_2, DF, PinInfo.UNKNOWN_RETRIES); - public EstEIDCard() { - super("at/gv/egiz/smcc/EstEIDCard"); - } - @Override public byte[] getCertificate(KeyboxName keyboxName) throws SignatureCardException, InterruptedException { diff --git a/smcc/src/main/java/at/gv/egiz/smcc/ITCard.java b/smcc/src/main/java/at/gv/egiz/smcc/ITCard.java index 9ed65d53..357fc845 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/ITCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/ITCard.java @@ -52,13 +52,6 @@ public class ITCard extends AbstractSignatureCard { "at/gv/egiz/smcc/ITCard", "sig.pin", (byte) 0x10, new byte[] { (byte) 0x11, (byte) 0x00 }, PinInfo.UNKNOWN_RETRIES); - /** - * Creates a new instance. - */ - public ITCard() { - super("at/gv/egiz/smcc/ITCard"); - } - @Override @Exclusive public byte[] getCertificate(KeyboxName keyboxName) diff --git a/smcc/src/main/java/at/gv/egiz/smcc/PtEidCard.java b/smcc/src/main/java/at/gv/egiz/smcc/PtEidCard.java index 8bd49e01..f9f9af9e 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/PtEidCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/PtEidCard.java @@ -62,10 +62,6 @@ public class PtEidCard extends AbstractSignatureCard { new PinInfo(4, 4, "[0-9]", "at/gv/egiz/smcc/PtEidCard", "sig.pin", (byte) 0x82, DF_ISSUES, PinInfo.UNKNOWN_RETRIES); - protected PtEidCard() { - super("at/gv/egiz/smcc/PtEidCard"); - } - @Override public byte[] getCertificate(KeyboxName keyboxName) throws SignatureCardException, InterruptedException { diff --git a/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java b/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java index 7eb86601..d619dc39 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java @@ -137,13 +137,6 @@ public class STARCOSCard extends AbstractSignatureCard implements PINMgmtSignatu protected PinInfo cardPinInfo; protected PinInfo ssPinInfo; - /** - * Creates a new instance. - */ - public STARCOSCard() { - super("at/gv/egiz/smcc/STARCOSCard"); - } - /* (non-Javadoc) * @see at.gv.egiz.smcc.AbstractSignatureCard#init(javax.smartcardio.Card, javax.smartcardio.CardTerminal) */ 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 c57b8c3a..efb99820 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/SignatureCardFactory.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/SignatureCardFactory.java @@ -393,8 +393,23 @@ public class SignatureCardFactory { (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff}, - "at.gv.egiz.smcc.SwissSignIDCard")); + "at.gv.egiz.smcc.SuisseIDCard")); + supportedCards.add(new SupportedCard( + // ATR 3b:f2:18:00:02:c1:0a:31:fe:58:c8:08:74 + new byte[] { (byte) 0x3b, (byte) 0xf2, (byte) 0x18, + (byte) 0x00, (byte) 0x02, (byte) 0xc1, (byte) 0x0a, + (byte) 0x31, (byte) 0xfe, (byte) 0x58, (byte) 0xc8, + (byte) 0x08, (byte) 0x74}, + // mask + new byte[] { + (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.SuisseIDCard")); + } /** diff --git a/smcc/src/main/java/at/gv/egiz/smcc/SwissSignIDCard.java b/smcc/src/main/java/at/gv/egiz/smcc/SuisseIDCard.java index f2eea0ae..f0f78318 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/SwissSignIDCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/SuisseIDCard.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.InputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import javax.smartcardio.ATR; import javax.smartcardio.CardChannel; import javax.smartcardio.CardException; @@ -36,13 +37,15 @@ import org.slf4j.LoggerFactory; import at.gv.egiz.smcc.util.ISO7816Utils; import at.gv.egiz.smcc.util.SMCCHelper; +import javax.smartcardio.Card; +import javax.smartcardio.CardTerminal; -public class SwissSignIDCard extends AbstractSignatureCard implements SignatureCard { +public class SuisseIDCard extends AbstractSignatureCard implements SignatureCard { /** * Logging facility. */ - private final Logger log = LoggerFactory.getLogger(SwissSignIDCard.class); + private final Logger log = LoggerFactory.getLogger(SuisseIDCard.class); public static final byte[] MF = new byte[] { (byte) 0x3F, (byte) 0x00 }; @@ -55,15 +58,39 @@ public class SwissSignIDCard extends AbstractSignatureCard implements SignatureC public static final byte KID = (byte) 0x81; - protected PinInfo pinInfo = - new PinInfo(5, 12, "[0-9]", - "at/gv/egiz/smcc/SwissSignIDCard", "pin", KID, AID_SIG, PinInfo.UNKNOWN_RETRIES); - - /** - * Creates a new instance. - */ - public SwissSignIDCard() { - super("at/gv/egiz/smcc/SwissSignIDCard"); + protected PinInfo pinInfo; + protected String name = "SuisseID"; + + @Override + public void init(Card card, CardTerminal cardTerminal) { + super.init(card, cardTerminal); + + byte[] atr = card.getATR().getBytes(); + if (atr[11] == 'S' && + atr[12] == 'w' && + atr[13] == 'i' && + atr[14] == 's' && + atr[15] == 's' && + atr[16] == 'S' && + atr[17] == 'i' && + atr[18] == 'g' && + atr[19] == 'n') { + name = "SwissSign SuisseID"; + pinInfo = new PinInfo(5, 12, "[0-9]", + "at/gv/egiz/smcc/SwissSignIDCard", "pin", KID, AID_SIG, PinInfo.UNKNOWN_RETRIES); + + } else { + name = "QuoVadis SuisseID"; + pinInfo = new PinInfo(6, 12, "[0-9]", + "at/gv/egiz/smcc/QuoVadisIDCard", "pin", KID, AID_SIG, PinInfo.UNKNOWN_RETRIES); + } + + log.debug("initializing {} for ATR {}", name, toString(atr)); + } + + @Override + public String toString() { + return name; } @Override @@ -166,10 +193,6 @@ public class SwissSignIDCard extends AbstractSignatureCard implements SignatureC } - public String toString() { - return "Belpic Card"; - } - protected void verifyPINLoop(CardChannel channel, PinInfo spec, PINGUI provider) throws LockedException, NotActivatedException, SignatureCardException, InterruptedException, CardException { |