Index Index for
Section 3
Index Alphabetical
listing for D
Bottom of page Bottom of
page

dsa(3)

NAME

dsa - Digital Signature Algorithm

SYNOPSIS

#include <openssl/dsa.h> #include <openssl/engine.h> DSA * DSA_new( void ); void DSA_free( DSA *dsa ); int DSA_size( DSA *dsa ); DSA * DSA_generate_parameters( int bits, unsigned char *seed, int seed_len, int *counter_ret, unsigned long *h_ret, void (*callback)(int, int, void*), void *cb_arg ); DH * DSA_dup_DH( DSA *r ); int DSA_generate_key( DSA *dsa ); int DSA_sign( int dummy, const unsigned char *dgst, int len, unsigned char *sigret, unsigned int *siglen, DSA *dsa ); int DSA_sign_setup( DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp, BIGNUM **rp ); int DSA_verify( int dummy, const unsigned char *dgst, int len, unsigned char *sigbuf, int siglen, DSA *dsa ); void DSA_set_default_openssl_method( DSA_METHOD *meth ); DSA_METHOD *DSA_get_default_openssl_method( void ); int DSA_set_method( DSA *dsa, ENGINE *engine ); DSA *DSA_new_method( ENGINE *engine ); DSA_METHOD *DSA_OpenSSL( void ); int DSA_get_ex_new_index( long argl, char *argp, int (*new_func)(), int (*dup_func)(), void (*free_func)() ); int DSA_set_ex_data( DSA *d, int idx, char *arg ); char *DSA_get_ex_data( DSA *d, int idx ); DSA_SIG *DSA_SIG_new( void ); void DSA_SIG_free( DSA_SIG *a ); int i2d_DSA_SIG( DSA_SIG *a, unsigned char **pp ); DSA_SIG *d2i_DSA_SIG( DSA_SIG **v, unsigned char **pp, long length ); DSA_SIG *DSA_do_sign( const unsigned char *dgst, int dlen, DSA *dsa ); int DSA_do_verify( const unsigned char *dgst, int dgst_len, DSA_SIG *sig, DSA *dsa ); DSA * d2i_DSAPublicKey( DSA **a, unsigned char **pp, long length ); DSA * d2i_DSAPrivateKey( DSA **a, unsigned char **pp, long length ); DSA * d2i_DSAparams( DSA **a, unsigned char **pp, long length ); int i2d_DSAPublicKey( DSA *a, unsigned char **pp ); int i2d_DSAPrivateKey( DSA *a, unsigned char **pp ); int i2d_DSAparams( DSA *a, unsigned char **pp ); int DSAparams_print( BIO *bp, DSA *x ); int DSAparams_print_fp( FILE *fp, DSA *x ); int DSA_print( BIO *bp, DSA *x, int off ); int DSA_print_fp( FILE *bp, DSA *x, int off );

DESCRIPTION

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. 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. DSA conforms to US Federal Information Processing Standard FIPS 186 (Digital Signature Standard, DSS), ANSI X9.30

SEE ALSO

Functions: bn(3), dh(3), err(3), rand_ssl(3), rsa(3), sha(3), DSA_new(3), DSA_size(3), DSA_generate_parameters(3), DSA_dup_DH(3), DSA_generate_key(3), DSA_sign(3), DSA_set_method(3), DSA_get_ex_new_index(3), RSA_print(3)

Index Index for
Section 3
Index Alphabetical
listing for D
Top of page Top of
page