Digital Signature Algorithm Demo : Digital Signature Algorithm « Security « Java Tutorial






import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;
import java.security.Security;
import java.security.Signature;

public class MainClass {
  public static void main(String[] args) throws Exception {
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

    KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "BC");

    keyGen.initialize(512, new SecureRandom());

    KeyPair keyPair = keyGen.generateKeyPair();
    Signature signature = Signature.getInstance("DSA", "BC");

    signature.initSign(keyPair.getPrivate(), new SecureRandom());
    byte[] message = "abc".getBytes();
    signature.update(message);

    byte[] sigBytes = signature.sign();
    signature.initVerify(keyPair.getPublic());
    signature.update(message);
    System.out.println(signature.verify(sigBytes));
  }
}








36.16.Digital Signature Algorithm
36.16.1.Use DSA to Sign
36.16.2.Signed Object
36.16.3.Creating a Signature
36.16.4.Verifies the signature for the given buffer of bytes using the public key.
36.16.5.Digital Signature Algorithm Demo
36.16.6.DSA with Elliptic Curve
36.16.7.DSA Key Translator
36.16.8.Use DSAPrivateKeySpec
36.16.9.Getting the Digital Signature Algorithm (DSA) Parameters of a Key Pair
36.16.10.Create the DSA key factory from a Set of Digital Signature Algorithm (DSA) Parameters
36.16.11.Create the DSA private key from a Set of Digital Signature Algorithm (DSA) Parameters
36.16.12.Create the DSA public key from a Set of Digital Signature Algorithm (DSA) Parameters
36.16.13.Export DSAPrivateKeySpec
36.16.14.Signing a Java Object