From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/examples/DigitalSignature.java | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/examples/DigitalSignature.java (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/DigitalSignature.java') diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/DigitalSignature.java b/Master/Reference Architectures and Patterns/hjp5/examples/DigitalSignature.java new file mode 100644 index 0000000..7a7b809 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/examples/DigitalSignature.java @@ -0,0 +1,47 @@ +/* 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); + } + } +} \ No newline at end of file -- cgit v1.2.3