Pastebin

Paste #202:

< previous paste - next paste>

Pasted by Flawless

Download View as text

DoSign.java (fundet på nettet, skrevet 50% om)

package dosign;

import java.io.*;
import javax.net.ssl.*;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Signature;
import java.math.BigInteger;

/*
 *  This program signs a small access right certificate using
 *  SHA1withDSA.
 */
public class DoSign {

    public static void main(String[] args) throws Exception {
	KeyManager[] xkm = null;
	KeyManagerFactory kmf;
	KeyStore ks;
	
	if(args.length != 1) {
	    System.out.println("Usage: java DoSign <ID:rights string>");
	    System.exit(-1);
	} else 
	    System.out.println("signing: " + args[0]);

	/*
	 *  Open the server keystore and get server public key for signing.
	 */
	char[] passphrase = "idsids".toCharArray();
	kmf = KeyManagerFactory.getInstance("SunX509");
	ks = KeyStore.getInstance("JKS");
	ks.load(new FileInputStream("../ssl/ServerStore"), passphrase);
	kmf.init(ks, passphrase);
	xkm = kmf.getKeyManagers();
	X509KeyManager xxkm = (X509KeyManager) xkm[0];
	PrivateKey pk = xxkm.getPrivateKey("server");

	/*
	 *  Now sign the string given as argument.
	 */
	Signature dsa = Signature.getInstance("SHA1withDSA");
	dsa.initSign(pk);
	dsa.update(args[0].getBytes());
	byte[] signature = dsa.sign();
	/* Convert signature to hex using BigInteger */
	BigInteger bi = new BigInteger(signature);
	String txtSignature = bi.toString(16);
	if (txtSignature.length() % 2 != 0) {
	    // Pad with 0
	    txtSignature = "0"+txtSignature;
	}
	System.out.println(args[0] + ":" + txtSignature);
    }
}

New Paste


Do not write anything in this field if you're a human.

Go to most recent paste.