diff options
Diffstat (limited to 'smcc/src/test/java')
| -rw-r--r-- | smcc/src/test/java/at/gv/egiz/smcc/STARCOSCardTest.java | 92 | 
1 files changed, 92 insertions, 0 deletions
| diff --git a/smcc/src/test/java/at/gv/egiz/smcc/STARCOSCardTest.java b/smcc/src/test/java/at/gv/egiz/smcc/STARCOSCardTest.java new file mode 100644 index 00000000..b921a5d5 --- /dev/null +++ b/smcc/src/test/java/at/gv/egiz/smcc/STARCOSCardTest.java @@ -0,0 +1,92 @@ +/* +* 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 java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Locale; + +import javax.smartcardio.CardException; +import javax.smartcardio.CommandAPDU; +import javax.smartcardio.ResponseAPDU; + +import at.gv.egiz.smcc.SignatureCard.KeyboxName; +import at.gv.egiz.smcc.util.SMCCHelper; + +public class STARCOSCardTest { + +  /** +   * @param args +   * @throws CardException  +   * @throws NoSuchAlgorithmException  +   */ +  public static void main(String[] args) throws CardException, NoSuchAlgorithmException { +     +    SMCCHelper helper = new SMCCHelper(); +    while (helper.getResultCode() != SMCCHelper.CARD_FOUND) { +      System.out.println("Did not get a signature card ... " + helper.getResultCode()); +      helper.update(); +      try { +        Thread.sleep(1000); +      } catch (InterruptedException e) { +        e.printStackTrace(); +      } +    } +     +    SignatureCard signatureCard = helper.getSignatureCard(Locale.getDefault()); +     +    System.out.println("Found '" + signatureCard + "'."); +     +    try { +//      signatureCard.getCertificate(KeyboxName.SECURE_SIGNATURE_KEYPAIR); +//      signatureCard.getCertificate(KeyboxName.CERITIFIED_KEYPAIR); +//      signatureCard.getInfobox("IdentityLink", new CommandLinePINProvider(), null); +      MessageDigest messageDigest = MessageDigest.getInstance("SHA-1"); +      byte[] digest = messageDigest.digest("test".getBytes()); +      signatureCard.createSignature(digest, KeyboxName.CERITIFIED_KEYPAIR, new CommandLinePINProvider()); +    } catch (SignatureCardException e) { +      e.printStackTrace(); +    } + +  } +   +  private static class CommandLinePINProvider implements PINProvider { + +    @Override +    public String providePIN(PINSpec spec, int retries) { +       +      InputStreamReader inputStreamReader = new InputStreamReader(System.in); +      BufferedReader in = new BufferedReader(inputStreamReader); +       +      System.out.print("Enter " + spec.getLocalizedName() + " [" +          + spec.getMinLength() + "-" + spec.getMaxLength() + "] (" + retries +          + " retries):"); +       +      try { +        return in.readLine(); +      } catch (IOException e) { +        return null; +      } +       +    } +     +  } + +} | 
