-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDSS.java
30 lines (29 loc) · 1.1 KB
/
DSS.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.io.UnsupportedEncodingException;
import java.util.*;
import java.security.*;
public class DSS {
public static void main(String[] args)
throws NoSuchAlgorithmException, InvalidKeyException, SignatureException, UnsupportedEncodingException {
Scanner sc = new Scanner(System.in);
System.out.print("Text : ");
String msg = sc.nextLine();
KeyPairGenerator keys = KeyPairGenerator.getInstance("DSA");
keys.initialize(2048);
KeyPair key = keys.generateKeyPair();
PrivateKey pk = key.getPrivate();
PublicKey puk = key.getPublic();
Signature sign = Signature.getInstance("SHA256withDSA");
sign.initSign(pk);
byte[] text = msg.getBytes();
sign.update(text);
byte[] signature = sign.sign();
sign.initVerify(puk);
System.out.print("Data : ");
String data = sc.nextLine();
sign.update(data.getBytes());
if (sign.verify(signature))
System.out.println("Signature Verified !");
else
System.out.println("Signature Invalid !");
}
}