Manual Page Search Parameters
DSA(3) Library Functions Manual DSA(3)


dsaDigital Signature Algorithm


#include <openssl/dsa.h>


These functions implement the Digital Signature Algorithm (DSA). The generation of shared DSA parameters is described in DSA_generate_parameters(3); DSA_generate_key(3) describes how to generate a signature key. Signature generation and verification are described in DSA_sign(3).
The DSA structure consists of several BIGNUM components.
typedef struct { 
	BIGNUM *p;		// prime number (public) 
	BIGNUM *q;		// 160-bit subprime, q | p-1 (public) 
	BIGNUM *g;		// generator of subgroup (public) 
	BIGNUM *priv_key;	// private key x 
	BIGNUM *pub_key;	// public key y = g^x 
	// ... 
} DSA;
In public keys, priv_key is NULL.
Note that DSA keys may use non-standard DSA_METHOD implementations, either directly or by the use of ENGINE modules. In some cases (e.g. an ENGINE providing support for hardware-embedded keys), these BIGNUM values will not be used by the implementation or may be used for alternative data storage. For this reason, applications should generally avoid using DSA structure elements directly and instead use API functions to query or modify keys.


bn(3), d2i_DSAPublicKey(3), dh(3), DSA_do_sign(3), DSA_dup_DH(3), DSA_generate_key(3), DSA_generate_parameters(3), DSA_get_ex_new_index(3), DSA_new(3), DSA_print(3), DSA_set_method(3), DSA_SIG_new(3), DSA_sign(3), DSA_size(3), engine(3), ERR(3), rsa(3)


US Federal Information Processing Standard FIPS 186 (Digital Signature Standard, DSS), ANSI X9.30
November 6, 2016 OpenBSD-current