summaryrefslogtreecommitdiff
path: root/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos
diff options
context:
space:
mode:
Diffstat (limited to 'mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos')
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplDEC.java151
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplSIG.java77
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardChannelEmul.java98
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardEmul.java31
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardTest.java92
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplDEC.java296
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplSIG.java87
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardChannelEmul.java75
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardEmul.java32
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardTest.java143
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSAppl.java79
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplDEC.java334
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplSIG.java302
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardChannelEmul.java261
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardEmul.java38
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTest.java230
-rw-r--r--mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTestSuite.java27
17 files changed, 0 insertions, 2353 deletions
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplDEC.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplDEC.java
deleted file mode 100644
index f4ac5c35..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplDEC.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.Random;
-
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.File;
-import at.gv.egiz.smcc.PIN;
-
-
-@SuppressWarnings("restriction")
-public class A03ApplDEC extends ACOSApplDEC {
-
- public static final int KID_PIN_INF = 0x83;
-
- public A03ApplDEC() {
- super();
-
- System.arraycopy(IDLINK, 0, EF_INFOBOX, 0, IDLINK.length);
- putFile(new File(FID_EF_INFOBOX, EF_INFOBOX, FCI_EF_INFOBOX, KID_PIN_INF));
-
- try {
- pins.put(KID_PIN_INF, new PIN("0000\0\0\0\0".getBytes("ASCII"), KID_PIN_INF, 10, PIN.STATE_RESET));
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public ResponseAPDU cmdMANAGE_SECURITY_ENVIRONMENT(CommandAPDU command, CardChannelEmul channel) {
-
- checkINS(command, 0x22);
-
- switch (command.getP2()) {
- case 0xA4:
- switch (command.getP1()) {
- case 0x41: {
- // INTERNAL AUTHENTICATE
- byte[] dst = new byte[] { (byte) 0x84, (byte) 0x01, (byte) 0x88, (byte) 0x80, (byte) 0x01, (byte) 0x01 };
- if (Arrays.equals(dst, command.getData())) {
- securityEnv = command.getData();
- return new ResponseAPDU(new byte[] {(byte) 0x90, (byte) 0x00});
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
- }
- case 0x81:
- // EXTERNAL AUTHENTICATE
- }
- case 0xB6:
- switch (command.getP1()) {
- case 0x41:
- // PSO - COMPUTE DIGITAL SIGNATURE
- case 0x81:
- // PSO - VERIFY DGITAL SIGNATURE
- }
- case 0xB8:
- switch (command.getP1()) {
- case 0x41:
- // PSO � DECIPHER
- case 0x81:
- // PSO � ENCIPHER
- }
- default:
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- }
-
- @Override
- public ResponseAPDU cmdPERFORM_SECURITY_OPERATION(CommandAPDU command, CardChannelEmul channel) {
-
- checkINS(command, 0x2A);
-
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x00});
-
- }
-
- @Override
- public ResponseAPDU cmdINTERNAL_AUTHENTICATE(CommandAPDU command, CardChannelEmul channel) {
-
- checkINS(command, 0x88);
-
- if (command.getP1() == 0x10 && command.getP2() == 0x00) {
-
- byte[] data = command.getData();
-
- if (securityEnv == null) {
- // Security Environment not set or wrong
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
-
- byte[] digestInfo = new byte[] {
- (byte) 0x30, (byte) 0x21, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x05, (byte) 0x2B, (byte) 0x0E,
- (byte) 0x03, (byte) 0x02, (byte) 0x1A, (byte) 0x05, (byte) 0x00, (byte) 0x04, (byte) 0x14
- };
-
- if (data.length != 35 || !Arrays.equals(digestInfo, Arrays.copyOf(data, 15))) {
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
-
- if (pins.get(KID_PIN_DEC).state != PIN.STATE_PIN_VERIFIED) {
- // Security Status not satisfied
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x82});
- }
-
- byte[] signature = new byte[48];
-
- // TODO replace by signature creation
- Random random = new Random();
- random.nextBytes(signature);
-
- byte[] response = new byte[signature.length + 2];
- System.arraycopy(signature, 0, response, 0, signature.length);
- response[signature.length] = (byte) 0x90;
- response[signature.length + 1] = (byte) 0x00;
-
- hash = null;
- pins.get(KID_PIN_DEC).state = PIN.STATE_RESET;
-
- return new ResponseAPDU(response);
-
-
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- }
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplSIG.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplSIG.java
deleted file mode 100644
index d059ad57..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03ApplSIG.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.util.Arrays;
-
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.CardChannelEmul;
-
-
-@SuppressWarnings("restriction")
-public class A03ApplSIG extends ACOSApplSIG {
-
- public A03ApplSIG() {
- super();
- System.arraycopy(C_CH_DS, 0, EF_C_CH_DS, 0, C_CH_DS.length);
- }
-
- @Override
- public ResponseAPDU cmdMANAGE_SECURITY_ENVIRONMENT(CommandAPDU command, CardChannelEmul channel) {
-
- checkINS(command, 0x22);
-
- switch (command.getP2()) {
- case 0xA4:
- switch (command.getP1()) {
- case 0x41:
- // INTERNAL AUTHENTICATE
- case 0x81:
- // EXTERNAL AUTHENTICATE
- }
- case 0xB6:
- switch (command.getP1()) {
- case 0x41: {
- // PSO - COMPUTE DIGITAL SIGNATURE
- byte[] dst = new byte[] { (byte) 0x84, (byte) 0x01, (byte) 0x88, (byte) 0x80, (byte) 0x01, (byte) 0x14 };
- if (Arrays.equals(dst, command.getData())) {
- securityEnv = command.getData();
- return new ResponseAPDU(new byte[] {(byte) 0x90, (byte) 0x00});
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
- }
- case 0x81:
- // PSO - VERIFY DGITAL SIGNATURE
- }
- case 0xB8:
- switch (command.getP1()) {
- case 0x41:
- // PSO � DECIPHER
- case 0x81:
- // PSO � ENCIPHER
- }
- default:
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- }
-
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardChannelEmul.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardChannelEmul.java
deleted file mode 100644
index c8d5382c..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardChannelEmul.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-
-import javax.smartcardio.CardException;
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.CardEmul;
-import at.gv.egiz.smcc.PIN;
-
-
-@SuppressWarnings("restriction")
-public class A03CardChannelEmul extends ACOSCardChannelEmul {
-
- public A03CardChannelEmul(CardEmul cardEmul) {
- super(cardEmul);
- }
-
- @Override
- public ResponseAPDU cmdREAD_BINARY(CommandAPDU command) throws CardException {
-
- if (command.getINS() != 0xB0) {
- throw new IllegalArgumentException("INS has to be 0xB0.");
- }
-
- if (currentFile == null) {
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x86});
- }
-
- if ((command.getP1() & 0x80) > 0) {
- throw new CardException("Not implemented.");
- }
-
- int offset = command.getP2() + (command.getP1() << 8);
- if (offset > currentFile.file.length) {
- // Wrong length
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
- if (command.getNe() == 0) {
- throw new CardException("Not implemented.");
- }
-
- if (currentFile.kid != -1) {
- if ((currentFile.kid & 0x80) > 0) {
- PIN pin;
- if (currentAppl == null
- || (pin = currentAppl.pins.get(currentFile.kid)) == null
- || pin.state != PIN.STATE_PIN_VERIFIED) {
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x82});
- }
- } else {
- // Global PINs not implemented
- throw new CardException("Not implemented.");
- }
- }
-
- int len;
- if (command.getNe() == 256) {
- if (currentFile.file.length > 256) {
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- } else {
- len = Math.min(command.getNe(), currentFile.file.length - offset);
- }
- } else {
- if (command.getNe() >= currentFile.file.length - offset) {
- return new ResponseAPDU(new byte[] {(byte) 0x62, (byte) 0x82});
- } else {
- len = command.getNe();
- }
- }
-
- byte[] response = new byte[len + 2];
- System.arraycopy(currentFile.file, offset, response, 0, len);
- response[len] = (byte) 0x90;
- response[len + 1] = (byte) 0x00;
- return new ResponseAPDU(response);
-
- }
-
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardEmul.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardEmul.java
deleted file mode 100644
index 7394bae7..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardEmul.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.CardEmul;
-
-
-
-public class A03CardEmul extends ACOSCardEmul {
-
- public A03CardEmul(A03ApplSIG applSIG, A03ApplDEC applDEC) {
- channel = new A03CardChannelEmul(this);
- applications.add(applSIG);
- applications.add(applDEC);
- }
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardTest.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardTest.java
deleted file mode 100644
index 3a8ac41c..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A03CardTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import static org.junit.Assert.assertTrue;
-
-import java.util.Arrays;
-
-import org.junit.Test;
-
-import at.gv.egiz.smcc.CancelledException;
-import at.gv.egiz.smcc.CardEmul;
-import at.gv.egiz.smcc.CardNotSupportedException;
-import at.gv.egiz.smcc.CardTerminalEmul;
-import at.gv.egiz.smcc.pin.gui.ChangePINProvider;
-import at.gv.egiz.smcc.LockedException;
-import at.gv.egiz.smcc.NotActivatedException;
-import at.gv.egiz.smcc.PINFormatException;
-import at.gv.egiz.smcc.PINMgmtSignatureCard;
-import at.gv.egiz.smcc.pin.gui.SMCCTestPINProvider;
-import at.gv.egiz.smcc.PINSpec;
-import at.gv.egiz.smcc.SignatureCard;
-import at.gv.egiz.smcc.SignatureCardException;
-import at.gv.egiz.smcc.SignatureCardFactory;
-
-public class A03CardTest extends ACOSCardTest {
-
- @Override
- protected SignatureCard createSignatureCard()
- throws CardNotSupportedException {
- SignatureCardFactory factory = SignatureCardFactory.getInstance();
- CardEmul card = new A03CardEmul(new A03ApplSIG(), new A03ApplDEC());
- SignatureCard signatureCard = factory.createSignatureCard(card,
- new CardTerminalEmul(card));
- assertTrue(signatureCard instanceof PINMgmtSignatureCard);
- return signatureCard;
- }
-
- @Override
- protected int getVersion() {
- return 1;
- }
-
- @Test
- public void testChangePin() throws CardNotSupportedException,
- LockedException, NotActivatedException, CancelledException,
- PINFormatException, SignatureCardException, InterruptedException {
-
- char[] defaultPin = "123456".toCharArray();
-
- PINMgmtSignatureCard signatureCard = (PINMgmtSignatureCard) createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplSIG applSIG = (ACOSApplSIG) card.getApplication(ACOSAppl.AID_SIG);
- applSIG.setPin(ACOSApplSIG.KID_PIN_SIG, defaultPin);
- ACOSApplDEC applDEC = (ACOSApplDEC) card.getApplication(ACOSAppl.AID_DEC);
- applDEC.setPin(ACOSApplDEC.KID_PIN_DEC, defaultPin);
- applDEC.setPin(A03ApplDEC.KID_PIN_INF, defaultPin);
-
- for (PINSpec pinSpec : signatureCard.getPINSpecs()) {
-
- char[] pin = defaultPin;
-
- for (int i = pinSpec.getMinLength(); i <= pinSpec.getMaxLength(); i++) {
- signatureCard.verifyPIN(pinSpec, new SMCCTestPINProvider(pin));
- char[] newPin = new char[i];
- Arrays.fill(newPin, '0');
- signatureCard
- .changePIN(pinSpec, new ChangePINProvider(pin, newPin));
- signatureCard.verifyPIN(pinSpec, new SMCCTestPINProvider(newPin));
- pin = newPin;
- }
-
- }
-
- }
-
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplDEC.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplDEC.java
deleted file mode 100644
index e38a8e80..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplDEC.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.io.UnsupportedEncodingException;
-import java.security.GeneralSecurityException;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.Signature;
-import java.security.interfaces.RSAPrivateKey;
-import java.security.interfaces.RSAPublicKey;
-import java.util.Arrays;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.KeyGenerator;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-import javax.smartcardio.CardException;
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.File;
-import at.gv.egiz.smcc.PIN;
-
-
-@SuppressWarnings("restriction")
-public class A04ApplDEC extends ACOSApplDEC {
-
- private static final byte[] SEC_ENV_INTERNAL_AUTHENTICATE = new byte[] { (byte) 0x84,
- (byte) 0x01, (byte) 0x88, (byte) 0x80, (byte) 0x01, (byte) 0x01 };
-
- private static final byte[] SEC_ENV_DECIPHER = new byte[] { (byte) 0x84,
- (byte) 0x01, (byte) 0x88, (byte) 0x80, (byte) 0x01, (byte) 0x02 };
-
- private static final RSAPrivateKey SK_CH_EKEY;
-
- private static final RSAPublicKey PK_CH_EKEY;
-
- static {
- try {
- KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
- gen.initialize(1536);
- KeyPair keyPair = gen.generateKeyPair();
- SK_CH_EKEY = (RSAPrivateKey) keyPair.getPrivate();
- PK_CH_EKEY = (RSAPublicKey) keyPair.getPublic();
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException(e);
- }
- }
-
- public A04ApplDEC() {
- this(false);
- }
-
- public A04ApplDEC(boolean encrypt) {
-
- int offset = 0;
-
- // HEADER 'AIK' + version
- byte[] header;
- try {
- header = "AIK".getBytes("ASCII");
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- System.arraycopy(header, 0, EF_INFOBOX, offset, header.length);
- offset += header.length;
- EF_INFOBOX[offset++] = 1;
-
- // HEADER identity link
- EF_INFOBOX[offset++] = (byte) 0x01; // Personenbindung
- if (encrypt) {
- EF_INFOBOX[offset++] = (byte) 0x01; // Modifier
-
- byte[] cipherText;
- byte[] encKey;
- try {
- KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");
- SecretKey secretKey = keyGenerator.generateKey();
-
- byte[] keyBytes = secretKey.getEncoded();
-
- Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
- byte[] iv = new byte[8];
- Arrays.fill(iv, (byte) 0x00);
- IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
- cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec);
- cipherText = cipher.doFinal(IDLINK);
-
- cipher = Cipher.getInstance("RSA");
- cipher.init(Cipher.ENCRYPT_MODE, PK_CH_EKEY);
- encKey = cipher.doFinal(keyBytes);
-
- } catch (GeneralSecurityException e) {
- throw new RuntimeException(e);
- }
-
- int len = encKey.length + cipherText.length + 2;
-
- EF_INFOBOX[offset++] = (byte) (0xFF & len);
- EF_INFOBOX[offset++] = (byte) (0xFF & len >> 8);
-
- EF_INFOBOX[offset++] = (byte) (0xFF & encKey.length);
- EF_INFOBOX[offset++] = (byte) (0xFF & encKey.length >> 8);
-
- System.arraycopy(encKey, 0, EF_INFOBOX, offset, encKey.length);
- offset += encKey.length;
-
- System.arraycopy(cipherText, 0, EF_INFOBOX, offset, cipherText.length);
-
- } else {
- EF_INFOBOX[offset++] = (byte) 0x00; // Modifier
- EF_INFOBOX[offset++] = (byte) (0xFF & IDLINK.length);
- EF_INFOBOX[offset++] = (byte) (0xFF & IDLINK.length >> 8);
- System.arraycopy(IDLINK, 0, EF_INFOBOX, offset, IDLINK.length);
- offset += IDLINK.length;
- }
-
- putFile(new File(FID_EF_INFOBOX, EF_INFOBOX, FCI_EF_INFOBOX));
- }
-
- @Override
- public ResponseAPDU cmdMANAGE_SECURITY_ENVIRONMENT(CommandAPDU command, CardChannelEmul channel) {
-
- checkINS(command, 0x22);
-
- switch (command.getP2()) {
- case 0xA4:
- switch (command.getP1()) {
- case 0x41: {
- // INTERNAL AUTHENTICATE
- if (Arrays.equals(SEC_ENV_INTERNAL_AUTHENTICATE, command.getData())) {
- securityEnv = command.getData();
- return new ResponseAPDU(new byte[] {(byte) 0x90, (byte) 0x00});
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x85});
- }
- }
- case 0x81:
- // EXTERNAL AUTHENTICATE
- }
- case 0xB6:
- switch (command.getP1()) {
- case 0x41:
- // PSO - COMPUTE DIGITAL SIGNATURE
- case 0x81:
- // PSO - VERIFY DGITAL SIGNATURE
- }
- case 0xB8:
- switch (command.getP1()) {
- case 0x41:
- // PSO � DECIPHER
- if (Arrays.equals(SEC_ENV_DECIPHER, command.getData())) {
- securityEnv = command.getData();
- return new ResponseAPDU(new byte[] {(byte) 0x90, (byte) 0x00});
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x85});
- }
- case 0x81:
- // PSO � ENCIPHER
- }
- default:
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- }
-
- @Override
- public ResponseAPDU cmdPERFORM_SECURITY_OPERATION(CommandAPDU command, CardChannelEmul channel) throws CardException {
-
- checkINS(command, 0x2A);
-
- if (command.getP1() == 0x80 && command.getP2() == 0x86) {
-
- byte[] data = command.getData();
-
- if (!Arrays.equals(securityEnv, SEC_ENV_DECIPHER)) {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
-
- if (data.length != 193) {
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
- if (pins.get(KID_PIN_DEC).state != PIN.STATE_PIN_VERIFIED) {
- // Security Status not satisfied
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x82});
- }
-
- byte[] cipherText = Arrays.copyOfRange(data, 1, data.length);
-
- byte[] plainText;
- try {
- Cipher cipher = Cipher.getInstance("RSA");
- cipher.init(Cipher.DECRYPT_MODE, SK_CH_EKEY);
- plainText = cipher.doFinal(cipherText);
- } catch (GeneralSecurityException e) {
- throw new CardException(e);
- }
-
- byte[] response = new byte[plainText.length + 2];
- System.arraycopy(plainText, 0, response, 0, plainText.length);
- response[plainText.length] = (byte) 0x90;
- response[plainText.length + 1] = (byte) 0x00;
-
- return new ResponseAPDU(response);
-
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x00});
- }
-
- }
-
- @Override
- public ResponseAPDU cmdINTERNAL_AUTHENTICATE(CommandAPDU command, CardChannelEmul channel) throws CardException {
-
- checkINS(command, 0x88);
-
- if (command.getP1() == 0x10 && command.getP2() == 0x00) {
-
- byte[] data = command.getData();
-
- if (!Arrays.equals(securityEnv, SEC_ENV_INTERNAL_AUTHENTICATE)) {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
-
- byte[] digestInfo = new byte[] {
- (byte) 0x30, (byte) 0x21, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x05, (byte) 0x2B, (byte) 0x0E,
- (byte) 0x03, (byte) 0x02, (byte) 0x1A, (byte) 0x05, (byte) 0x00, (byte) 0x04, (byte) 0x14
- };
-
- if (data.length != 35 || !Arrays.equals(digestInfo, Arrays.copyOf(data, 15))) {
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
-
- if (pins.get(KID_PIN_DEC).state != PIN.STATE_PIN_VERIFIED) {
- // Security Status not satisfied
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x82});
- }
-
- byte[] digest = Arrays.copyOfRange(data, 15, 35);
-
- byte[] sig;
- try {
- Signature signature = Signature.getInstance("RSA");
- signature.initSign(SK_CH_EKEY);
- signature.update(digest);
- sig = signature.sign();
- } catch (GeneralSecurityException e) {
- throw new CardException(e);
- }
-
- byte[] response = new byte[sig.length + 2];
- System.arraycopy(sig, 0, response, 0, sig.length);
- response[sig.length] = (byte) 0x90;
- response[sig.length + 1] = (byte) 0x00;
-
- hash = null;
- pins.get(KID_PIN_DEC).state = PIN.STATE_RESET;
-
- return new ResponseAPDU(response);
-
-
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- }
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplSIG.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplSIG.java
deleted file mode 100644
index aee6a7f7..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04ApplSIG.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.util.Arrays;
-
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.File;
-
-
-@SuppressWarnings("restriction")
-public class A04ApplSIG extends ACOSApplSIG {
-
- private static byte[] FID_EF_INFO = new byte[] { (byte) 0xd0, (byte) 0x02 };
-
- private static byte[] FCI_EF_INFO = new byte[] { (byte) 0x6f, (byte) 0x07,
- (byte) 0x80, (byte) 0x02, (byte) 0x00, (byte) 0x08, (byte) 0x82,
- (byte) 0x01, (byte) 0x01 };
-
- private static byte[] EF_INFO = new byte[] { (byte) 0x02, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x90, (byte) 0x00 };
-
- public A04ApplSIG() {
- putFile(new File(FID_EF_INFO, EF_INFO, FCI_EF_INFO));
- }
-
- @Override
- public ResponseAPDU cmdMANAGE_SECURITY_ENVIRONMENT(CommandAPDU command, CardChannelEmul channel) {
-
- checkINS(command, 0x22);
-
- switch (command.getP2()) {
- case 0xA4:
- switch (command.getP1()) {
- case 0x41:
- // INTERNAL AUTHENTICATE
- case 0x81:
- // EXTERNAL AUTHENTICATE
- }
- case 0xB6:
- switch (command.getP1()) {
- case 0x41: {
- // PSO - COMPUTE DIGITAL SIGNATURE
- byte[] dst = new byte[] { (byte) 0x84, (byte) 0x01, (byte) 0x88, (byte) 0x80, (byte) 0x01, (byte) 0x14 };
- if (Arrays.equals(dst, command.getData())) {
- securityEnv = command.getData();
- return new ResponseAPDU(new byte[] {(byte) 0x90, (byte) 0x00});
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
- }
- case 0x81:
- // PSO - VERIFY DGITAL SIGNATURE
- }
- case 0xB8:
- switch (command.getP1()) {
- case 0x41:
- // PSO � DECIPHER
- case 0x81:
- // PSO � ENCIPHER
- }
- default:
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- }
-
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardChannelEmul.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardChannelEmul.java
deleted file mode 100644
index 3eaece91..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardChannelEmul.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-
-import javax.smartcardio.CardException;
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.CardEmul;
-
-
-@SuppressWarnings("restriction")
-public class A04CardChannelEmul extends ACOSCardChannelEmul {
-
- public A04CardChannelEmul(CardEmul cardEmul) {
- super(cardEmul);
- }
-
- @Override
- public ResponseAPDU cmdREAD_BINARY(CommandAPDU command) throws CardException {
-
- if (command.getINS() != 0xB0) {
- throw new IllegalArgumentException("INS has to be 0xB0.");
- }
-
- if (currentFile == null) {
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x86});
- }
-
- if ((command.getP1() & 0x80) > 0) {
- throw new CardException("Not implemented.");
- }
-
- int offset = command.getP2() + (command.getP1() << 8);
- if (offset > currentFile.file.length) {
- // Wrong length
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
- if (command.getNe() == 0) {
- throw new CardException("Not implemented.");
- }
-
- if (command.getNe() == 256 || command.getNe() <= currentFile.file.length - offset) {
- int len = Math.min(command.getNe(), currentFile.file.length - offset);
- byte[] response = new byte[len + 2];
- System.arraycopy(currentFile.file, offset, response, 0, len);
- response[len] = (byte) 0x90;
- response[len + 1] = (byte) 0x00;
- return new ResponseAPDU(response);
- } else if (command.getNe() >= currentFile.file.length - offset) {
- return new ResponseAPDU(new byte[] {(byte) 0x62, (byte) 0x82});
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
- }
-
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardEmul.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardEmul.java
deleted file mode 100644
index dd44d05b..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardEmul.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.CardEmul;
-
-
-
-public class A04CardEmul extends ACOSCardEmul {
-
- public A04CardEmul(A04ApplSIG applSIG, A04ApplDEC applDEC) {
- channel = new A04CardChannelEmul(this);
- applications.add(applSIG);
- applications.add(applDEC);
- }
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardTest.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardTest.java
deleted file mode 100644
index 1cbea1b3..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/A04CardTest.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import iaik.security.provider.IAIK;
-
-import java.security.Security;
-import java.util.Arrays;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import at.gv.egiz.smcc.CancelledException;
-import at.gv.egiz.smcc.CardEmul;
-import at.gv.egiz.smcc.CardNotSupportedException;
-import at.gv.egiz.smcc.CardTerminalEmul;
-import at.gv.egiz.smcc.LockedException;
-import at.gv.egiz.smcc.NotActivatedException;
-import at.gv.egiz.smcc.PINFormatException;
-import at.gv.egiz.smcc.PINMgmtSignatureCard;
-import at.gv.egiz.smcc.PINSpec;
-import at.gv.egiz.smcc.SignatureCard;
-import at.gv.egiz.smcc.SignatureCardException;
-import at.gv.egiz.smcc.SignatureCardFactory;
-import at.gv.egiz.smcc.pin.gui.ChangePINProvider;
-import at.gv.egiz.smcc.pin.gui.SMCCTestPINProvider;
-
-public class A04CardTest extends ACOSCardTest {
-
- @Override
- protected SignatureCard createSignatureCard()
- throws CardNotSupportedException {
- SignatureCardFactory factory = SignatureCardFactory.getInstance();
- CardEmul card = new A04CardEmul(new A04ApplSIG(), new A04ApplDEC());
- SignatureCard signatureCard = factory.createSignatureCard(card,
- new CardTerminalEmul(card));
- assertTrue(signatureCard instanceof PINMgmtSignatureCard);
- return signatureCard;
- }
-
- @Override
- protected int getVersion() {
- return 2;
- }
-
- @BeforeClass
- public static void setupClass() {
- IAIK.addAsProvider();
- }
-
- @Test
- public void testChangePin() throws CardNotSupportedException,
- LockedException, NotActivatedException, CancelledException,
- PINFormatException, SignatureCardException, InterruptedException {
-
- char[] defaultPin = "123456".toCharArray();
-
- PINMgmtSignatureCard signatureCard = (PINMgmtSignatureCard) createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplSIG applSIG = (ACOSApplSIG) card.getApplication(ACOSAppl.AID_SIG);
- applSIG.setPin(ACOSApplSIG.KID_PIN_SIG, defaultPin);
- ACOSApplDEC applDEC = (ACOSApplDEC) card.getApplication(ACOSAppl.AID_DEC);
- applDEC.setPin(ACOSApplDEC.KID_PIN_DEC, defaultPin);
-
- for (PINSpec pinSpec : signatureCard.getPINSpecs()) {
-
- char[] pin = defaultPin;
-
- for (int i = pinSpec.getMinLength(); i <= pinSpec.getMaxLength(); i++) {
- char[] newPin = new char[i];
- Arrays.fill(newPin, '0');
- signatureCard
- .changePIN(pinSpec, new ChangePINProvider(pin, newPin));
- signatureCard.verifyPIN(pinSpec, new SMCCTestPINProvider(newPin));
- pin = newPin;
- }
-
- }
-
- }
-
- @Test
- public void testGetInfoboxIdentityLinkEncrypted()
- throws CardNotSupportedException, SignatureCardException,
- InterruptedException {
-
- char[] pin = "0000".toCharArray();
-
- SignatureCardFactory factory = SignatureCardFactory.getInstance();
- A04ApplDEC applDEC = new A04ApplDEC(true);
- applDEC.setPin(A04ApplDEC.KID_PIN_DEC, pin);
- CardEmul card = new A04CardEmul(new A04ApplSIG(), applDEC);
- SignatureCard signatureCard = factory.createSignatureCard(card,
- new CardTerminalEmul(card));
-
- SMCCTestPINProvider pinProvider = new SMCCTestPINProvider(pin);
-
- byte[] idlink = signatureCard.getInfobox("IdentityLink",
- pinProvider, null);
- assertNotNull(idlink);
- assertTrue(Arrays.equals(idlink, A04ApplDEC.IDLINK));
- assertEquals(1, pinProvider.getProvided());
-
- }
-
- @Test
- public void testGetInfoboxIdentityLink() throws SignatureCardException,
- InterruptedException, CardNotSupportedException {
-
- final char[] pin = "0000".toCharArray();
-
- SignatureCard signatureCard = createSignatureCard();
-
- SMCCTestPINProvider pinProvider = new SMCCTestPINProvider(pin);
-
- byte[] idlink = signatureCard.getInfobox("IdentityLink",
- pinProvider, null);
- assertNotNull(idlink);
- assertTrue(Arrays.equals(idlink, A04ApplDEC.IDLINK));
- assertEquals(0, pinProvider.getProvided());
-
- }
-
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSAppl.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSAppl.java
deleted file mode 100644
index 4c340d61..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSAppl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.Iterator;
-
-import javax.smartcardio.CardException;
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.AbstractAppl;
-import at.gv.egiz.smcc.CardAppl;
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.PIN;
-
-@SuppressWarnings("restriction")
-public abstract class ACOSAppl extends AbstractAppl implements CardAppl {
-
- public static byte[] AID_SIG = new byte[] { (byte) 0xA0, (byte) 0x00,
- (byte) 0x00, (byte) 0x01, (byte) 0x18, (byte) 0x45, (byte) 0x43 };
-
- public static byte[] FID_SIG = new byte[] { (byte) 0xDF, (byte) 0x70 };
-
- public static byte[] AID_DEC = new byte[] { (byte) 0xA0, (byte) 0x00,
- (byte) 0x00, (byte) 0x01, (byte) 0x18, (byte) 0x45, (byte) 0x4E };
-
- public static byte[] FID_DEC = new byte[] { (byte) 0xDF, (byte) 0x71 };
-
- protected byte[] securityEnv;
-
- protected byte[] hash;
-
- @Override
- public ResponseAPDU cmdINTERNAL_AUTHENTICATE(CommandAPDU command, CardChannelEmul channel) throws CardException {
- return new ResponseAPDU(new byte[] {(byte) 0x6D, (byte) 0x00});
- }
-
- @Override
- public void leaveApplContext() {
- Iterator<PIN> pin = pins.values().iterator();
- while (pin.hasNext()) {
- pin.next().state = PIN.STATE_RESET;
- }
- }
-
- public void setPin(int kid, char[] value) {
- try {
- PIN pin = pins.get(kid);
- if (pin != null) {
- if (value == null) {
- Arrays.fill(pin.pin, (byte) 0x00);
- pin.state = PIN.STATE_PIN_BLOCKED;
- } else {
- int l = pin.pin.length;
- pin.pin = Arrays.copyOf(new String(value).getBytes("ASCII"), l);
- }
- }
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
-}
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplDEC.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplDEC.java
deleted file mode 100644
index 09a754f3..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplDEC.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-
-import at.gv.egiz.smcc.File;
-import at.gv.egiz.smcc.PIN;
-
-public abstract class ACOSApplDEC extends ACOSAppl {
-
- public static final byte[] IDLINK = new byte[] {
- (byte) 0x30, (byte) 0x82, (byte) 0x02, (byte) 0x11, (byte) 0x02, (byte) 0x01, (byte) 0x01, (byte) 0x0c,
- (byte) 0x26, (byte) 0x68, (byte) 0x74, (byte) 0x74, (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f,
- (byte) 0x77, (byte) 0x77, (byte) 0x77, (byte) 0x2e, (byte) 0x61, (byte) 0x2d, (byte) 0x74, (byte) 0x72,
- (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x74, (byte) 0x2f, (byte) 0x7a,
- (byte) 0x6d, (byte) 0x72, (byte) 0x2f, (byte) 0x70, (byte) 0x65, (byte) 0x72, (byte) 0x73, (byte) 0x62,
- (byte) 0x32, (byte) 0x30, (byte) 0x34, (byte) 0x2e, (byte) 0x78, (byte) 0x73, (byte) 0x6c, (byte) 0x0c,
- (byte) 0x29, (byte) 0x73, (byte) 0x7a, (byte) 0x72, (byte) 0x2e, (byte) 0x62, (byte) 0x6d, (byte) 0x69,
- (byte) 0x2e, (byte) 0x67, (byte) 0x76, (byte) 0x2e, (byte) 0x61, (byte) 0x74, (byte) 0x2d, (byte) 0x41,
- (byte) 0x73, (byte) 0x73, (byte) 0x65, (byte) 0x72, (byte) 0x74, (byte) 0x69, (byte) 0x6f, (byte) 0x6e,
- (byte) 0x49, (byte) 0x44, (byte) 0x31, (byte) 0x32, (byte) 0x33, (byte) 0x36, (byte) 0x33, (byte) 0x35,
- (byte) 0x36, (byte) 0x33, (byte) 0x36, (byte) 0x36, (byte) 0x37, (byte) 0x39, (byte) 0x39, (byte) 0x39,
- (byte) 0x31, (byte) 0x39, (byte) 0x0c, (byte) 0x19, (byte) 0x32, (byte) 0x30, (byte) 0x30, (byte) 0x39,
- (byte) 0x2d, (byte) 0x30, (byte) 0x33, (byte) 0x2d, (byte) 0x30, (byte) 0x36, (byte) 0x54, (byte) 0x31,
- (byte) 0x36, (byte) 0x3a, (byte) 0x31, (byte) 0x39, (byte) 0x3a, (byte) 0x32, (byte) 0x36, (byte) 0x2b,
- (byte) 0x30, (byte) 0x31, (byte) 0x3a, (byte) 0x30, (byte) 0x30, (byte) 0xa0, (byte) 0x42, (byte) 0x30,
- (byte) 0x40, (byte) 0x0c, (byte) 0x18, (byte) 0x45, (byte) 0x68, (byte) 0x42, (byte) 0x53, (byte) 0x36,
- (byte) 0x54, (byte) 0x6f, (byte) 0x31, (byte) 0x49, (byte) 0x6c, (byte) 0x54, (byte) 0x4b, (byte) 0x4f,
- (byte) 0x4a, (byte) 0x45, (byte) 0x39, (byte) 0x75, (byte) 0x62, (byte) 0x74, (byte) 0x48, (byte) 0x69,
- (byte) 0x51, (byte) 0x3d, (byte) 0x3d, (byte) 0x0c, (byte) 0x0a, (byte) 0x58, (byte) 0x58, (byte) 0x58,
- (byte) 0xc5, (byte) 0x90, (byte) 0x7a, (byte) 0x67, (byte) 0xc3, (byte) 0xbc, (byte) 0x72, (byte) 0x0c,
- (byte) 0x0c, (byte) 0x58, (byte) 0x58, (byte) 0x58, (byte) 0x54, (byte) 0xc3, (byte) 0xbc, (byte) 0x7a,
- (byte) 0x65, (byte) 0x6b, (byte) 0xc3, (byte) 0xa7, (byte) 0x69, (byte) 0x0c, (byte) 0x0a, (byte) 0x31,
- (byte) 0x39, (byte) 0x37, (byte) 0x33, (byte) 0x2d, (byte) 0x30, (byte) 0x36, (byte) 0x2d, (byte) 0x30,
- (byte) 0x34, (byte) 0x30, (byte) 0x0a, (byte) 0xa0, (byte) 0x03, (byte) 0x02, (byte) 0x01, (byte) 0x00,
- (byte) 0xa0, (byte) 0x03, (byte) 0x02, (byte) 0x01, (byte) 0x01, (byte) 0x03, (byte) 0x82, (byte) 0x01,
- (byte) 0x01, (byte) 0x00, (byte) 0x9f, (byte) 0xa5, (byte) 0x68, (byte) 0xa9, (byte) 0x14, (byte) 0x4c,
- (byte) 0xa4, (byte) 0x5d, (byte) 0x9d, (byte) 0x09, (byte) 0x99, (byte) 0x2e, (byte) 0xe7, (byte) 0x45,
- (byte) 0x2e, (byte) 0x42, (byte) 0x49, (byte) 0x02, (byte) 0x16, (byte) 0xd9, (byte) 0xcb, (byte) 0x90,
- (byte) 0x43, (byte) 0x27, (byte) 0x03, (byte) 0x43, (byte) 0x6d, (byte) 0xb4, (byte) 0x8c, (byte) 0xdc,
- (byte) 0x1c, (byte) 0x77, (byte) 0xd4, (byte) 0x2e, (byte) 0xa1, (byte) 0x40, (byte) 0xe7, (byte) 0xe0,
- (byte) 0x03, (byte) 0x60, (byte) 0x15, (byte) 0xf7, (byte) 0xdb, (byte) 0x03, (byte) 0x5e, (byte) 0xca,
- (byte) 0xe4, (byte) 0x35, (byte) 0xba, (byte) 0x2b, (byte) 0xfd, (byte) 0xe6, (byte) 0xb8, (byte) 0xd8,
- (byte) 0xb7, (byte) 0x2a, (byte) 0x80, (byte) 0xdd, (byte) 0x38, (byte) 0xe0, (byte) 0x8a, (byte) 0x69,
- (byte) 0xad, (byte) 0x67, (byte) 0x60, (byte) 0x65, (byte) 0x42, (byte) 0xc9, (byte) 0x41, (byte) 0x60,
- (byte) 0x94, (byte) 0xde, (byte) 0x84, (byte) 0x54, (byte) 0xad, (byte) 0xb3, (byte) 0xf4, (byte) 0xf7,
- (byte) 0x44, (byte) 0xd5, (byte) 0xf3, (byte) 0xd3, (byte) 0xb6, (byte) 0x87, (byte) 0x8a, (byte) 0x22,
- (byte) 0x38, (byte) 0x00, (byte) 0xcb, (byte) 0xa4, (byte) 0x4f, (byte) 0x96, (byte) 0xc2, (byte) 0x28,
- (byte) 0xc2, (byte) 0x8d, (byte) 0x91, (byte) 0x95, (byte) 0xb4, (byte) 0xea, (byte) 0x00, (byte) 0x59,
- (byte) 0x2e, (byte) 0xec, (byte) 0x78, (byte) 0xd8, (byte) 0x0f, (byte) 0x26, (byte) 0x04, (byte) 0xee,
- (byte) 0xed, (byte) 0x13, (byte) 0xbf, (byte) 0x81, (byte) 0x68, (byte) 0x81, (byte) 0x43, (byte) 0xbe,
- (byte) 0x15, (byte) 0x0e, (byte) 0xba, (byte) 0xf9, (byte) 0x6a, (byte) 0x18, (byte) 0xeb, (byte) 0x95,
- (byte) 0xad, (byte) 0xb4, (byte) 0x0f, (byte) 0x3c, (byte) 0x94, (byte) 0x63, (byte) 0x32, (byte) 0x81,
- (byte) 0x90, (byte) 0xcf, (byte) 0x3f, (byte) 0x95, (byte) 0xff, (byte) 0x8d, (byte) 0x86, (byte) 0xed,
- (byte) 0xe4, (byte) 0x75, (byte) 0xd5, (byte) 0x09, (byte) 0x32, (byte) 0x17, (byte) 0x38, (byte) 0xb2,
- (byte) 0x68, (byte) 0x35, (byte) 0x49, (byte) 0x8c, (byte) 0xa6, (byte) 0xd0, (byte) 0x3e, (byte) 0xde,
- (byte) 0x6e, (byte) 0x47, (byte) 0x68, (byte) 0xbf, (byte) 0x98, (byte) 0x33, (byte) 0xae, (byte) 0x59,
- (byte) 0x9f, (byte) 0xe0, (byte) 0x19, (byte) 0x9b, (byte) 0x5b, (byte) 0x1b, (byte) 0x8f, (byte) 0x74,
- (byte) 0xd2, (byte) 0x9c, (byte) 0x01, (byte) 0x1a, (byte) 0xdf, (byte) 0xaf, (byte) 0xf8, (byte) 0x96,
- (byte) 0x91, (byte) 0xcb, (byte) 0xf8, (byte) 0xbf, (byte) 0x06, (byte) 0xc7, (byte) 0xd5, (byte) 0x17,
- (byte) 0x95, (byte) 0xef, (byte) 0xc5, (byte) 0x97, (byte) 0x37, (byte) 0x1b, (byte) 0xb0, (byte) 0xa1,
- (byte) 0x4f, (byte) 0x9f, (byte) 0x01, (byte) 0x82, (byte) 0x90, (byte) 0x4a, (byte) 0x6a, (byte) 0x04,
- (byte) 0xdb, (byte) 0x31, (byte) 0x1a, (byte) 0x58, (byte) 0xeb, (byte) 0xcd, (byte) 0x68, (byte) 0xe3,
- (byte) 0x68, (byte) 0x0b, (byte) 0xa0, (byte) 0x11, (byte) 0x44, (byte) 0x08, (byte) 0xa0, (byte) 0x5c,
- (byte) 0xfc, (byte) 0x61, (byte) 0x15, (byte) 0x1f, (byte) 0xbb, (byte) 0x22, (byte) 0x87, (byte) 0x18,
- (byte) 0xa3, (byte) 0x07, (byte) 0x9b, (byte) 0x0d, (byte) 0x13, (byte) 0x7c, (byte) 0xff, (byte) 0x30,
- (byte) 0xcf, (byte) 0xf3, (byte) 0xaf, (byte) 0xe4, (byte) 0x45, (byte) 0x05, (byte) 0xa0, (byte) 0x8e,
- (byte) 0x6b, (byte) 0xef, (byte) 0x70, (byte) 0xf5, (byte) 0x4b, (byte) 0x68, (byte) 0x8f, (byte) 0x61,
- (byte) 0xd6, (byte) 0xf5, (byte) 0xa0, (byte) 0x17, (byte) 0x03, (byte) 0x15, (byte) 0x00, (byte) 0x8e,
- (byte) 0xa8, (byte) 0xdf, (byte) 0xa9, (byte) 0x77, (byte) 0xfd, (byte) 0x9b, (byte) 0x4b, (byte) 0x91,
- (byte) 0x89, (byte) 0x34, (byte) 0x84, (byte) 0xf3, (byte) 0x24, (byte) 0xb2, (byte) 0x5a, (byte) 0x39,
- (byte) 0xa9, (byte) 0xf2, (byte) 0x17, (byte) 0xa1, (byte) 0x17, (byte) 0x03, (byte) 0x15, (byte) 0x00,
- (byte) 0xdb, (byte) 0xa2, (byte) 0xfd, (byte) 0xa4, (byte) 0xe7, (byte) 0x65, (byte) 0x2e, (byte) 0x7e,
- (byte) 0xb0, (byte) 0xc8, (byte) 0xfa, (byte) 0x4d, (byte) 0x13, (byte) 0x28, (byte) 0xdf, (byte) 0xb1,
- (byte) 0x58, (byte) 0x3b, (byte) 0x9e, (byte) 0x29, (byte) 0xa2, (byte) 0x17, (byte) 0x03, (byte) 0x15,
- (byte) 0x00, (byte) 0x68, (byte) 0xa0, (byte) 0x17, (byte) 0x18, (byte) 0xb7, (byte) 0xb3, (byte) 0xc3,
- (byte) 0x60, (byte) 0x77, (byte) 0x82, (byte) 0x8d, (byte) 0xf1, (byte) 0x5e, (byte) 0x10, (byte) 0xc3,
- (byte) 0x2d, (byte) 0x78, (byte) 0x2c, (byte) 0x11, (byte) 0x0b
- };
- private static byte[] FCI = new byte[] { (byte) 0x6f, (byte) 0x1a, (byte) 0x84,
- (byte) 0x07, (byte) 0xa0, (byte) 0x00, (byte) 0x00, (byte) 0x01,
- (byte) 0x18, (byte) 0x4e, (byte) 0x43, (byte) 0x85, (byte) 0x0f,
- (byte) 0x50, (byte) 0x0d, (byte) 0x44, (byte) 0x49, (byte) 0x47,
- (byte) 0x53, (byte) 0x49, (byte) 0x47, (byte) 0x20, (byte) 0x43,
- (byte) 0x43, (byte) 0x20, (byte) 0x45, (byte) 0x4e, (byte) 0x43 };
- protected static byte[] FID_EF_C_CH_EKEY = new byte[] { (byte) 0xc0, (byte) 0x01 };
- protected static byte[] FCI_EF_C_CH_EKEY = new byte[] { (byte) 0x6f, (byte) 0x07,
- (byte) 0x80, (byte) 0x02, (byte) 0x07, (byte) 0xd0, (byte) 0x82,
- (byte) 0x01, (byte) 0x01};
- protected static byte[] C_CH_EKEY = new byte[] {
- (byte) 0x30, (byte) 0x82, (byte) 0x05, (byte) 0x7f, (byte) 0x30, (byte) 0x82, (byte) 0x04, (byte) 0x67,
- (byte) 0xa0, (byte) 0x03, (byte) 0x02, (byte) 0x01, (byte) 0x02, (byte) 0x02, (byte) 0x03, (byte) 0x02,
- (byte) 0x05, (byte) 0x51, (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86,
- (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x05,
- (byte) 0x00, (byte) 0x30, (byte) 0x81, (byte) 0xa1, (byte) 0x31, (byte) 0x0b, (byte) 0x30, (byte) 0x09,
- (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x06, (byte) 0x13, (byte) 0x02, (byte) 0x41,
- (byte) 0x54, (byte) 0x31, (byte) 0x48, (byte) 0x30, (byte) 0x46, (byte) 0x06, (byte) 0x03, (byte) 0x55,
- (byte) 0x04, (byte) 0x0a, (byte) 0x0c, (byte) 0x3f, (byte) 0x41, (byte) 0x2d, (byte) 0x54, (byte) 0x72,
- (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x20, (byte) 0x47, (byte) 0x65, (byte) 0x73, (byte) 0x2e,
- (byte) 0x20, (byte) 0x66, (byte) 0x2e, (byte) 0x20, (byte) 0x53, (byte) 0x69, (byte) 0x63, (byte) 0x68,
- (byte) 0x65, (byte) 0x72, (byte) 0x68, (byte) 0x65, (byte) 0x69, (byte) 0x74, (byte) 0x73, (byte) 0x73,
- (byte) 0x79, (byte) 0x73, (byte) 0x74, (byte) 0x65, (byte) 0x6d, (byte) 0x65, (byte) 0x20, (byte) 0x69,
- (byte) 0x6d, (byte) 0x20, (byte) 0x65, (byte) 0x6c, (byte) 0x65, (byte) 0x6b, (byte) 0x74, (byte) 0x72,
- (byte) 0x2e, (byte) 0x20, (byte) 0x44, (byte) 0x61, (byte) 0x74, (byte) 0x65, (byte) 0x6e, (byte) 0x76,
- (byte) 0x65, (byte) 0x72, (byte) 0x6b, (byte) 0x65, (byte) 0x68, (byte) 0x72, (byte) 0x20, (byte) 0x47,
- (byte) 0x6d, (byte) 0x62, (byte) 0x48, (byte) 0x31, (byte) 0x23, (byte) 0x30, (byte) 0x21, (byte) 0x06,
- (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x0b, (byte) 0x0c, (byte) 0x1a, (byte) 0x61, (byte) 0x2d,
- (byte) 0x73, (byte) 0x69, (byte) 0x67, (byte) 0x6e, (byte) 0x2d, (byte) 0x50, (byte) 0x72, (byte) 0x65,
- (byte) 0x6d, (byte) 0x69, (byte) 0x75, (byte) 0x6d, (byte) 0x2d, (byte) 0x54, (byte) 0x65, (byte) 0x73,
- (byte) 0x74, (byte) 0x2d, (byte) 0x45, (byte) 0x6e, (byte) 0x63, (byte) 0x2d, (byte) 0x30, (byte) 0x32,
- (byte) 0x31, (byte) 0x23, (byte) 0x30, (byte) 0x21, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
- (byte) 0x03, (byte) 0x0c, (byte) 0x1a, (byte) 0x61, (byte) 0x2d, (byte) 0x73, (byte) 0x69, (byte) 0x67,
- (byte) 0x6e, (byte) 0x2d, (byte) 0x50, (byte) 0x72, (byte) 0x65, (byte) 0x6d, (byte) 0x69, (byte) 0x75,
- (byte) 0x6d, (byte) 0x2d, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2d, (byte) 0x45,
- (byte) 0x6e, (byte) 0x63, (byte) 0x2d, (byte) 0x30, (byte) 0x32, (byte) 0x30, (byte) 0x1e, (byte) 0x17,
- (byte) 0x0d, (byte) 0x30, (byte) 0x39, (byte) 0x30, (byte) 0x31, (byte) 0x31, (byte) 0x33, (byte) 0x30,
- (byte) 0x39, (byte) 0x34, (byte) 0x35, (byte) 0x31, (byte) 0x32, (byte) 0x5a, (byte) 0x17, (byte) 0x0d,
- (byte) 0x31, (byte) 0x32, (byte) 0x31, (byte) 0x32, (byte) 0x33, (byte) 0x31, (byte) 0x30, (byte) 0x39,
- (byte) 0x34, (byte) 0x35, (byte) 0x31, (byte) 0x32, (byte) 0x5a, (byte) 0x30, (byte) 0x70, (byte) 0x31,
- (byte) 0x0b, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x06,
- (byte) 0x13, (byte) 0x02, (byte) 0x41, (byte) 0x54, (byte) 0x31, (byte) 0x1f, (byte) 0x30, (byte) 0x1d,
- (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x03, (byte) 0x0c, (byte) 0x16, (byte) 0x58,
- (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x6f, (byte) 0x20, (byte) 0x58,
- (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x61, (byte) 0x6b, (byte) 0x72,
- (byte) 0x69, (byte) 0x6e, (byte) 0x67, (byte) 0x65, (byte) 0x72, (byte) 0x31, (byte) 0x17, (byte) 0x30,
- (byte) 0x15, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x04, (byte) 0x0c, (byte) 0x0e,
- (byte) 0x58, (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x61, (byte) 0x6b,
- (byte) 0x72, (byte) 0x69, (byte) 0x6e, (byte) 0x67, (byte) 0x65, (byte) 0x72, (byte) 0x31, (byte) 0x10,
- (byte) 0x30, (byte) 0x0e, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x2a, (byte) 0x0c,
- (byte) 0x07, (byte) 0x58, (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x6f,
- (byte) 0x31, (byte) 0x15, (byte) 0x30, (byte) 0x13, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
- (byte) 0x05, (byte) 0x13, (byte) 0x0c, (byte) 0x39, (byte) 0x37, (byte) 0x30, (byte) 0x30, (byte) 0x31,
- (byte) 0x36, (byte) 0x38, (byte) 0x36, (byte) 0x36, (byte) 0x31, (byte) 0x37, (byte) 0x34, (byte) 0x30,
- (byte) 0x81, (byte) 0xdf, (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86,
- (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x01, (byte) 0x05,
- (byte) 0x00, (byte) 0x03, (byte) 0x81, (byte) 0xcd, (byte) 0x00, (byte) 0x30, (byte) 0x81, (byte) 0xc9,
- (byte) 0x02, (byte) 0x81, (byte) 0xc1, (byte) 0x00, (byte) 0xae, (byte) 0xe6, (byte) 0x07, (byte) 0x1d,
- (byte) 0xb9, (byte) 0x56, (byte) 0x0a, (byte) 0x98, (byte) 0x1a, (byte) 0xde, (byte) 0x52, (byte) 0xf2,
- (byte) 0x77, (byte) 0xdc, (byte) 0x5e, (byte) 0x76, (byte) 0x7f, (byte) 0xe5, (byte) 0xc1, (byte) 0x79,
- (byte) 0xb9, (byte) 0x51, (byte) 0x97, (byte) 0x08, (byte) 0x20, (byte) 0x4e, (byte) 0xa6, (byte) 0xa3,
- (byte) 0xab, (byte) 0xdf, (byte) 0x49, (byte) 0x21, (byte) 0x2b, (byte) 0x65, (byte) 0x4f, (byte) 0x7c,
- (byte) 0x26, (byte) 0xe8, (byte) 0xb9, (byte) 0x47, (byte) 0xdf, (byte) 0x03, (byte) 0x0f, (byte) 0xf7,
- (byte) 0x4e, (byte) 0xf4, (byte) 0x47, (byte) 0x3d, (byte) 0x32, (byte) 0x61, (byte) 0x05, (byte) 0x33,
- (byte) 0x0f, (byte) 0xdc, (byte) 0x97, (byte) 0x3e, (byte) 0xbf, (byte) 0x9b, (byte) 0xf2, (byte) 0xf8,
- (byte) 0xb3, (byte) 0xe2, (byte) 0xc4, (byte) 0x4d, (byte) 0xe0, (byte) 0x48, (byte) 0x6a, (byte) 0x1b,
- (byte) 0xd2, (byte) 0xfe, (byte) 0xfa, (byte) 0xee, (byte) 0x24, (byte) 0x08, (byte) 0xdc, (byte) 0x60,
- (byte) 0x2a, (byte) 0x78, (byte) 0x6c, (byte) 0x1d, (byte) 0xd3, (byte) 0x74, (byte) 0x43, (byte) 0x1f,
- (byte) 0x1f, (byte) 0x4e, (byte) 0xd2, (byte) 0x0f, (byte) 0x89, (byte) 0x3c, (byte) 0xe3, (byte) 0x1e,
- (byte) 0xfa, (byte) 0x31, (byte) 0x5a, (byte) 0xc2, (byte) 0x04, (byte) 0x24, (byte) 0xd1, (byte) 0xe5,
- (byte) 0x51, (byte) 0xc4, (byte) 0x94, (byte) 0x26, (byte) 0xd1, (byte) 0x32, (byte) 0x1e, (byte) 0xdf,
- (byte) 0x64, (byte) 0xaa, (byte) 0xaf, (byte) 0x2c, (byte) 0x85, (byte) 0x25, (byte) 0x88, (byte) 0x8f,
- (byte) 0x80, (byte) 0xe4, (byte) 0x05, (byte) 0x74, (byte) 0xd5, (byte) 0xda, (byte) 0x69, (byte) 0x88,
- (byte) 0x4a, (byte) 0x0c, (byte) 0x6a, (byte) 0x85, (byte) 0x5f, (byte) 0x67, (byte) 0x51, (byte) 0x6c,
- (byte) 0x5c, (byte) 0x1c, (byte) 0x41, (byte) 0x88, (byte) 0x4c, (byte) 0xad, (byte) 0x83, (byte) 0xc9,
- (byte) 0x10, (byte) 0x97, (byte) 0x45, (byte) 0x00, (byte) 0x3f, (byte) 0xbd, (byte) 0x1d, (byte) 0x2f,
- (byte) 0x28, (byte) 0x2e, (byte) 0x78, (byte) 0x97, (byte) 0x05, (byte) 0xa5, (byte) 0x41, (byte) 0x42,
- (byte) 0x37, (byte) 0x08, (byte) 0x60, (byte) 0x0b, (byte) 0x66, (byte) 0xb1, (byte) 0xb8, (byte) 0xdd,
- (byte) 0x98, (byte) 0x03, (byte) 0x03, (byte) 0x33, (byte) 0xc9, (byte) 0x15, (byte) 0xf7, (byte) 0x5b,
- (byte) 0x35, (byte) 0xa5, (byte) 0xaa, (byte) 0x7a, (byte) 0x5e, (byte) 0xe9, (byte) 0xa7, (byte) 0x60,
- (byte) 0xba, (byte) 0xd8, (byte) 0x0d, (byte) 0x6d, (byte) 0xb3, (byte) 0x85, (byte) 0x70, (byte) 0x0e,
- (byte) 0x38, (byte) 0x6f, (byte) 0xf0, (byte) 0xfd, (byte) 0x02, (byte) 0x03, (byte) 0x01, (byte) 0x00,
- (byte) 0x01, (byte) 0xa3, (byte) 0x82, (byte) 0x02, (byte) 0x32, (byte) 0x30, (byte) 0x82, (byte) 0x02,
- (byte) 0x2e, (byte) 0x30, (byte) 0x13, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x23,
- (byte) 0x04, (byte) 0x0c, (byte) 0x30, (byte) 0x0a, (byte) 0x80, (byte) 0x08, (byte) 0x4b, (byte) 0x5d,
- (byte) 0x02, (byte) 0x5c, (byte) 0x6d, (byte) 0x58, (byte) 0x24, (byte) 0x67, (byte) 0x30, (byte) 0x81,
- (byte) 0x84, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05, (byte) 0x05,
- (byte) 0x07, (byte) 0x01, (byte) 0x01, (byte) 0x04, (byte) 0x78, (byte) 0x30, (byte) 0x76, (byte) 0x30,
- (byte) 0x2c, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05, (byte) 0x05,
- (byte) 0x07, (byte) 0x30, (byte) 0x01, (byte) 0x86, (byte) 0x20, (byte) 0x68, (byte) 0x74, (byte) 0x74,
- (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f, (byte) 0x6f, (byte) 0x63, (byte) 0x73, (byte) 0x70,
- (byte) 0x2d, (byte) 0x74, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x2d,
- (byte) 0x74, (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x74,
- (byte) 0x2f, (byte) 0x6f, (byte) 0x63, (byte) 0x73, (byte) 0x70, (byte) 0x30, (byte) 0x46, (byte) 0x06,
- (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05, (byte) 0x05, (byte) 0x07, (byte) 0x30,
- (byte) 0x02, (byte) 0x86, (byte) 0x3a, (byte) 0x68, (byte) 0x74, (byte) 0x74, (byte) 0x70, (byte) 0x3a,
- (byte) 0x2f, (byte) 0x2f, (byte) 0x77, (byte) 0x77, (byte) 0x77, (byte) 0x2e, (byte) 0x61, (byte) 0x2d,
- (byte) 0x74, (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x74,
- (byte) 0x2f, (byte) 0x63, (byte) 0x65, (byte) 0x72, (byte) 0x74, (byte) 0x73, (byte) 0x2f, (byte) 0x61,
- (byte) 0x2d, (byte) 0x73, (byte) 0x69, (byte) 0x67, (byte) 0x6e, (byte) 0x2d, (byte) 0x50, (byte) 0x72,
- (byte) 0x65, (byte) 0x6d, (byte) 0x69, (byte) 0x75, (byte) 0x6d, (byte) 0x2d, (byte) 0x54, (byte) 0x65,
- (byte) 0x73, (byte) 0x74, (byte) 0x2d, (byte) 0x45, (byte) 0x6e, (byte) 0x63, (byte) 0x2d, (byte) 0x30,
- (byte) 0x32, (byte) 0x2e, (byte) 0x63, (byte) 0x72, (byte) 0x74, (byte) 0x30, (byte) 0x81, (byte) 0x93,
- (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x20, (byte) 0x04, (byte) 0x81, (byte) 0x8b,
- (byte) 0x30, (byte) 0x81, (byte) 0x88, (byte) 0x30, (byte) 0x81, (byte) 0x85, (byte) 0x06, (byte) 0x06,
- (byte) 0x2a, (byte) 0x28, (byte) 0x00, (byte) 0x11, (byte) 0x01, (byte) 0x03, (byte) 0x30, (byte) 0x7b,
- (byte) 0x30, (byte) 0x3d, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05,
- (byte) 0x05, (byte) 0x07, (byte) 0x02, (byte) 0x01, (byte) 0x16, (byte) 0x31, (byte) 0x68, (byte) 0x74,
- (byte) 0x74, (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f, (byte) 0x77, (byte) 0x77, (byte) 0x77,
- (byte) 0x2e, (byte) 0x61, (byte) 0x2d, (byte) 0x74, (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74,
- (byte) 0x2e, (byte) 0x61, (byte) 0x74, (byte) 0x2f, (byte) 0x64, (byte) 0x6f, (byte) 0x63, (byte) 0x73,
- (byte) 0x2f, (byte) 0x63, (byte) 0x70, (byte) 0x2f, (byte) 0x61, (byte) 0x2d, (byte) 0x73, (byte) 0x69,
- (byte) 0x67, (byte) 0x6e, (byte) 0x2d, (byte) 0x70, (byte) 0x72, (byte) 0x65, (byte) 0x6d, (byte) 0x69,
- (byte) 0x75, (byte) 0x6d, (byte) 0x2d, (byte) 0x74, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x30,
- (byte) 0x3a, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05, (byte) 0x05,
- (byte) 0x07, (byte) 0x02, (byte) 0x02, (byte) 0x30, (byte) 0x2e, (byte) 0x1a, (byte) 0x2c, (byte) 0x44,
- (byte) 0x69, (byte) 0x65, (byte) 0x73, (byte) 0x65, (byte) 0x73, (byte) 0x20, (byte) 0x5a, (byte) 0x65,
- (byte) 0x72, (byte) 0x74, (byte) 0x69, (byte) 0x66, (byte) 0x69, (byte) 0x6b, (byte) 0x61, (byte) 0x74,
- (byte) 0x20, (byte) 0x64, (byte) 0x69, (byte) 0x65, (byte) 0x6e, (byte) 0x74, (byte) 0x20, (byte) 0x6e,
- (byte) 0x75, (byte) 0x72, (byte) 0x20, (byte) 0x7a, (byte) 0x75, (byte) 0x20, (byte) 0x54, (byte) 0x65,
- (byte) 0x73, (byte) 0x74, (byte) 0x7a, (byte) 0x77, (byte) 0x65, (byte) 0x63, (byte) 0x6b, (byte) 0x65,
- (byte) 0x6e, (byte) 0x20, (byte) 0x21, (byte) 0x30, (byte) 0x81, (byte) 0xa4, (byte) 0x06, (byte) 0x03,
- (byte) 0x55, (byte) 0x1d, (byte) 0x1f, (byte) 0x04, (byte) 0x81, (byte) 0x9c, (byte) 0x30, (byte) 0x81,
- (byte) 0x99, (byte) 0x30, (byte) 0x81, (byte) 0x96, (byte) 0xa0, (byte) 0x81, (byte) 0x93, (byte) 0xa0,
- (byte) 0x81, (byte) 0x90, (byte) 0x86, (byte) 0x81, (byte) 0x8d, (byte) 0x6c, (byte) 0x64, (byte) 0x61,
- (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f, (byte) 0x6c, (byte) 0x64, (byte) 0x61, (byte) 0x70,
- (byte) 0x2d, (byte) 0x74, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x2d,
- (byte) 0x74, (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x74,
- (byte) 0x2f, (byte) 0x6f, (byte) 0x75, (byte) 0x3d, (byte) 0x61, (byte) 0x2d, (byte) 0x73, (byte) 0x69,
- (byte) 0x67, (byte) 0x6e, (byte) 0x2d, (byte) 0x50, (byte) 0x72, (byte) 0x65, (byte) 0x6d, (byte) 0x69,
- (byte) 0x75, (byte) 0x6d, (byte) 0x2d, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2d,
- (byte) 0x45, (byte) 0x6e, (byte) 0x63, (byte) 0x2d, (byte) 0x30, (byte) 0x32, (byte) 0x2c, (byte) 0x6f,
- (byte) 0x3d, (byte) 0x41, (byte) 0x2d, (byte) 0x54, (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74,
- (byte) 0x2c, (byte) 0x63, (byte) 0x3d, (byte) 0x41, (byte) 0x54, (byte) 0x3f, (byte) 0x63, (byte) 0x65,
- (byte) 0x72, (byte) 0x74, (byte) 0x69, (byte) 0x66, (byte) 0x69, (byte) 0x63, (byte) 0x61, (byte) 0x74,
- (byte) 0x65, (byte) 0x72, (byte) 0x65, (byte) 0x76, (byte) 0x6f, (byte) 0x63, (byte) 0x61, (byte) 0x74,
- (byte) 0x69, (byte) 0x6f, (byte) 0x6e, (byte) 0x6c, (byte) 0x69, (byte) 0x73, (byte) 0x74, (byte) 0x3f,
- (byte) 0x62, (byte) 0x61, (byte) 0x73, (byte) 0x65, (byte) 0x3f, (byte) 0x6f, (byte) 0x62, (byte) 0x6a,
- (byte) 0x65, (byte) 0x63, (byte) 0x74, (byte) 0x63, (byte) 0x6c, (byte) 0x61, (byte) 0x73, (byte) 0x73,
- (byte) 0x3d, (byte) 0x65, (byte) 0x69, (byte) 0x64, (byte) 0x43, (byte) 0x65, (byte) 0x72, (byte) 0x74,
- (byte) 0x69, (byte) 0x66, (byte) 0x69, (byte) 0x63, (byte) 0x61, (byte) 0x74, (byte) 0x69, (byte) 0x6f,
- (byte) 0x6e, (byte) 0x41, (byte) 0x75, (byte) 0x74, (byte) 0x68, (byte) 0x6f, (byte) 0x72, (byte) 0x69,
- (byte) 0x74, (byte) 0x79, (byte) 0x30, (byte) 0x11, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d,
- (byte) 0x0e, (byte) 0x04, (byte) 0x0a, (byte) 0x04, (byte) 0x08, (byte) 0x4a, (byte) 0x24, (byte) 0x43,
- (byte) 0xc0, (byte) 0x85, (byte) 0x2a, (byte) 0xb4, (byte) 0x51, (byte) 0x30, (byte) 0x0e, (byte) 0x06,
- (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x0f, (byte) 0x01, (byte) 0x01, (byte) 0xff, (byte) 0x04,
- (byte) 0x04, (byte) 0x03, (byte) 0x02, (byte) 0x04, (byte) 0xb0, (byte) 0x30, (byte) 0x25, (byte) 0x06,
- (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x11, (byte) 0x04, (byte) 0x1e, (byte) 0x30, (byte) 0x1c,
- (byte) 0x81, (byte) 0x1a, (byte) 0x74, (byte) 0x68, (byte) 0x6f, (byte) 0x6d, (byte) 0x61, (byte) 0x73,
- (byte) 0x2e, (byte) 0x72, (byte) 0x6f, (byte) 0x65, (byte) 0x73, (byte) 0x73, (byte) 0x6c, (byte) 0x65,
- (byte) 0x72, (byte) 0x40, (byte) 0x65, (byte) 0x67, (byte) 0x69, (byte) 0x7a, (byte) 0x2e, (byte) 0x67,
- (byte) 0x76, (byte) 0x2e, (byte) 0x61, (byte) 0x74, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03,
- (byte) 0x55, (byte) 0x1d, (byte) 0x13, (byte) 0x04, (byte) 0x02, (byte) 0x30, (byte) 0x00, (byte) 0x30,
- (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86, (byte) 0x48, (byte) 0x86, (byte) 0xf7,
- (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x05, (byte) 0x00, (byte) 0x03, (byte) 0x82,
- (byte) 0x01, (byte) 0x01, (byte) 0x00, (byte) 0x4a, (byte) 0x36, (byte) 0x02, (byte) 0xb3, (byte) 0xab,
- (byte) 0x02, (byte) 0xe9, (byte) 0xe1, (byte) 0xaf, (byte) 0x3f, (byte) 0xd5, (byte) 0xcd, (byte) 0x3d,
- (byte) 0x51, (byte) 0x08, (byte) 0xb8, (byte) 0x73, (byte) 0x23, (byte) 0x68, (byte) 0x0c, (byte) 0x22,
- (byte) 0x32, (byte) 0xcd, (byte) 0xbe, (byte) 0xc8, (byte) 0x77, (byte) 0xbc, (byte) 0x47, (byte) 0x37,
- (byte) 0xdd, (byte) 0x89, (byte) 0x7c, (byte) 0x22, (byte) 0x24, (byte) 0x2f, (byte) 0x23, (byte) 0xea,
- (byte) 0x3e, (byte) 0xc2, (byte) 0xf4, (byte) 0x59, (byte) 0x78, (byte) 0xa6, (byte) 0xbe, (byte) 0xcd,
- (byte) 0x71, (byte) 0xaa, (byte) 0xb5, (byte) 0xbc, (byte) 0xe3, (byte) 0xbc, (byte) 0x3f, (byte) 0xf1,
- (byte) 0xfa, (byte) 0x1a, (byte) 0x43, (byte) 0x2b, (byte) 0x91, (byte) 0x35, (byte) 0x67, (byte) 0xa5,
- (byte) 0x62, (byte) 0x9d, (byte) 0x55, (byte) 0x85, (byte) 0xe0, (byte) 0x3f, (byte) 0xed, (byte) 0x00,
- (byte) 0x67, (byte) 0x80, (byte) 0x6a, (byte) 0xfb, (byte) 0x46, (byte) 0x8a, (byte) 0xed, (byte) 0x48,
- (byte) 0x03, (byte) 0xe7, (byte) 0x9d, (byte) 0x5c, (byte) 0xac, (byte) 0xdf, (byte) 0xec, (byte) 0x2d,
- (byte) 0x53, (byte) 0x8b, (byte) 0x01, (byte) 0xdb, (byte) 0x14, (byte) 0x91, (byte) 0x21, (byte) 0xaf,
- (byte) 0xa7, (byte) 0x91, (byte) 0x69, (byte) 0x7e, (byte) 0x97, (byte) 0x68, (byte) 0xcc, (byte) 0x2a,
- (byte) 0x06, (byte) 0x1a, (byte) 0xbc, (byte) 0x53, (byte) 0x35, (byte) 0xde, (byte) 0xd7, (byte) 0x62,
- (byte) 0x12, (byte) 0xbd, (byte) 0x54, (byte) 0xb5, (byte) 0x4c, (byte) 0x3c, (byte) 0xaf, (byte) 0x55,
- (byte) 0xa4, (byte) 0x5b, (byte) 0x28, (byte) 0x61, (byte) 0x68, (byte) 0x03, (byte) 0xc6, (byte) 0x72,
- (byte) 0xc0, (byte) 0xa2, (byte) 0x3f, (byte) 0x84, (byte) 0x02, (byte) 0xf8, (byte) 0x3d, (byte) 0x70,
- (byte) 0x3f, (byte) 0xde, (byte) 0x9d, (byte) 0x6a, (byte) 0x71, (byte) 0x16, (byte) 0x87, (byte) 0x9d,
- (byte) 0x93, (byte) 0x3d, (byte) 0x46, (byte) 0x41, (byte) 0xa9, (byte) 0x6a, (byte) 0xca, (byte) 0x87,
- (byte) 0xd4, (byte) 0xd1, (byte) 0x3f, (byte) 0x1d, (byte) 0x6e, (byte) 0x6a, (byte) 0xbf, (byte) 0x02,
- (byte) 0x9b, (byte) 0xfb, (byte) 0x4a, (byte) 0x47, (byte) 0xe0, (byte) 0x20, (byte) 0x4a, (byte) 0x2d,
- (byte) 0x5a, (byte) 0x0c, (byte) 0x6b, (byte) 0x25, (byte) 0xd6, (byte) 0x2d, (byte) 0xd4, (byte) 0x53,
- (byte) 0x08, (byte) 0x41, (byte) 0xa9, (byte) 0x16, (byte) 0xa2, (byte) 0xa0, (byte) 0xef, (byte) 0x13,
- (byte) 0xa8, (byte) 0xec, (byte) 0x7e, (byte) 0x99, (byte) 0x15, (byte) 0xf9, (byte) 0x1a, (byte) 0x18,
- (byte) 0x5e, (byte) 0x75, (byte) 0xc7, (byte) 0x5d, (byte) 0x40, (byte) 0xd4, (byte) 0x84, (byte) 0x4a,
- (byte) 0xd2, (byte) 0xf7, (byte) 0x7c, (byte) 0x65, (byte) 0x12, (byte) 0xc7, (byte) 0xae, (byte) 0xbc,
- (byte) 0x9d, (byte) 0x3e, (byte) 0xce, (byte) 0x42, (byte) 0xfe, (byte) 0xe4, (byte) 0x98, (byte) 0x10,
- (byte) 0x63, (byte) 0x0d, (byte) 0xaa, (byte) 0x2d, (byte) 0x73, (byte) 0x7d, (byte) 0x46, (byte) 0x19,
- (byte) 0xca, (byte) 0x78, (byte) 0x94, (byte) 0xe5, (byte) 0x11, (byte) 0x83, (byte) 0x87, (byte) 0xb2,
- (byte) 0xf7, (byte) 0x59, (byte) 0x90, (byte) 0x47, (byte) 0x86, (byte) 0x57, (byte) 0xcf, (byte) 0xc7,
- (byte) 0x7b, (byte) 0x8f, (byte) 0xac, (byte) 0x20, (byte) 0xbd, (byte) 0x46, (byte) 0xea, (byte) 0xa2,
- (byte) 0x10, (byte) 0xe1, (byte) 0x72, (byte) 0x3e, (byte) 0xe3, (byte) 0x72, (byte) 0x20, (byte) 0x24,
- (byte) 0xa5, (byte) 0x2f, (byte) 0xc5
- };
- protected static final int KID_PIN_DEC = 0x81;
-
- protected static byte[] FID_EF_INFOBOX = new byte[] { (byte) 0xc0, (byte) 0x02 };
- protected static byte[] FCI_EF_INFOBOX = new byte[] { (byte) 0x6f, (byte) 0x07,
- (byte) 0x80, (byte) 0x02, (byte) 0x05, (byte) 0xdc, (byte) 0x82,
- (byte) 0x01, (byte) 0x01};
-
- protected byte[] EF_INFOBOX = new byte[1500];
-
- protected byte[] EF_C_CH_EKEY = new byte[2000];
-
- public ACOSApplDEC() {
- System.arraycopy(C_CH_EKEY, 0, EF_C_CH_EKEY, 0, C_CH_EKEY.length);
- putFile(new File(FID_EF_C_CH_EKEY, EF_C_CH_EKEY, FCI_EF_C_CH_EKEY));
- try {
- pins.put(KID_PIN_DEC, new PIN("1234\0\0\0\0".getBytes("ASCII"), KID_PIN_DEC, 10, PIN.STATE_RESET));
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public byte[] getAID() {
- return AID_DEC;
- }
-
- @Override
- public byte[] getFID() {
- return FID_DEC;
- }
-
- @Override
- public byte[] getFCI() {
- return FCI;
- }
-
- public void clearInfobox() {
- Arrays.fill(EF_INFOBOX, (byte) 0x00);
- }
-
- public void setInfoboxHeader(byte b) {
- EF_INFOBOX[0] = b;
- }
-
- public void clearCert() {
- Arrays.fill(EF_C_CH_EKEY, (byte) 0x00);
- }
-
-
-} \ No newline at end of file
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplSIG.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplSIG.java
deleted file mode 100644
index 6ab5903a..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSApplSIG.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.Random;
-
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.File;
-import at.gv.egiz.smcc.PIN;
-
-@SuppressWarnings("restriction")
-public abstract class ACOSApplSIG extends ACOSAppl {
-
- private static byte[] FCI = new byte[] { (byte) 0x6f, (byte) 0x1a,
- (byte) 0x84, (byte) 0x07, (byte) 0xa0, (byte) 0x00, (byte) 0x00,
- (byte) 0x01, (byte) 0x18, (byte) 0x45, (byte) 0x43, (byte) 0x85,
- (byte) 0x0f, (byte) 0x50, (byte) 0x0d, (byte) 0x44, (byte) 0x49,
- (byte) 0x47, (byte) 0x53, (byte) 0x49, (byte) 0x47, (byte) 0x20,
- (byte) 0x43, (byte) 0x43, (byte) 0x20, (byte) 0x45, (byte) 0x43,
- (byte) 0x43 };
- protected static byte[] FID_EF_C_CH_DS = new byte[] { (byte) 0xc0, (byte) 0x02 };
- protected static byte[] FCI_EF_C_CH_DS = new byte[] { (byte) 0x6f, (byte) 0x07,
- (byte) 0x80, (byte) 0x02, (byte) 0x07, (byte) 0xd0, (byte) 0x82,
- (byte) 0x01, (byte) 0x01 };
- protected static byte[] C_CH_DS = new byte[] {
- (byte) 0x30, (byte) 0x82, (byte) 0x05, (byte) 0x2b, (byte) 0x30, (byte) 0x82, (byte) 0x04, (byte) 0x13,
- (byte) 0xa0, (byte) 0x03, (byte) 0x02, (byte) 0x01, (byte) 0x02, (byte) 0x02, (byte) 0x03, (byte) 0x02,
- (byte) 0x05, (byte) 0x52, (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86,
- (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x05,
- (byte) 0x00, (byte) 0x30, (byte) 0x81, (byte) 0xa1, (byte) 0x31, (byte) 0x0b, (byte) 0x30, (byte) 0x09,
- (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x06, (byte) 0x13, (byte) 0x02, (byte) 0x41,
- (byte) 0x54, (byte) 0x31, (byte) 0x48, (byte) 0x30, (byte) 0x46, (byte) 0x06, (byte) 0x03, (byte) 0x55,
- (byte) 0x04, (byte) 0x0a, (byte) 0x0c, (byte) 0x3f, (byte) 0x41, (byte) 0x2d, (byte) 0x54, (byte) 0x72,
- (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x20, (byte) 0x47, (byte) 0x65, (byte) 0x73, (byte) 0x2e,
- (byte) 0x20, (byte) 0x66, (byte) 0x2e, (byte) 0x20, (byte) 0x53, (byte) 0x69, (byte) 0x63, (byte) 0x68,
- (byte) 0x65, (byte) 0x72, (byte) 0x68, (byte) 0x65, (byte) 0x69, (byte) 0x74, (byte) 0x73, (byte) 0x73,
- (byte) 0x79, (byte) 0x73, (byte) 0x74, (byte) 0x65, (byte) 0x6d, (byte) 0x65, (byte) 0x20, (byte) 0x69,
- (byte) 0x6d, (byte) 0x20, (byte) 0x65, (byte) 0x6c, (byte) 0x65, (byte) 0x6b, (byte) 0x74, (byte) 0x72,
- (byte) 0x2e, (byte) 0x20, (byte) 0x44, (byte) 0x61, (byte) 0x74, (byte) 0x65, (byte) 0x6e, (byte) 0x76,
- (byte) 0x65, (byte) 0x72, (byte) 0x6b, (byte) 0x65, (byte) 0x68, (byte) 0x72, (byte) 0x20, (byte) 0x47,
- (byte) 0x6d, (byte) 0x62, (byte) 0x48, (byte) 0x31, (byte) 0x23, (byte) 0x30, (byte) 0x21, (byte) 0x06,
- (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x0b, (byte) 0x0c, (byte) 0x1a, (byte) 0x61, (byte) 0x2d,
- (byte) 0x73, (byte) 0x69, (byte) 0x67, (byte) 0x6e, (byte) 0x2d, (byte) 0x50, (byte) 0x72, (byte) 0x65,
- (byte) 0x6d, (byte) 0x69, (byte) 0x75, (byte) 0x6d, (byte) 0x2d, (byte) 0x54, (byte) 0x65, (byte) 0x73,
- (byte) 0x74, (byte) 0x2d, (byte) 0x53, (byte) 0x69, (byte) 0x67, (byte) 0x2d, (byte) 0x30, (byte) 0x32,
- (byte) 0x31, (byte) 0x23, (byte) 0x30, (byte) 0x21, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
- (byte) 0x03, (byte) 0x0c, (byte) 0x1a, (byte) 0x61, (byte) 0x2d, (byte) 0x73, (byte) 0x69, (byte) 0x67,
- (byte) 0x6e, (byte) 0x2d, (byte) 0x50, (byte) 0x72, (byte) 0x65, (byte) 0x6d, (byte) 0x69, (byte) 0x75,
- (byte) 0x6d, (byte) 0x2d, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2d, (byte) 0x53,
- (byte) 0x69, (byte) 0x67, (byte) 0x2d, (byte) 0x30, (byte) 0x32, (byte) 0x30, (byte) 0x1e, (byte) 0x17,
- (byte) 0x0d, (byte) 0x30, (byte) 0x39, (byte) 0x30, (byte) 0x31, (byte) 0x31, (byte) 0x33, (byte) 0x30,
- (byte) 0x39, (byte) 0x34, (byte) 0x35, (byte) 0x31, (byte) 0x32, (byte) 0x5a, (byte) 0x17, (byte) 0x0d,
- (byte) 0x31, (byte) 0x32, (byte) 0x31, (byte) 0x32, (byte) 0x33, (byte) 0x31, (byte) 0x30, (byte) 0x39,
- (byte) 0x34, (byte) 0x35, (byte) 0x31, (byte) 0x32, (byte) 0x5a, (byte) 0x30, (byte) 0x70, (byte) 0x31,
- (byte) 0x0b, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x06,
- (byte) 0x13, (byte) 0x02, (byte) 0x41, (byte) 0x54, (byte) 0x31, (byte) 0x1f, (byte) 0x30, (byte) 0x1d,
- (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x03, (byte) 0x0c, (byte) 0x16, (byte) 0x58,
- (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x6f, (byte) 0x20, (byte) 0x58,
- (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x61, (byte) 0x6b, (byte) 0x72,
- (byte) 0x69, (byte) 0x6e, (byte) 0x67, (byte) 0x65, (byte) 0x72, (byte) 0x31, (byte) 0x17, (byte) 0x30,
- (byte) 0x15, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x04, (byte) 0x0c, (byte) 0x0e,
- (byte) 0x58, (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x61, (byte) 0x6b,
- (byte) 0x72, (byte) 0x69, (byte) 0x6e, (byte) 0x67, (byte) 0x65, (byte) 0x72, (byte) 0x31, (byte) 0x10,
- (byte) 0x30, (byte) 0x0e, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x2a, (byte) 0x0c,
- (byte) 0x07, (byte) 0x58, (byte) 0x58, (byte) 0x58, (byte) 0x4f, (byte) 0x74, (byte) 0x74, (byte) 0x6f,
- (byte) 0x31, (byte) 0x15, (byte) 0x30, (byte) 0x13, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
- (byte) 0x05, (byte) 0x13, (byte) 0x0c, (byte) 0x39, (byte) 0x37, (byte) 0x30, (byte) 0x30, (byte) 0x31,
- (byte) 0x36, (byte) 0x38, (byte) 0x36, (byte) 0x36, (byte) 0x31, (byte) 0x37, (byte) 0x34, (byte) 0x30,
- (byte) 0x59, (byte) 0x30, (byte) 0x13, (byte) 0x06, (byte) 0x07, (byte) 0x2a, (byte) 0x86, (byte) 0x48,
- (byte) 0xce, (byte) 0x3d, (byte) 0x02, (byte) 0x01, (byte) 0x06, (byte) 0x08, (byte) 0x2a, (byte) 0x86,
- (byte) 0x48, (byte) 0xce, (byte) 0x3d, (byte) 0x03, (byte) 0x01, (byte) 0x01, (byte) 0x03, (byte) 0x42,
- (byte) 0x00, (byte) 0x04, (byte) 0x6b, (byte) 0xde, (byte) 0x5f, (byte) 0x5e, (byte) 0xd5, (byte) 0x2b,
- (byte) 0xbe, (byte) 0x1e, (byte) 0xb9, (byte) 0x82, (byte) 0x19, (byte) 0x75, (byte) 0xf4, (byte) 0x3b,
- (byte) 0xc1, (byte) 0x34, (byte) 0xe9, (byte) 0xdb, (byte) 0x0b, (byte) 0x25, (byte) 0x31, (byte) 0x33,
- (byte) 0xfa, (byte) 0x8b, (byte) 0x72, (byte) 0xd4, (byte) 0x9f, (byte) 0x21, (byte) 0xf5, (byte) 0x62,
- (byte) 0xb9, (byte) 0xf6, (byte) 0x50, (byte) 0xdb, (byte) 0xcc, (byte) 0xbf, (byte) 0x43, (byte) 0xb9,
- (byte) 0x5e, (byte) 0x75, (byte) 0x2a, (byte) 0x37, (byte) 0xbe, (byte) 0x32, (byte) 0xa6, (byte) 0x83,
- (byte) 0xb1, (byte) 0x5c, (byte) 0xc3, (byte) 0x9d, (byte) 0xf0, (byte) 0xab, (byte) 0xe6, (byte) 0x8f,
- (byte) 0xe4, (byte) 0x97, (byte) 0x83, (byte) 0x57, (byte) 0x89, (byte) 0xe0, (byte) 0x13, (byte) 0xe3,
- (byte) 0x13, (byte) 0xa8, (byte) 0xa3, (byte) 0x82, (byte) 0x02, (byte) 0x65, (byte) 0x30, (byte) 0x82,
- (byte) 0x02, (byte) 0x61, (byte) 0x30, (byte) 0x13, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d,
- (byte) 0x23, (byte) 0x04, (byte) 0x0c, (byte) 0x30, (byte) 0x0a, (byte) 0x80, (byte) 0x08, (byte) 0x46,
- (byte) 0x06, (byte) 0x9f, (byte) 0x8e, (byte) 0x41, (byte) 0x8e, (byte) 0x15, (byte) 0xbd, (byte) 0x30,
- (byte) 0x27, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05, (byte) 0x05,
- (byte) 0x07, (byte) 0x01, (byte) 0x03, (byte) 0x01, (byte) 0x01, (byte) 0xff, (byte) 0x04, (byte) 0x18,
- (byte) 0x30, (byte) 0x16, (byte) 0x30, (byte) 0x08, (byte) 0x06, (byte) 0x06, (byte) 0x04, (byte) 0x00,
- (byte) 0x8e, (byte) 0x46, (byte) 0x01, (byte) 0x01, (byte) 0x30, (byte) 0x0a, (byte) 0x06, (byte) 0x08,
- (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05, (byte) 0x05, (byte) 0x07, (byte) 0x0b, (byte) 0x01,
- (byte) 0x30, (byte) 0x81, (byte) 0x84, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01,
- (byte) 0x05, (byte) 0x05, (byte) 0x07, (byte) 0x01, (byte) 0x01, (byte) 0x04, (byte) 0x78, (byte) 0x30,
- (byte) 0x76, (byte) 0x30, (byte) 0x2c, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01,
- (byte) 0x05, (byte) 0x05, (byte) 0x07, (byte) 0x30, (byte) 0x01, (byte) 0x86, (byte) 0x20, (byte) 0x68,
- (byte) 0x74, (byte) 0x74, (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f, (byte) 0x6f, (byte) 0x63,
- (byte) 0x73, (byte) 0x70, (byte) 0x2d, (byte) 0x74, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2e,
- (byte) 0x61, (byte) 0x2d, (byte) 0x74, (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x2e,
- (byte) 0x61, (byte) 0x74, (byte) 0x2f, (byte) 0x6f, (byte) 0x63, (byte) 0x73, (byte) 0x70, (byte) 0x30,
- (byte) 0x46, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01, (byte) 0x05, (byte) 0x05,
- (byte) 0x07, (byte) 0x30, (byte) 0x02, (byte) 0x86, (byte) 0x3a, (byte) 0x68, (byte) 0x74, (byte) 0x74,
- (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f, (byte) 0x77, (byte) 0x77, (byte) 0x77, (byte) 0x2e,
- (byte) 0x61, (byte) 0x2d, (byte) 0x74, (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x2e,
- (byte) 0x61, (byte) 0x74, (byte) 0x2f, (byte) 0x63, (byte) 0x65, (byte) 0x72, (byte) 0x74, (byte) 0x73,
- (byte) 0x2f, (byte) 0x61, (byte) 0x2d, (byte) 0x73, (byte) 0x69, (byte) 0x67, (byte) 0x6e, (byte) 0x2d,
- (byte) 0x50, (byte) 0x72, (byte) 0x65, (byte) 0x6d, (byte) 0x69, (byte) 0x75, (byte) 0x6d, (byte) 0x2d,
- (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2d, (byte) 0x53, (byte) 0x69, (byte) 0x67,
- (byte) 0x2d, (byte) 0x30, (byte) 0x32, (byte) 0x2e, (byte) 0x63, (byte) 0x72, (byte) 0x74, (byte) 0x30,
- (byte) 0x81, (byte) 0x9d, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x20, (byte) 0x04,
- (byte) 0x81, (byte) 0x95, (byte) 0x30, (byte) 0x81, (byte) 0x92, (byte) 0x30, (byte) 0x81, (byte) 0x85,
- (byte) 0x06, (byte) 0x06, (byte) 0x2a, (byte) 0x28, (byte) 0x00, (byte) 0x11, (byte) 0x01, (byte) 0x03,
- (byte) 0x30, (byte) 0x7b, (byte) 0x30, (byte) 0x3d, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06,
- (byte) 0x01, (byte) 0x05, (byte) 0x05, (byte) 0x07, (byte) 0x02, (byte) 0x01, (byte) 0x16, (byte) 0x31,
- (byte) 0x68, (byte) 0x74, (byte) 0x74, (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f, (byte) 0x77,
- (byte) 0x77, (byte) 0x77, (byte) 0x2e, (byte) 0x61, (byte) 0x2d, (byte) 0x74, (byte) 0x72, (byte) 0x75,
- (byte) 0x73, (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x74, (byte) 0x2f, (byte) 0x64, (byte) 0x6f,
- (byte) 0x63, (byte) 0x73, (byte) 0x2f, (byte) 0x63, (byte) 0x70, (byte) 0x2f, (byte) 0x61, (byte) 0x2d,
- (byte) 0x73, (byte) 0x69, (byte) 0x67, (byte) 0x6e, (byte) 0x2d, (byte) 0x70, (byte) 0x72, (byte) 0x65,
- (byte) 0x6d, (byte) 0x69, (byte) 0x75, (byte) 0x6d, (byte) 0x2d, (byte) 0x74, (byte) 0x65, (byte) 0x73,
- (byte) 0x74, (byte) 0x30, (byte) 0x3a, (byte) 0x06, (byte) 0x08, (byte) 0x2b, (byte) 0x06, (byte) 0x01,
- (byte) 0x05, (byte) 0x05, (byte) 0x07, (byte) 0x02, (byte) 0x02, (byte) 0x30, (byte) 0x2e, (byte) 0x1a,
- (byte) 0x2c, (byte) 0x44, (byte) 0x69, (byte) 0x65, (byte) 0x73, (byte) 0x65, (byte) 0x73, (byte) 0x20,
- (byte) 0x5a, (byte) 0x65, (byte) 0x72, (byte) 0x74, (byte) 0x69, (byte) 0x66, (byte) 0x69, (byte) 0x6b,
- (byte) 0x61, (byte) 0x74, (byte) 0x20, (byte) 0x64, (byte) 0x69, (byte) 0x65, (byte) 0x6e, (byte) 0x74,
- (byte) 0x20, (byte) 0x6e, (byte) 0x75, (byte) 0x72, (byte) 0x20, (byte) 0x7a, (byte) 0x75, (byte) 0x20,
- (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x7a, (byte) 0x77, (byte) 0x65, (byte) 0x63,
- (byte) 0x6b, (byte) 0x65, (byte) 0x6e, (byte) 0x20, (byte) 0x21, (byte) 0x30, (byte) 0x08, (byte) 0x06,
- (byte) 0x06, (byte) 0x04, (byte) 0x00, (byte) 0x8b, (byte) 0x30, (byte) 0x01, (byte) 0x01, (byte) 0x30,
- (byte) 0x81, (byte) 0xa4, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x1f, (byte) 0x04,
- (byte) 0x81, (byte) 0x9c, (byte) 0x30, (byte) 0x81, (byte) 0x99, (byte) 0x30, (byte) 0x81, (byte) 0x96,
- (byte) 0xa0, (byte) 0x81, (byte) 0x93, (byte) 0xa0, (byte) 0x81, (byte) 0x90, (byte) 0x86, (byte) 0x81,
- (byte) 0x8d, (byte) 0x6c, (byte) 0x64, (byte) 0x61, (byte) 0x70, (byte) 0x3a, (byte) 0x2f, (byte) 0x2f,
- (byte) 0x6c, (byte) 0x64, (byte) 0x61, (byte) 0x70, (byte) 0x2d, (byte) 0x74, (byte) 0x65, (byte) 0x73,
- (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x2d, (byte) 0x74, (byte) 0x72, (byte) 0x75, (byte) 0x73,
- (byte) 0x74, (byte) 0x2e, (byte) 0x61, (byte) 0x74, (byte) 0x2f, (byte) 0x6f, (byte) 0x75, (byte) 0x3d,
- (byte) 0x61, (byte) 0x2d, (byte) 0x73, (byte) 0x69, (byte) 0x67, (byte) 0x6e, (byte) 0x2d, (byte) 0x50,
- (byte) 0x72, (byte) 0x65, (byte) 0x6d, (byte) 0x69, (byte) 0x75, (byte) 0x6d, (byte) 0x2d, (byte) 0x54,
- (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x2d, (byte) 0x53, (byte) 0x69, (byte) 0x67, (byte) 0x2d,
- (byte) 0x30, (byte) 0x32, (byte) 0x2c, (byte) 0x6f, (byte) 0x3d, (byte) 0x41, (byte) 0x2d, (byte) 0x54,
- (byte) 0x72, (byte) 0x75, (byte) 0x73, (byte) 0x74, (byte) 0x2c, (byte) 0x63, (byte) 0x3d, (byte) 0x41,
- (byte) 0x54, (byte) 0x3f, (byte) 0x63, (byte) 0x65, (byte) 0x72, (byte) 0x74, (byte) 0x69, (byte) 0x66,
- (byte) 0x69, (byte) 0x63, (byte) 0x61, (byte) 0x74, (byte) 0x65, (byte) 0x72, (byte) 0x65, (byte) 0x76,
- (byte) 0x6f, (byte) 0x63, (byte) 0x61, (byte) 0x74, (byte) 0x69, (byte) 0x6f, (byte) 0x6e, (byte) 0x6c,
- (byte) 0x69, (byte) 0x73, (byte) 0x74, (byte) 0x3f, (byte) 0x62, (byte) 0x61, (byte) 0x73, (byte) 0x65,
- (byte) 0x3f, (byte) 0x6f, (byte) 0x62, (byte) 0x6a, (byte) 0x65, (byte) 0x63, (byte) 0x74, (byte) 0x63,
- (byte) 0x6c, (byte) 0x61, (byte) 0x73, (byte) 0x73, (byte) 0x3d, (byte) 0x65, (byte) 0x69, (byte) 0x64,
- (byte) 0x43, (byte) 0x65, (byte) 0x72, (byte) 0x74, (byte) 0x69, (byte) 0x66, (byte) 0x69, (byte) 0x63,
- (byte) 0x61, (byte) 0x74, (byte) 0x69, (byte) 0x6f, (byte) 0x6e, (byte) 0x41, (byte) 0x75, (byte) 0x74,
- (byte) 0x68, (byte) 0x6f, (byte) 0x72, (byte) 0x69, (byte) 0x74, (byte) 0x79, (byte) 0x30, (byte) 0x11,
- (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x0e, (byte) 0x04, (byte) 0x0a, (byte) 0x04,
- (byte) 0x08, (byte) 0x46, (byte) 0x08, (byte) 0xda, (byte) 0x9e, (byte) 0x68, (byte) 0xf8, (byte) 0xe5,
- (byte) 0x81, (byte) 0x30, (byte) 0x0e, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x0f,
- (byte) 0x01, (byte) 0x01, (byte) 0xff, (byte) 0x04, (byte) 0x04, (byte) 0x03, (byte) 0x02, (byte) 0x06,
- (byte) 0xc0, (byte) 0x30, (byte) 0x25, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x11,
- (byte) 0x04, (byte) 0x1e, (byte) 0x30, (byte) 0x1c, (byte) 0x81, (byte) 0x1a, (byte) 0x74, (byte) 0x68,
- (byte) 0x6f, (byte) 0x6d, (byte) 0x61, (byte) 0x73, (byte) 0x2e, (byte) 0x72, (byte) 0x6f, (byte) 0x65,
- (byte) 0x73, (byte) 0x73, (byte) 0x6c, (byte) 0x65, (byte) 0x72, (byte) 0x40, (byte) 0x65, (byte) 0x67,
- (byte) 0x69, (byte) 0x7a, (byte) 0x2e, (byte) 0x67, (byte) 0x76, (byte) 0x2e, (byte) 0x61, (byte) 0x74,
- (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x13, (byte) 0x04,
- (byte) 0x02, (byte) 0x30, (byte) 0x00, (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a,
- (byte) 0x86, (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x05,
- (byte) 0x05, (byte) 0x00, (byte) 0x03, (byte) 0x82, (byte) 0x01, (byte) 0x01, (byte) 0x00, (byte) 0xd8,
- (byte) 0xec, (byte) 0xe5, (byte) 0x5c, (byte) 0x17, (byte) 0x42, (byte) 0xe8, (byte) 0x2f, (byte) 0x04,
- (byte) 0x1f, (byte) 0xe2, (byte) 0x04, (byte) 0x57, (byte) 0x07, (byte) 0x30, (byte) 0xdc, (byte) 0x4f,
- (byte) 0x61, (byte) 0x7d, (byte) 0xd8, (byte) 0x89, (byte) 0x36, (byte) 0x31, (byte) 0x26, (byte) 0x45,
- (byte) 0x55, (byte) 0x64, (byte) 0xd3, (byte) 0x55, (byte) 0x1b, (byte) 0x83, (byte) 0x51, (byte) 0xa0,
- (byte) 0x39, (byte) 0x1b, (byte) 0x6a, (byte) 0x7e, (byte) 0xfa, (byte) 0x7e, (byte) 0x2c, (byte) 0xd0,
- (byte) 0xd3, (byte) 0x86, (byte) 0x7b, (byte) 0x8d, (byte) 0x29, (byte) 0x8f, (byte) 0xa3, (byte) 0x83,
- (byte) 0xd2, (byte) 0x72, (byte) 0xce, (byte) 0x43, (byte) 0xcf, (byte) 0xc1, (byte) 0x27, (byte) 0xf1,
- (byte) 0x4d, (byte) 0x11, (byte) 0xe2, (byte) 0x67, (byte) 0xbe, (byte) 0x6e, (byte) 0x34, (byte) 0x7d,
- (byte) 0x04, (byte) 0x1f, (byte) 0xba, (byte) 0x55, (byte) 0x34, (byte) 0xea, (byte) 0xc2, (byte) 0xcf,
- (byte) 0x0f, (byte) 0x64, (byte) 0x7b, (byte) 0x84, (byte) 0xe0, (byte) 0x55, (byte) 0x05, (byte) 0x82,
- (byte) 0xdd, (byte) 0x9d, (byte) 0xd7, (byte) 0xeb, (byte) 0x91, (byte) 0x78, (byte) 0x69, (byte) 0x49,
- (byte) 0x58, (byte) 0x70, (byte) 0xff, (byte) 0x83, (byte) 0x70, (byte) 0xa0, (byte) 0xb3, (byte) 0xb7,
- (byte) 0x3d, (byte) 0x0f, (byte) 0x8e, (byte) 0xe9, (byte) 0x1b, (byte) 0x21, (byte) 0xef, (byte) 0x31,
- (byte) 0x0b, (byte) 0xe3, (byte) 0xac, (byte) 0xc6, (byte) 0x0f, (byte) 0x57, (byte) 0x4f, (byte) 0xd8,
- (byte) 0xd6, (byte) 0xb2, (byte) 0xd0, (byte) 0xca, (byte) 0xd9, (byte) 0x6f, (byte) 0x3f, (byte) 0x6e,
- (byte) 0x83, (byte) 0x8c, (byte) 0xff, (byte) 0x47, (byte) 0xca, (byte) 0xbc, (byte) 0x81, (byte) 0x60,
- (byte) 0x5f, (byte) 0xe2, (byte) 0xdd, (byte) 0xbd, (byte) 0x89, (byte) 0xb2, (byte) 0x52, (byte) 0xac,
- (byte) 0xc3, (byte) 0x8b, (byte) 0x44, (byte) 0x99, (byte) 0x70, (byte) 0xe7, (byte) 0x2c, (byte) 0x52,
- (byte) 0x21, (byte) 0xaa, (byte) 0xa2, (byte) 0x0f, (byte) 0x38, (byte) 0xc6, (byte) 0x98, (byte) 0x4d,
- (byte) 0x48, (byte) 0xda, (byte) 0x65, (byte) 0x41, (byte) 0xa4, (byte) 0xad, (byte) 0x41, (byte) 0x7c,
- (byte) 0x99, (byte) 0x14, (byte) 0xe5, (byte) 0xcb, (byte) 0x51, (byte) 0xd7, (byte) 0xab, (byte) 0x76,
- (byte) 0xb1, (byte) 0x20, (byte) 0xce, (byte) 0x32, (byte) 0x1b, (byte) 0x11, (byte) 0x5c, (byte) 0xef,
- (byte) 0x8b, (byte) 0x4f, (byte) 0xf3, (byte) 0x46, (byte) 0x5b, (byte) 0x11, (byte) 0xd7, (byte) 0x91,
- (byte) 0xb6, (byte) 0x41, (byte) 0xd3, (byte) 0x23, (byte) 0xb6, (byte) 0x03, (byte) 0xa8, (byte) 0x98,
- (byte) 0x40, (byte) 0x76, (byte) 0x13, (byte) 0x5d, (byte) 0x4c, (byte) 0xb2, (byte) 0xe9, (byte) 0xfe,
- (byte) 0x90, (byte) 0x27, (byte) 0x04, (byte) 0xfc, (byte) 0x10, (byte) 0x45, (byte) 0x8b, (byte) 0x10,
- (byte) 0xc3, (byte) 0xb2, (byte) 0x4b, (byte) 0x3c, (byte) 0xd2, (byte) 0x5b, (byte) 0x0f, (byte) 0xe8,
- (byte) 0xfb, (byte) 0xb9, (byte) 0x45, (byte) 0xaf, (byte) 0x05, (byte) 0xc4, (byte) 0xba, (byte) 0xc7,
- (byte) 0xfc, (byte) 0xa5, (byte) 0x7d, (byte) 0xdb, (byte) 0x4f, (byte) 0xa9, (byte) 0x76, (byte) 0xe2,
- (byte) 0xfa, (byte) 0xc7, (byte) 0xe0, (byte) 0xad, (byte) 0x70, (byte) 0xaa, (byte) 0x40, (byte) 0x15,
- (byte) 0x64, (byte) 0x01, (byte) 0xba, (byte) 0xc6, (byte) 0xc3, (byte) 0x83, (byte) 0x65, (byte) 0x95,
- (byte) 0x3c, (byte) 0x05, (byte) 0x53, (byte) 0x88, (byte) 0xe7, (byte) 0x19, (byte) 0x98
- };
-
- protected static final int KID_PIN_SIG = 0x81;
-
- protected byte[] EF_C_CH_DS = new byte[2000];
-
- public ACOSApplSIG() {
- // Files
- System.arraycopy(C_CH_DS, 0, EF_C_CH_DS, 0, C_CH_DS.length);
- putFile(new File(FID_EF_C_CH_DS, EF_C_CH_DS, FCI_EF_C_CH_DS));
-
- // PINs
- try {
- pins.put(KID_PIN_SIG, new PIN(Arrays.copyOf("123456".getBytes("ASCII"), 8), KID_PIN_SIG, 3, PIN.STATE_RESET));
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public byte[] getAID() {
- return AID_SIG;
- }
-
- @Override
- public byte[] getFID() {
- return FID_SIG;
- }
-
- @Override
- public byte[] getFCI() {
- return FCI;
- }
-
- @Override
- public ResponseAPDU cmdPERFORM_SECURITY_OPERATION(CommandAPDU command, CardChannelEmul channel) {
-
- checkINS(command, 0x2A);
-
- if (command.getP1() == 0x90 && command.getP2() == 0x81) {
-
- // PUT HASH
- hash = command.getData();
- return new ResponseAPDU(new byte[] {(byte) 0x90, (byte) 0x00});
-
- } else if (command.getP1() == 0x9E && command.getP2() == 0x9A) {
-
- // COMPUTE DIGITAL SIGNATURE
- if (securityEnv == null) {
- // No security environment
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
- if (hash == null) {
- // Command sequence not correct
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x03});
- }
- if (hash.length != 20) {
- // Invalid hash length
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x80});
- }
- if (pins.get(KID_PIN_SIG).state != PIN.STATE_PIN_VERIFIED) {
- // Security Status not satisfied
- return new ResponseAPDU(new byte[] {(byte) 0x69, (byte) 0x82});
- }
-
- byte[] signature = new byte[48];
-
- // TODO replace by signature creation
- Random random = new Random();
- random.nextBytes(signature);
-
- byte[] response = new byte[signature.length + 2];
- System.arraycopy(signature, 0, response, 0, signature.length);
- response[signature.length] = (byte) 0x90;
- response[signature.length + 1] = (byte) 0x00;
-
- hash = null;
- pins.get(KID_PIN_SIG).state = PIN.STATE_RESET;
-
- return new ResponseAPDU(response);
-
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x00});
- }
-
- }
-
- public void clearCert() {
- Arrays.fill(EF_C_CH_DS, (byte) 0x00);
- }
-
-} \ No newline at end of file
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardChannelEmul.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardChannelEmul.java
deleted file mode 100644
index 25923686..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardChannelEmul.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import java.util.Arrays;
-
-import javax.smartcardio.Card;
-import javax.smartcardio.CardException;
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import at.gv.egiz.smcc.AbstractAppl;
-import at.gv.egiz.smcc.CardChannelEmul;
-import at.gv.egiz.smcc.CardEmul;
-import at.gv.egiz.smcc.File;
-import at.gv.egiz.smcc.PIN;
-
-@SuppressWarnings("restriction")
-public abstract class ACOSCardChannelEmul extends CardChannelEmul {
-
- /**
- *
- */
- protected CardEmul cardEmul;
-
- public ACOSCardChannelEmul(CardEmul cardEmul) {
- this.cardEmul = cardEmul;
- }
-
- @Override
- public Card getCard() {
- return cardEmul;
- }
-
- protected ResponseAPDU cmdSELECT(CommandAPDU command) throws CardException {
-
- byte[] fid = command.getData();
-
- AbstractAppl appl = cardEmul.getApplication(fid);
- if (appl != null) {
- if (currentAppl != null && currentAppl != appl) {
- currentAppl.leaveApplContext();
- currentFile = null;
- }
- currentAppl = appl;
-
- byte[] fci = currentAppl.getFCI();
- byte[] response = new byte[fci.length + 2];
- System.arraycopy(fci, 0, response, 0, fci.length);
- response[fci.length] = (byte) 0x90;
- response[fci.length + 1] = (byte) 0x00;
- return new ResponseAPDU(response);
- }
-
- if (command.getP1() == 0x00) {
- // SELECT with FID
- if (currentAppl instanceof AbstractAppl) {
-
- for (File file : ((AbstractAppl) currentAppl).getFiles()) {
-
- if (Arrays.equals(fid, file.fid)) {
- currentFile = file;
- byte[] response = new byte[file.fcx.length + 2];
- System.arraycopy(file.fcx, 0, response, 0, file.fcx.length);
- response[file.fcx.length] = (byte) 0x90;
- response[file.fcx.length + 1] = (byte) 0x00;
- return new ResponseAPDU(response);
- }
-
- }
-
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x82});
-
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x82});
- }
- }
-
- // Not found
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x82});
-
- }
-
- public abstract ResponseAPDU cmdREAD_BINARY(CommandAPDU command) throws CardException;
-
-
- @Override
- public ResponseAPDU transmit(CommandAPDU command) throws CardException {
-
- if (command.getCLA() == 0x00) {
-
- switch (command.getINS()) {
-
- // SELECT
- case 0xA4:
- return cmdSELECT(command);
-
- // READ BINARY
- case 0xB0:
- return cmdREAD_BINARY(command);
-
- // VERIFY
- case 0x20:
- if ((command.getP2() & 0x80) > 0) {
- return cmdVERIFY(command);
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- // MANAGE SECURITY ENVIRONMENT
- case 0x22: {
- if (currentAppl != null) {
- return currentAppl.cmdMANAGE_SECURITY_ENVIRONMENT(command, this);
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
- }
-
- // CHANGE REFERENCE DATA
- case 0x24: {
- return cmdCHANGE_REFERENCE_DATA(command);
- }
-
- // PERFORM SECURITY OPERATION
- case 0x2A: {
- if (currentAppl != null) {
- return currentAppl.cmdPERFORM_SECURITY_OPERATION(command, this);
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
- }
-
- // INTERNAL AUTHENTICATE
- case 0x88: {
- if (currentAppl != null) {
- return currentAppl.cmdINTERNAL_AUTHENTICATE(command, this);
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6F, (byte) 0x05});
- }
- }
-
- default:
- return new ResponseAPDU(new byte[] { (byte) 0x6D, (byte) 0x00});
- }
-
- } else {
- return new ResponseAPDU(new byte[] { (byte) 0x6E, (byte) 0x00});
- }
-
- }
-
- protected ResponseAPDU verifyPin(int kid, byte[] reference) {
-
- PIN pin;
- if (currentAppl != null) {
- pin = currentAppl.pins.get(kid);
- } else {
- pin = null;
- }
-
- if (pin != null) {
-
- if (reference.length != 8) {
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
- if (Arrays.equals(reference, pin.pin)) {
- switch (pin.state) {
- case PIN.STATE_PIN_BLOCKED:
- return new ResponseAPDU(new byte[] { (byte) 0x69, (byte) 0x83 });
-
- case PIN.STATE_RESET:
- pin.state = PIN.STATE_PIN_VERIFIED;
-
- default:
- pin.kfpc = 10;
- return new ResponseAPDU(new byte[] { (byte) 0x90, (byte) 0x00 });
- }
- } else {
- switch (pin.state) {
- case PIN.STATE_PIN_BLOCKED:
- return new ResponseAPDU(new byte[] { (byte) 0x69, (byte) 0x83 });
-
- default:
- if (--pin.kfpc > 0) {
- return new ResponseAPDU(new byte[] { (byte) 0x63, (byte) (pin.kfpc | 0xC0)});
- } else {
- pin.state = PIN.STATE_PIN_BLOCKED;
- return new ResponseAPDU(new byte[] { (byte) 0x69, (byte) 0x83 });
- }
- }
-
- }
-
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x00});
- }
-
- }
-
- public ResponseAPDU cmdVERIFY(CommandAPDU command) throws CardException {
-
- if (command.getINS() != 0x20) {
- throw new IllegalArgumentException("INS has to be 0x20.");
- }
-
- if (command.getP1() != 00) {
- return new ResponseAPDU(new byte[] {(byte) 0x6B, (byte) 0x00});
- }
-
- return verifyPin(command.getP2(), command.getData());
-
- }
-
- public ResponseAPDU cmdCHANGE_REFERENCE_DATA(CommandAPDU command) {
-
- if (command.getINS() != 0x24) {
- throw new IllegalArgumentException("INS has to be 0x24.");
- }
-
- if (command.getP1() == 0x00) {
-
- byte[] data = command.getData();
- if (data.length != 16) {
- return new ResponseAPDU(new byte[] {(byte) 0x67, (byte) 0x00});
- }
-
- ResponseAPDU response = verifyPin(command.getP2(), Arrays.copyOf(data, 8));
- if (response.getSW() == 0x9000) {
- PIN pin;
- if (currentAppl != null) {
- pin = currentAppl.pins.get(command.getP2());
- } else {
- pin = null;
- }
- pin.pin = Arrays.copyOfRange(data, 8, 16);
- }
-
- return response;
-
- } else {
- return new ResponseAPDU(new byte[] {(byte) 0x6A, (byte) 0x81});
- }
-
- }
-
-} \ No newline at end of file
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardEmul.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardEmul.java
deleted file mode 100644
index b9f70a5d..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardEmul.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-
-import javax.smartcardio.ATR;
-
-import at.gv.egiz.smcc.CardEmul;
-
-@SuppressWarnings("restriction")
-public abstract class ACOSCardEmul extends CardEmul {
-
- protected static ATR ATR = new ATR(new byte[] {
- (byte) 0x3b, (byte) 0xbf, (byte) 0x11, (byte) 0x00, (byte) 0x81, (byte) 0x31, (byte) 0xfe, (byte) 0x45,
- (byte) 0x45, (byte) 0x50, (byte) 0x41, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0xf1
- });
-
- @Override
- public ATR getATR() {
- return ATR;
- }
-
-} \ No newline at end of file
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTest.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTest.java
deleted file mode 100644
index 4f012739..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
-
-import org.junit.Test;
-
-import at.gv.egiz.smcc.CardEmul;
-import at.gv.egiz.smcc.CardNotSupportedException;
-import at.gv.egiz.smcc.CardTest;
-import at.gv.egiz.smcc.LockedException;
-import at.gv.egiz.smcc.NotActivatedException;
-import at.gv.egiz.smcc.pin.gui.SMCCTestPINProvider;
-import at.gv.egiz.smcc.SignatureCard;
-import at.gv.egiz.smcc.SignatureCardException;
-import at.gv.egiz.smcc.SignatureCard.KeyboxName;
-
-public abstract class ACOSCardTest extends CardTest {
-
- public ACOSCardTest() {
- super();
- }
-
- protected abstract int getVersion();
-
- @Test
- public void testGetInfoboxIdentityLinkEmpty() throws SignatureCardException,
- InterruptedException, CardNotSupportedException {
-
- char[] pin = "0000".toCharArray();
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplDEC appl = (ACOSApplDEC) card.getApplication(ACOSAppl.AID_DEC);
- appl.clearInfobox();
-
- byte[] idlink = signatureCard.getInfobox("IdentityLink",
- new SMCCTestPINProvider(pin), null);
- assertNull(idlink);
-
- }
-
- @Test(expected = SignatureCardException.class)
- public void testGetInfoboxIdentityInvalid() throws SignatureCardException,
- InterruptedException, CardNotSupportedException {
-
- char[] pin = "0000".toCharArray();
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplDEC appl = (ACOSApplDEC) card.getApplication(ACOSAppl.AID_DEC);
- appl.setInfoboxHeader((byte) 0xFF);
-
- signatureCard.getInfobox("IdentityLink", new SMCCTestPINProvider(pin), null);
-
- }
-
- @Test
- public void testGetCerts() throws SignatureCardException,
- InterruptedException, CardNotSupportedException {
-
- SignatureCard signatureCard = createSignatureCard();
-
- byte[] cert;
-
- cert = signatureCard.getCertificate(KeyboxName.SECURE_SIGNATURE_KEYPAIR);
- assertNotNull(cert);
- assertTrue(Arrays.equals(cert, A04ApplSIG.C_CH_DS));
-
- cert = signatureCard.getCertificate(KeyboxName.CERITIFIED_KEYPAIR);
- assertNotNull(cert);
- assertTrue(Arrays.equals(cert, A04ApplDEC.C_CH_EKEY));
-
- }
-
- @Test(expected = NotActivatedException.class)
- public void testGetSIGCertEmpty() throws SignatureCardException,
- InterruptedException, CardNotSupportedException {
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplSIG appl = (ACOSApplSIG) card.getApplication(ACOSAppl.AID_SIG);
- appl.clearCert();
-
- signatureCard.getCertificate(KeyboxName.SECURE_SIGNATURE_KEYPAIR);
-
- }
-
- @Test(expected = NotActivatedException.class)
- public void testGetDECCertEmpty() throws SignatureCardException,
- InterruptedException, CardNotSupportedException {
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplDEC appl = (ACOSApplDEC) card.getApplication(ACOSAppl.AID_DEC);
- appl.clearCert();
-
- signatureCard.getCertificate(KeyboxName.CERITIFIED_KEYPAIR);
-
- }
-
- @Test
- public void testSignSIG() throws SignatureCardException,
- InterruptedException, CardNotSupportedException,
- NoSuchAlgorithmException, IOException {
-
- char[] pin = "123456".toCharArray();
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplSIG appl = (ACOSApplSIG) card.getApplication(ACOSAppl.AID_SIG);
- appl.setPin(ACOSApplSIG.KID_PIN_SIG, pin);
-
- byte[] signature = signatureCard.createSignature(new ByteArrayInputStream("MOCCA"
- .getBytes("ASCII")),
- KeyboxName.SECURE_SIGNATURE_KEYPAIR, new SMCCTestPINProvider(pin), null);
-
- assertNotNull(signature);
-
- }
-
- @Test
- public void testSignDEC() throws SignatureCardException,
- InterruptedException, CardNotSupportedException,
- NoSuchAlgorithmException, IOException {
-
- char[] pin = "1234".toCharArray();
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplDEC appl = (ACOSApplDEC) card.getApplication(ACOSAppl.AID_DEC);
- appl.setPin(ACOSApplDEC.KID_PIN_DEC, pin);
-
- byte[] signature = signatureCard.createSignature(new ByteArrayInputStream("MOCCA"
- .getBytes("ASCII")),
- KeyboxName.CERITIFIED_KEYPAIR, new SMCCTestPINProvider(pin), null);
-
- assertNotNull(signature);
-
- }
-
- @Test(expected = LockedException.class)
- public void testSignSIGInvalidPin() throws SignatureCardException,
- InterruptedException, CardNotSupportedException,
- NoSuchAlgorithmException, IOException {
-
- SignatureCard signatureCard = createSignatureCard();
-
- SMCCTestPINProvider pinProvider = new SMCCTestPINProvider("000000".toCharArray());
-
- signatureCard.createSignature(new ByteArrayInputStream("MOCCA"
- .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR,
- pinProvider, null);
-
- }
-
- @Test(expected = LockedException.class)
- public void testSignDECInvalidPin() throws SignatureCardException,
- InterruptedException, CardNotSupportedException,
- NoSuchAlgorithmException, IOException {
-
- SignatureCard signatureCard = createSignatureCard();
-
- SMCCTestPINProvider pinProvider = new SMCCTestPINProvider("0000".toCharArray());
-
- signatureCard.createSignature(new ByteArrayInputStream("MOCCA"
- .getBytes("ASCII")), KeyboxName.CERITIFIED_KEYPAIR,
- pinProvider, null);
-
- }
-
- @Test(expected = LockedException.class)
- public void testSignSIGBlockedPin() throws SignatureCardException,
- InterruptedException, CardNotSupportedException,
- NoSuchAlgorithmException, IOException {
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplSIG appl = (ACOSApplSIG) card.getApplication(ACOSAppl.AID_SIG);
- appl.setPin(ACOSApplSIG.KID_PIN_SIG, null);
-
- SMCCTestPINProvider pinProvider = new SMCCTestPINProvider("000000".toCharArray());
-
- signatureCard.createSignature(new ByteArrayInputStream("MOCCA"
- .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR,
- pinProvider, null);
-
- }
-
- @Test(expected = LockedException.class)
- public void testSignDECBlockedPin() throws SignatureCardException,
- InterruptedException, CardNotSupportedException,
- NoSuchAlgorithmException, IOException {
-
- SignatureCard signatureCard = createSignatureCard();
- CardEmul card = (CardEmul) signatureCard.getCard();
- ACOSApplDEC appl = (ACOSApplDEC) card.getApplication(ACOSAppl.AID_DEC);
- appl.setPin(ACOSApplDEC.KID_PIN_DEC, null);
-
- SMCCTestPINProvider pinProvider = new SMCCTestPINProvider("0000".toCharArray());
-
- signatureCard.createSignature(new ByteArrayInputStream("MOCCA"
- .getBytes("ASCII")), KeyboxName.CERITIFIED_KEYPAIR,
- pinProvider, null);
-
- }
-
-} \ No newline at end of file
diff --git a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTestSuite.java b/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTestSuite.java
deleted file mode 100644
index 101f7edc..00000000
--- a/mocca-1.2.11/smcc/src/test/java/at/gv/egiz/smcc/acos/ACOSCardTestSuite.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package at.gv.egiz.smcc.acos;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@RunWith(Suite.class)
-@SuiteClasses( { A03CardTest.class, A04CardTest.class })
-public class ACOSCardTestSuite {
-
-}