Mega Code Archive

 
Categories / Java / Security
 

Signature Test

import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; import java.security.Signature; public class SignatureTest {   public static void main(String[] args) {     try {       KeyPairGenerator keygen = KeyPairGenerator.getInstance("DSA");       SecureRandom secrand = new SecureRandom();       keygen.initialize(512, secrand);       KeyPair keys1 = keygen.generateKeyPair();       PublicKey pubkey1 = keys1.getPublic();       PrivateKey privkey1 = keys1.getPrivate();       KeyPair keys2 = keygen.generateKeyPair();       PublicKey pubkey2 = keys2.getPublic();       PrivateKey privkey2 = keys2.getPrivate();       Signature signalg = Signature.getInstance("DSA");       signalg.initSign(privkey1);       String message = "Pay authors a bonus of $20,000.";       signalg.update(message.getBytes());       byte[] signature = signalg.sign();       Signature verifyalg = Signature.getInstance("DSA");       verifyalg.initVerify(pubkey1);       verifyalg.update(message.getBytes());       if (!verifyalg.verify(signature))         System.out.print("not ");       System.out.println("signed with private key 1");       verifyalg.initVerify(pubkey2);       verifyalg.update(message.getBytes());       if (!verifyalg.verify(signature))         System.out.print("not ");       System.out.println("signed with private key 2");     } catch (Exception e) {       System.out.println("Error " + e);     }   } }