DSA

Digital Signature Algorithm (DSA) as defined in FIPS 186-5.

DSA provides digital signature generation and verification using finite-field arithmetic. Domain Parameters define the group and must be generated via parametersGenerator or decoded via parametersDecoder before key pairs can be created.

val params = provider.get(DSA).parametersGenerator(2048.bits).generateParameters()
val keys = params.keyPairGenerator().generateKey()
val signature = keys.privateKey.signatureGenerator(SHA256, DSA.SignatureFormat.DER).generateSignature(data)
keys.publicKey.signatureVerifier(SHA256, DSA.SignatureFormat.DER).verifySignature(data, signature)

For the elliptic curve variant, see ECDSA.

Types

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

DSA domain parameters that provide key pair generation via keyPairGenerator.

Link copied to clipboard

A DSA private key that provides signature generation via signatureGenerator.

Link copied to clipboard

A DSA public key that provides signature verification via signatureVerifier.

Link copied to clipboard

Encoding format for DSA signatures.

Properties

Link copied to clipboard
open override val id: CryptographyAlgorithmId<DSA>

The typed identifier that uniquely distinguishes this algorithm and is used to look it up from a CryptographyProvider.

Functions

Link copied to clipboard

Returns a Decoder that decodes DSA domain parameters from the specified Parameters.Format.

Link copied to clipboard
abstract fun parametersGenerator(primeSize: BinarySize, subprimeSize: BinarySize? = null): ParametersGenerator<DSA.Parameters>

Returns a ParametersGenerator that generates DSA domain parameters with the specified primeSize and optional subprimeSize.

Link copied to clipboard

Returns a Decoder that decodes DSA private keys from the specified PrivateKey.Format.

Link copied to clipboard

Returns a Decoder that decodes DSA public keys from the specified PublicKey.Format.