/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bftsmart.tom.util;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
/**
*
* @author alysson
*/
public class SignatureTest {
public static void main(String[] args) throws Exception {
byte[] data = new byte[20];
byte[] signature;
Signature signEng;
long start, end;
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair kp = kpg.genKeyPair();
PublicKey publicKey = kp.getPublic();
PrivateKey privateKey = kp.getPrivate();
signEng = Signature.getInstance("SHA1withRSA");
for(int i=0; i<1000; i++) {
signEng = Signature.getInstance("SHA1withRSA");
signEng.initSign(privateKey);
}
start = System.currentTimeMillis();
for(int i=0; i<1000; i++) {
signEng = Signature.getInstance("SHA1withRSA");
signEng.initSign(privateKey);
}
end = System.currentTimeMillis();
System.out.println("1000 init sign: "+(end-start)+"ms");
for(int i=0; i<1000; i++) {
signEng.update(data);
signature = signEng.sign();
}
start = System.currentTimeMillis();
for(int i=0; i<1000; i++) {
signEng.update(data);
signature = signEng.sign();
}
end = System.currentTimeMillis();
System.out.println("1000 sign: "+(end-start)+"ms");
signEng.update(data);
signature = signEng.sign();
for(int i=0; i<1000; i++) {
signEng = Signature.getInstance("SHA1withRSA");
signEng.initVerify(publicKey);
}
start = System.currentTimeMillis();
for(int i=0; i<1000; i++) {
signEng = Signature.getInstance("SHA1withRSA");
signEng.initVerify(publicKey);
}
end = System.currentTimeMillis();
System.out.println("1000 init verify: "+(end-start)+"ms");
for(int i=0; i<1000; i++) {
signEng.update(data);
signEng.verify(signature);
}
start = System.currentTimeMillis();
for(int i=0; i<1000; i++) {
signEng.update(data);
signEng.verify(signature);
}
end = System.currentTimeMillis();
System.out.println("1000 verify: "+(end-start)+"ms");
}
}