/* * SignHandler.java * * Created on den 9 januari 2005, 10:06 */ import java.security.*; import java.io.*; /** * * @author Henrik Johansson */ public class SignHandler { private String dataName; private String privateKeyName; private String signatureName; private String signatureAlgorithm = "SHA1withDSA"; private int bufSize = 1024; /** Creates a new instance of SignHandler */ public SignHandler() { } /** Creates a new instance of SignHandler */ public SignHandler(String dataName, String privateKeyName, String signatureName) { this.setDataName(dataName); this.setPrivateKeyName(privateKeyName); this.setSignatureName(signatureName); } public void createSignature() { try { // ladda nyckeln FileInputStream keyfis = new FileInputStream(getPrivateKeyName()); ObjectInputStream key = new ObjectInputStream(keyfis); PrivateKey pk = (PrivateKey) key.readObject(); key.close(); key.close(); // skapa signatur Signature s = Signature.getInstance(getSignatureAlgorithm()); s.initSign(pk); FileInputStream input = new FileInputStream(getDataName()); byte[] buf = new byte[getBufSize()]; int count = 0; while((count = input.read(buf, 0, getBufSize())) != -1) { s.update(buf, 0, count); } input.close(); byte[] signature = s.sign(); // spara signaturen FileOutputStream out = new FileOutputStream(getSignatureName()); out.write(signature); out.close(); } catch(Exception e) { e.printStackTrace(); } } public String getDataName() { return dataName; } public void setDataName(String dataName) { this.dataName = dataName; } public String getPrivateKeyName() { return privateKeyName; } public void setPrivateKeyName(String privateKeyName) { this.privateKeyName = privateKeyName; } public String getSignatureName() { return signatureName; } public void setSignatureName(String signatureName) { this.signatureName = signatureName; } public String getSignatureAlgorithm() { return signatureAlgorithm; } public void setSignatureAlgorithm(String signatureAlgorithm) { this.signatureAlgorithm = signatureAlgorithm; } public int getBufSize() { return bufSize; } public void setBufSize(int bufSize) { this.bufSize = bufSize; } /** * @param args the command line arguments */ public static void main(String[] args) { if(args.length != 3) { System.err.println("SignHandler måste anropas med tre argument, ."); System.exit(1); } SignHandler sh = new SignHandler(args[0], args[1], args[2]); sh.createSignature(); } }