26 lines
946 B
Java
26 lines
946 B
Java
package sheet02.a2;
|
|
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.security.KeyPairGenerator;
|
|
import java.security.Signature;
|
|
import java.util.Base64;
|
|
|
|
public class SignECDSA {
|
|
public static void main(String[] args) throws Exception {
|
|
final var gen = KeyPairGenerator.getInstance("EC");
|
|
final var kp = gen.genKeyPair();
|
|
|
|
final var bytes = Files.readAllBytes(Path.of("plaintext.txt"));
|
|
final var sig = Signature.getInstance("SHA256withECDSA");
|
|
sig.initVerify(kp.getPublic());
|
|
sig.initSign(kp.getPrivate());
|
|
sig.update(bytes);
|
|
final var signature = sig.sign();
|
|
|
|
Files.write(Path.of("signature.txt"), Base64.getEncoder().encode(signature));
|
|
Files.write(Path.of("sign-key.pub"), Base64.getEncoder().encode(kp.getPublic().getEncoded()));
|
|
Files.write(Path.of("sign-key"), Base64.getEncoder().encode(kp.getPrivate().getEncoded()));
|
|
}
|
|
}
|