Dsa Key Generation In Java
Now that you have created a public key and a private key, you are ready to sign the data. In this example you will sign the data contained in a file. GenSig gets the file name from the command line. A digital signature is created (or verified) using an instance of the Signature class. Using the KeyGenerator class and showing how to create a SecretKeySpec from an encoded key: 2. Key Generator Mac: 3. KeyPair Generator For Private Key: 4. KeyPair Generator For Public Key: 5. Wrap And Unwrap Key: 6. Generating a Public/Private Key Pair: 7. Generate a 576-bit DH key pair: 8. Generate a 1024-bit RSA key pair: 9. Getting the Bytes. The G Suite Single Sign-On service accepts public keys and certificates generated with either the RSA or DSA algorithm. To use the service, you need to generate the set of public and private keys and an X.509 certificate that contains the public key. Once you have a public key or certificate, you would then need to register it with Google.
The Digital Signature Algorithm (DSA) is a Federal Information Processing Standard for digital signatures, based on the mathematical concept of modular exponentiation and the discrete logarithm problem. DSA is a variant of the Schnorr and ElGamal signature schemes.: 486. The keysize for a DSA key generator is the key length (in bits), which you will set to 1024. The source of randomness must be an instance of the SecureRandom class that provides a cryptographically strong random number generator (RNG).
- Class
Interface DSAKeyPairGenerator
- An interface to an object capable of generating DSA key pairs.
The
initialize
methods may each be called any number of times. If noinitialize
method is called on a DSAKeyPairGenerator, the default is to generate 1024-bit keys, using precomputed p, q and g parameters and an instance of SecureRandom as the random bit source.Users wishing to indicate DSA-specific parameters, and to generate a key pair suitable for use with the DSA algorithm typically
- Get a key pair generator for the DSA algorithm by calling the KeyPairGenerator
getInstance
method with 'DSA' as its argument. - Initialize the generator by casting the result to a DSAKeyPairGenerator and calling one of the
initialize
methods from this DSAKeyPairGenerator interface. - Generate a key pair by calling the
generateKeyPair
method from the KeyPairGenerator class.
Note: it is not always necessary to do do algorithm-specific initialization for a DSA key pair generator. That is, it is not always necessary to call an
initialize
method in this interface. Algorithm-independent initialization using theinitialize
Openssl generate public private key. method in the KeyPairGenerator interface is all that is needed when you accept defaults for algorithm-specific parameters.- See Also:
KeyPairGenerator
- Get a key pair generator for the DSA algorithm by calling the KeyPairGenerator
Method Summary
Methods Modifier and Type Method and Description void
initialize(DSAParams params, SecureRandom random)
Initializes the key pair generator using the DSA family parameters (p,q and g) and an optional SecureRandom bit source.void
initialize(int modlen, boolean genParams, SecureRandom random)
Initializes the key pair generator for a given modulus length (instead of parameters), and an optional SecureRandom bit source.
Method Detail
initialize
Initializes the key pair generator using the DSA family parameters (p,q and g) and an optional SecureRandom bit source. If a SecureRandom bit source is needed but not supplied, i.e. null, a default SecureRandom instance will be used.- Parameters:
params
- the parameters to use to generate the keys.random
- the random bit source to use to generate key bits; can be null.- Throws:
InvalidParameterException
- if theparams
value is invalid or null.
initialize
Initializes the key pair generator for a given modulus length (instead of parameters), and an optional SecureRandom bit source. If a SecureRandom bit source is needed but not supplied, i.e. null, a default SecureRandom instance will be used.If
genParams
is true, this method generates new p, q and g parameters. If it is false, the method uses precomputed parameters for the modulus length requested. If there are no precomputed parameters for that modulus length, an exception will be thrown. It is guaranteed that there will always be default parameters for modulus lengths of 512 and 1024 bits.- Parameters:
modlen
- the modulus length in bits. Valid values are any multiple of 8 between 512 and 1024, inclusive.random
- the random bit source to use to generate key bits; can be null.genParams
- whether or not to generate new parameters for the modulus length requested.- Throws:
InvalidParameterException
- ifmodlen
is not between 512 and 1024, or ifgenParams
is false and there are no precomputed parameters for the requested modulus length.
- Class
- Summary:
- Nested
- Field
- Constr
- Detail:
- Field
- Constr
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2018, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
Scripting on this page tracks web page traffic, but does not change the content in any way.
- Java Cryptography Tutorial
Generate Dsa Key
- Message Digest and MAC
- Keys and Key Store
- Generating Keys
- Digital Signature
- Cipher Text
- Java Cryptography Resources
- Selected Reading
Java provides KeyGenerator class this class is used to generate secret keys and objects of this class are reusable.
To generate keys using the KeyGenerator class follow the steps given below.
Step 1: Create a KeyGenerator object
The KeyGenerator class provides getInstance() method which accepts a String variable representing the required key-generating algorithm and returns a KeyGenerator object that generates secret keys.
Create KeyGenerator object using the getInstance() method as shown below.
Step 2: Create SecureRandom object
Dsa Key Generation In Java Free
The SecureRandom class of the java.Security package provides a strong random number generator which is used to generate random numbers in Java. Instantiate this class as shown below.
Step 3: Initialize the KeyGenerator
The KeyGenerator class provides a method named init() this method accepts the SecureRandom object and initializes the current KeyGenerator.
Initialize the KeyGenerator object created in the previous step using the init() method.
Example
Following example demonstrates the key generation of the secret key using the KeyGenerator class of the javax.crypto package.
Output
The above program generates the following output −