/* DigitalSignature.java */ import java.io.*; import java.security.cert.Certificate; import java.security.*; public class DigitalSignature { static final String KEYSTORE = "c:\\windows\\.keystore"; static final char[] KSPASS = {'h','j','p','3','k','s'}; static final String ALIAS = "hjp3"; static final char[] KEYPASS = {'h','j','p','3','k','e','y'}; public static void main(String[] args) { try { //Laden der Schlüsseldatenbank KeyStore ks = KeyStore.getInstance("JKS"); FileInputStream ksin = new FileInputStream(KEYSTORE); ks.load(ksin, KSPASS); ksin.close(); //Privaten Schlüssel "hjp3" lesen Key key = ks.getKey(ALIAS, KEYPASS); //Signatur-Objekt erstellen Signature signature = Signature.getInstance("SHA/DSA"); signature.initSign((PrivateKey)key); //Eingabedatei einlesen FileInputStream in = new FileInputStream(args[0]); int len; byte[] data = new byte[1024]; while ((len = in.read(data)) > 0) { //Signatur updaten signature.update(data, 0, len); } in.close(); //Signatur berechnen byte[] result = signature.sign(); //Signatur ausgeben FileOutputStream out = new FileOutputStream(args[1]); out.write(result, 0, result.length); out.close(); } catch (Exception e) { System.err.println(e.toString()); System.exit(1); } } }