From 6cb4a071eab9a3b8cf78b8ec7e407aa148f2d038 Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 1 Jul 2009 13:03:41 +0000 Subject: Major refactoring of SMCC git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@381 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- smcc/src/test/java/at/gv/egiz/smcc/CardTest.java | 298 +++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 smcc/src/test/java/at/gv/egiz/smcc/CardTest.java (limited to 'smcc/src/test/java/at/gv/egiz/smcc/CardTest.java') diff --git a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java new file mode 100644 index 00000000..298e26a5 --- /dev/null +++ b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java @@ -0,0 +1,298 @@ +/* +* 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; + +import static org.junit.Assert.*; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Arrays; +import java.util.List; + +import javax.smartcardio.Card; + +import org.junit.Test; + +import at.gv.egiz.smcc.SignatureCard.KeyboxName; +import at.gv.egiz.smcc.acos.A04ApplDEC; + +@SuppressWarnings("restriction") +public abstract class CardTest { + + public class TestPINProvider implements PINProvider { + + int provided = 0; + + char[] pin; + + public TestPINProvider(char[] pin) { + super(); + this.pin = pin; + } + + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + provided++; + return pin; + } + + public int getProvided() { + return provided; + } + + } + + public class TestChangePINProvider extends TestPINProvider implements + ChangePINProvider { + + char[] oldPin; + + public TestChangePINProvider(char[] oldPin, char[] pin) { + super(pin); + this.oldPin = oldPin; + } + + @Override + public char[] provideOldPIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + return oldPin; + } + + } + + public CardTest() { + super(); + } + + protected abstract SignatureCard createSignatureCard() + throws CardNotSupportedException; + + @Test + public void testGetCard() throws CardNotSupportedException { + SignatureCard signatureCard = createSignatureCard(); + Card card = signatureCard.getCard(); + assertNotNull(card); + } + + @Test + public void testGetInfoboxIdentityLink() throws SignatureCardException, + InterruptedException, CardNotSupportedException { + + final char[] pin = "0000".toCharArray(); + + SignatureCard signatureCard = createSignatureCard(); + + TestPINProvider pinProvider = new TestPINProvider(pin); + + byte[] idlink = signatureCard.getInfobox("IdentityLink", + pinProvider, null); + assertNotNull(idlink); + assertTrue(Arrays.equals(idlink, A04ApplDEC.IDLINK)); + assertEquals(1, pinProvider.provided); + + } + + @Test(expected = CancelledException.class) + public void testSignSIGCancel() throws SignatureCardException, + InterruptedException, CardNotSupportedException, + NoSuchAlgorithmException, UnsupportedEncodingException { + + SignatureCard signatureCard = createSignatureCard(); + + MessageDigest md = MessageDigest.getInstance("SHA-1"); + byte[] hash = md.digest("MOCCA".getBytes("ASCII")); + + PINProvider pinProvider = new PINProvider() { + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + throw new CancelledException(); + } + }; + + signatureCard.createSignature(hash, KeyboxName.SECURE_SIGNATURE_KEYPAIR, + pinProvider); + + } + + @Test(expected = CancelledException.class) + public void testSignDECCancel() throws SignatureCardException, + InterruptedException, CardNotSupportedException, + NoSuchAlgorithmException, UnsupportedEncodingException { + + SignatureCard signatureCard = createSignatureCard(); + + MessageDigest md = MessageDigest.getInstance("SHA-1"); + byte[] hash = md.digest("MOCCA".getBytes("ASCII")); + + PINProvider pinProvider = new PINProvider() { + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + throw new CancelledException(); + } + }; + + signatureCard.createSignature(hash, KeyboxName.CERITIFIED_KEYPAIR, + pinProvider); + + } + + @Test(expected = InterruptedException.class) + public void testSignSIGInterrrupted() throws SignatureCardException, + InterruptedException, CardNotSupportedException, + NoSuchAlgorithmException, UnsupportedEncodingException { + + SignatureCard signatureCard = createSignatureCard(); + + MessageDigest md = MessageDigest.getInstance("SHA-1"); + byte[] hash = md.digest("MOCCA".getBytes("ASCII")); + + PINProvider pinProvider = new PINProvider() { + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + throw new InterruptedException(); + } + }; + + signatureCard.createSignature(hash, KeyboxName.SECURE_SIGNATURE_KEYPAIR, + pinProvider); + + } + + @Test(expected = InterruptedException.class) + public void testSignDECInterrrupted() throws SignatureCardException, + InterruptedException, CardNotSupportedException, + NoSuchAlgorithmException, UnsupportedEncodingException { + + SignatureCard signatureCard = createSignatureCard(); + + MessageDigest md = MessageDigest.getInstance("SHA-1"); + byte[] hash = md.digest("MOCCA".getBytes("ASCII")); + + PINProvider pinProvider = new PINProvider() { + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + throw new InterruptedException(); + } + }; + + signatureCard.createSignature(hash, KeyboxName.CERITIFIED_KEYPAIR, + pinProvider); + + } + + @Test(expected = CancelledException.class) + public void testSignSIGConcurrent() throws SignatureCardException, + InterruptedException, CardNotSupportedException, + NoSuchAlgorithmException, UnsupportedEncodingException { + + final SignatureCard signatureCard = createSignatureCard(); + + MessageDigest md = MessageDigest.getInstance("SHA-1"); + byte[] hash = md.digest("MOCCA".getBytes("ASCII")); + + PINProvider pinProvider = new PINProvider() { + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + + try { + signatureCard.getCertificate(KeyboxName.SECURE_SIGNATURE_KEYPAIR); + assertTrue(false); + return null; + } catch (SignatureCardException e) { + // expected + throw new CancelledException(); + } + + } + }; + + signatureCard.createSignature(hash, KeyboxName.SECURE_SIGNATURE_KEYPAIR, + pinProvider); + + } + + @Test(expected = CancelledException.class) + public void testSignDECConcurrent() throws SignatureCardException, + InterruptedException, CardNotSupportedException, + NoSuchAlgorithmException, UnsupportedEncodingException { + + final SignatureCard signatureCard = createSignatureCard(); + + MessageDigest md = MessageDigest.getInstance("SHA-1"); + byte[] hash = md.digest("MOCCA".getBytes("ASCII")); + + PINProvider pinProvider = new PINProvider() { + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + + try { + signatureCard.getCertificate(KeyboxName.CERITIFIED_KEYPAIR); + assertTrue(false); + return null; + } catch (SignatureCardException e) { + // expected + throw new CancelledException(); + } + + } + }; + + signatureCard.createSignature(hash, KeyboxName.CERITIFIED_KEYPAIR, + pinProvider); + + } + + @Test + public void testGetPinSpecs() throws CardNotSupportedException { + + PINMgmtSignatureCard signatureCard = (PINMgmtSignatureCard) createSignatureCard(); + + List specs = signatureCard.getPINSpecs(); + assertNotNull(specs); + assertTrue(specs.size() > 0); + + } + + @Test(expected = SignatureCardException.class) + public void testActivatePin() throws SignatureCardException, + InterruptedException, CardNotSupportedException, + NoSuchAlgorithmException, UnsupportedEncodingException { + + PINMgmtSignatureCard signatureCard = (PINMgmtSignatureCard) createSignatureCard(); + + PINProvider pinProvider = new PINProvider() { + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + throw new CancelledException(); + } + }; + + List specs = signatureCard.getPINSpecs(); + + signatureCard.activatePIN(specs.get(0), pinProvider); + } + +} \ No newline at end of file -- cgit v1.2.3 From 974087a04d2fb9b03a72b66c090afe65e5a818dc Mon Sep 17 00:00:00 2001 From: clemenso Date: Thu, 6 Aug 2009 14:01:01 +0000 Subject: FIX [462] PINMgmtSignatureCard changePIN silently ignores wrong pin entry [63cX] git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@414 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- smcc/src/test/java/at/gv/egiz/smcc/CardTest.java | 67 ++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'smcc/src/test/java/at/gv/egiz/smcc/CardTest.java') diff --git a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java index 298e26a5..f72820e1 100644 --- a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java +++ b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java @@ -76,6 +76,73 @@ public abstract class CardTest { } + public class TestWrongPINProvider implements PINProvider { + + int provided = 0; + int numWrongTries = 0; + + char[] pin; + + public TestWrongPINProvider(char[] pin, int numWrongTries) { + super(); + this.pin = pin; + this.numWrongTries = numWrongTries; + } + + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + if (provided >= numWrongTries) { + throw new CancelledException("Number of wrong tries reached: " + provided); + } else { + provided++; + return pin; + } + } + + public int getProvided() { + return provided; + } + } + + public class TestWrongChangePINProvider implements ChangePINProvider { + + int provided = 0; + int numWrongTries = 0; + + char[] pin; + char[] oldPin; + + /** emulate ChangePinProvider */ + public TestWrongChangePINProvider(char[] oldPin, char[] newPin, int numWrongTries) { + super(); + this.pin = newPin; + this.oldPin = oldPin; + this.numWrongTries = numWrongTries; + } + + @Override + public char[] providePIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + return pin; + } + + public int getProvided() { + return provided; + } + + @Override + public char[] provideOldPIN(PINSpec spec, int retries) + throws CancelledException, InterruptedException { + if (provided >= numWrongTries) { + throw new CancelledException("Number of wrong tries reached: " + provided); + } else { + provided++; + return oldPin; + } + } + } + public CardTest() { super(); } -- cgit v1.2.3 From 497f6336cc96cd3b2b4cd760774ec4c2ed892df2 Mon Sep 17 00:00:00 2001 From: clemenso Date: Thu, 13 Aug 2009 09:09:06 +0000 Subject: [#436] resolve "#PIN digits" message via message resource bundle git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@418 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- smcc/src/test/java/at/gv/egiz/smcc/CardTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'smcc/src/test/java/at/gv/egiz/smcc/CardTest.java') diff --git a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java index f72820e1..2a55357d 100644 --- a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java +++ b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java @@ -76,14 +76,14 @@ public abstract class CardTest { } - public class TestWrongPINProvider implements PINProvider { + public class TestInvalidPINProvider implements PINProvider { int provided = 0; int numWrongTries = 0; char[] pin; - public TestWrongPINProvider(char[] pin, int numWrongTries) { + public TestInvalidPINProvider(char[] pin, int numWrongTries) { super(); this.pin = pin; this.numWrongTries = numWrongTries; @@ -105,7 +105,7 @@ public abstract class CardTest { } } - public class TestWrongChangePINProvider implements ChangePINProvider { + public class TestInvalidChangePINProvider implements ChangePINProvider { int provided = 0; int numWrongTries = 0; @@ -114,7 +114,7 @@ public abstract class CardTest { char[] oldPin; /** emulate ChangePinProvider */ - public TestWrongChangePINProvider(char[] oldPin, char[] newPin, int numWrongTries) { + public TestInvalidChangePINProvider(char[] oldPin, char[] newPin, int numWrongTries) { super(); this.pin = newPin; this.oldPin = oldPin; -- cgit v1.2.3 From 68941b57df2caeead67a5bede2ef5a635d07db32 Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 11 Nov 2009 15:51:08 +0000 Subject: Added support for SHA-256 and partial support for e-card G3, BELPIC and Italian cards. git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@540 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- smcc/src/test/java/at/gv/egiz/smcc/CardTest.java | 62 ++++++++++-------------- 1 file changed, 26 insertions(+), 36 deletions(-) (limited to 'smcc/src/test/java/at/gv/egiz/smcc/CardTest.java') diff --git a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java index 2a55357d..b3bd07ab 100644 --- a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java +++ b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java @@ -18,6 +18,8 @@ package at.gv.egiz.smcc; import static org.junit.Assert.*; +import java.io.ByteArrayInputStream; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -178,13 +180,10 @@ public abstract class CardTest { @Test(expected = CancelledException.class) public void testSignSIGCancel() throws SignatureCardException, InterruptedException, CardNotSupportedException, - NoSuchAlgorithmException, UnsupportedEncodingException { + NoSuchAlgorithmException, IOException { SignatureCard signatureCard = createSignatureCard(); - MessageDigest md = MessageDigest.getInstance("SHA-1"); - byte[] hash = md.digest("MOCCA".getBytes("ASCII")); - PINProvider pinProvider = new PINProvider() { @Override public char[] providePIN(PINSpec spec, int retries) @@ -193,21 +192,19 @@ public abstract class CardTest { } }; - signatureCard.createSignature(hash, KeyboxName.SECURE_SIGNATURE_KEYPAIR, - pinProvider); + signatureCard.createSignature(new ByteArrayInputStream("MOCCA" + .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR, pinProvider, + null); } @Test(expected = CancelledException.class) public void testSignDECCancel() throws SignatureCardException, InterruptedException, CardNotSupportedException, - NoSuchAlgorithmException, UnsupportedEncodingException { + NoSuchAlgorithmException, IOException { SignatureCard signatureCard = createSignatureCard(); - MessageDigest md = MessageDigest.getInstance("SHA-1"); - byte[] hash = md.digest("MOCCA".getBytes("ASCII")); - PINProvider pinProvider = new PINProvider() { @Override public char[] providePIN(PINSpec spec, int retries) @@ -216,21 +213,19 @@ public abstract class CardTest { } }; - signatureCard.createSignature(hash, KeyboxName.CERITIFIED_KEYPAIR, - pinProvider); + signatureCard.createSignature(new ByteArrayInputStream("MOCCA" + .getBytes("ASCII")), KeyboxName.CERITIFIED_KEYPAIR, + pinProvider, null); } @Test(expected = InterruptedException.class) public void testSignSIGInterrrupted() throws SignatureCardException, InterruptedException, CardNotSupportedException, - NoSuchAlgorithmException, UnsupportedEncodingException { + NoSuchAlgorithmException, IOException { SignatureCard signatureCard = createSignatureCard(); - MessageDigest md = MessageDigest.getInstance("SHA-1"); - byte[] hash = md.digest("MOCCA".getBytes("ASCII")); - PINProvider pinProvider = new PINProvider() { @Override public char[] providePIN(PINSpec spec, int retries) @@ -239,21 +234,19 @@ public abstract class CardTest { } }; - signatureCard.createSignature(hash, KeyboxName.SECURE_SIGNATURE_KEYPAIR, - pinProvider); + signatureCard.createSignature(new ByteArrayInputStream("MOCCA" + .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR, + pinProvider, null); } @Test(expected = InterruptedException.class) public void testSignDECInterrrupted() throws SignatureCardException, InterruptedException, CardNotSupportedException, - NoSuchAlgorithmException, UnsupportedEncodingException { + NoSuchAlgorithmException, IOException { SignatureCard signatureCard = createSignatureCard(); - MessageDigest md = MessageDigest.getInstance("SHA-1"); - byte[] hash = md.digest("MOCCA".getBytes("ASCII")); - PINProvider pinProvider = new PINProvider() { @Override public char[] providePIN(PINSpec spec, int retries) @@ -262,21 +255,19 @@ public abstract class CardTest { } }; - signatureCard.createSignature(hash, KeyboxName.CERITIFIED_KEYPAIR, - pinProvider); + signatureCard.createSignature(new ByteArrayInputStream("MOCCA" + .getBytes("ASCII")), KeyboxName.CERITIFIED_KEYPAIR, + pinProvider, null); } @Test(expected = CancelledException.class) public void testSignSIGConcurrent() throws SignatureCardException, InterruptedException, CardNotSupportedException, - NoSuchAlgorithmException, UnsupportedEncodingException { + NoSuchAlgorithmException, IOException { final SignatureCard signatureCard = createSignatureCard(); - MessageDigest md = MessageDigest.getInstance("SHA-1"); - byte[] hash = md.digest("MOCCA".getBytes("ASCII")); - PINProvider pinProvider = new PINProvider() { @Override public char[] providePIN(PINSpec spec, int retries) @@ -294,21 +285,19 @@ public abstract class CardTest { } }; - signatureCard.createSignature(hash, KeyboxName.SECURE_SIGNATURE_KEYPAIR, - pinProvider); + signatureCard.createSignature(new ByteArrayInputStream("MOCCA" + .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR, + pinProvider, null); } @Test(expected = CancelledException.class) public void testSignDECConcurrent() throws SignatureCardException, InterruptedException, CardNotSupportedException, - NoSuchAlgorithmException, UnsupportedEncodingException { + NoSuchAlgorithmException, IOException { final SignatureCard signatureCard = createSignatureCard(); - MessageDigest md = MessageDigest.getInstance("SHA-1"); - byte[] hash = md.digest("MOCCA".getBytes("ASCII")); - PINProvider pinProvider = new PINProvider() { @Override public char[] providePIN(PINSpec spec, int retries) @@ -326,8 +315,9 @@ public abstract class CardTest { } }; - signatureCard.createSignature(hash, KeyboxName.CERITIFIED_KEYPAIR, - pinProvider); + signatureCard.createSignature(new ByteArrayInputStream("MOCCA" + .getBytes("ASCII")), KeyboxName.CERITIFIED_KEYPAIR, + pinProvider, null); } -- cgit v1.2.3 From 3da4655d011dfc2f04f9e4ac28b38aee42d01bc0 Mon Sep 17 00:00:00 2001 From: clemenso Date: Tue, 5 Jan 2010 10:06:47 +0000 Subject: Features [#437] Handle pinpad [64:03] response apdu correctly [#445] pin entry feedback for VERIFY_PIN_START/FINISH [#471] Provide SecureViewer Link before Pinpad PinEntry timeout starts Bugs [#479] PIN Managment Applet allows unmatching new pin and pin confirmation [#480] PIN Management displays blocked PINs as ACTIVE [#486] Not possible to select 3 times in series the same item from signedReferencesList for display in secureViewer [#506] change pin dialog (gui) issues [#508] e-card G3 PIN activation (with TransportPIN) not supported [#509] closing secure viewer window (WINDOW_CLOSING) leaves "signature data is displayed in viewer" dialog in applet git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@565 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- smcc/src/test/java/at/gv/egiz/smcc/CardTest.java | 171 +++-------------------- 1 file changed, 19 insertions(+), 152 deletions(-) (limited to 'smcc/src/test/java/at/gv/egiz/smcc/CardTest.java') diff --git a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java index b3bd07ab..44e48836 100644 --- a/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java +++ b/smcc/src/test/java/at/gv/egiz/smcc/CardTest.java @@ -16,12 +16,14 @@ */ package at.gv.egiz.smcc; +import at.gv.egiz.smcc.pin.gui.CancelPINProvider; +import at.gv.egiz.smcc.pin.gui.InterruptPINProvider; +import at.gv.egiz.smcc.pin.gui.CancelChangePINProvider; import static org.junit.Assert.*; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; -import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.List; @@ -32,119 +34,15 @@ import org.junit.Test; import at.gv.egiz.smcc.SignatureCard.KeyboxName; import at.gv.egiz.smcc.acos.A04ApplDEC; +import at.gv.egiz.smcc.pin.gui.DummyPINGUI; +import at.gv.egiz.smcc.pin.gui.ModifyPINGUI; +import at.gv.egiz.smcc.pin.gui.PINGUI; +import at.gv.egiz.smcc.pin.gui.SMCCTestPINProvider; +import org.junit.Ignore; @SuppressWarnings("restriction") public abstract class CardTest { - public class TestPINProvider implements PINProvider { - - int provided = 0; - - char[] pin; - - public TestPINProvider(char[] pin) { - super(); - this.pin = pin; - } - - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - provided++; - return pin; - } - - public int getProvided() { - return provided; - } - - } - - public class TestChangePINProvider extends TestPINProvider implements - ChangePINProvider { - - char[] oldPin; - - public TestChangePINProvider(char[] oldPin, char[] pin) { - super(pin); - this.oldPin = oldPin; - } - - @Override - public char[] provideOldPIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - return oldPin; - } - - } - - public class TestInvalidPINProvider implements PINProvider { - - int provided = 0; - int numWrongTries = 0; - - char[] pin; - - public TestInvalidPINProvider(char[] pin, int numWrongTries) { - super(); - this.pin = pin; - this.numWrongTries = numWrongTries; - } - - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - if (provided >= numWrongTries) { - throw new CancelledException("Number of wrong tries reached: " + provided); - } else { - provided++; - return pin; - } - } - - public int getProvided() { - return provided; - } - } - - public class TestInvalidChangePINProvider implements ChangePINProvider { - - int provided = 0; - int numWrongTries = 0; - - char[] pin; - char[] oldPin; - - /** emulate ChangePinProvider */ - public TestInvalidChangePINProvider(char[] oldPin, char[] newPin, int numWrongTries) { - super(); - this.pin = newPin; - this.oldPin = oldPin; - this.numWrongTries = numWrongTries; - } - - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - return pin; - } - - public int getProvided() { - return provided; - } - - @Override - public char[] provideOldPIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - if (provided >= numWrongTries) { - throw new CancelledException("Number of wrong tries reached: " + provided); - } else { - provided++; - return oldPin; - } - } - } - public CardTest() { super(); } @@ -167,7 +65,7 @@ public abstract class CardTest { SignatureCard signatureCard = createSignatureCard(); - TestPINProvider pinProvider = new TestPINProvider(pin); + SMCCTestPINProvider pinProvider = new SMCCTestPINProvider(pin); byte[] idlink = signatureCard.getInfobox("IdentityLink", pinProvider, null); @@ -184,13 +82,7 @@ public abstract class CardTest { SignatureCard signatureCard = createSignatureCard(); - PINProvider pinProvider = new PINProvider() { - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - throw new CancelledException(); - } - }; + PINGUI pinProvider = new CancelPINProvider(); signatureCard.createSignature(new ByteArrayInputStream("MOCCA" .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR, pinProvider, @@ -205,13 +97,7 @@ public abstract class CardTest { SignatureCard signatureCard = createSignatureCard(); - PINProvider pinProvider = new PINProvider() { - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - throw new CancelledException(); - } - }; + PINGUI pinProvider = new CancelPINProvider(); signatureCard.createSignature(new ByteArrayInputStream("MOCCA" .getBytes("ASCII")), KeyboxName.CERITIFIED_KEYPAIR, @@ -226,13 +112,7 @@ public abstract class CardTest { SignatureCard signatureCard = createSignatureCard(); - PINProvider pinProvider = new PINProvider() { - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - throw new InterruptedException(); - } - }; + PINGUI pinProvider = new InterruptPINProvider(); signatureCard.createSignature(new ByteArrayInputStream("MOCCA" .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR, @@ -247,13 +127,7 @@ public abstract class CardTest { SignatureCard signatureCard = createSignatureCard(); - PINProvider pinProvider = new PINProvider() { - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - throw new InterruptedException(); - } - }; + PINGUI pinProvider = new InterruptPINProvider(); signatureCard.createSignature(new ByteArrayInputStream("MOCCA" .getBytes("ASCII")), KeyboxName.CERITIFIED_KEYPAIR, @@ -268,11 +142,11 @@ public abstract class CardTest { final SignatureCard signatureCard = createSignatureCard(); - PINProvider pinProvider = new PINProvider() { + PINGUI pinProvider = new DummyPINGUI() { @Override public char[] providePIN(PINSpec spec, int retries) throws CancelledException, InterruptedException { - + try { signatureCard.getCertificate(KeyboxName.SECURE_SIGNATURE_KEYPAIR); assertTrue(false); @@ -281,10 +155,10 @@ public abstract class CardTest { // expected throw new CancelledException(); } - + } }; - + signatureCard.createSignature(new ByteArrayInputStream("MOCCA" .getBytes("ASCII")), KeyboxName.SECURE_SIGNATURE_KEYPAIR, pinProvider, null); @@ -298,7 +172,7 @@ public abstract class CardTest { final SignatureCard signatureCard = createSignatureCard(); - PINProvider pinProvider = new PINProvider() { + PINGUI pinProvider = new DummyPINGUI() { @Override public char[] providePIN(PINSpec spec, int retries) throws CancelledException, InterruptedException { @@ -311,7 +185,6 @@ public abstract class CardTest { // expected throw new CancelledException(); } - } }; @@ -339,13 +212,7 @@ public abstract class CardTest { PINMgmtSignatureCard signatureCard = (PINMgmtSignatureCard) createSignatureCard(); - PINProvider pinProvider = new PINProvider() { - @Override - public char[] providePIN(PINSpec spec, int retries) - throws CancelledException, InterruptedException { - throw new CancelledException(); - } - }; + ModifyPINGUI pinProvider = new CancelChangePINProvider(); List specs = signatureCard.getPINSpecs(); -- cgit v1.2.3