dsa.3 (100947) | dsa.3 (110010) |
---|---|
1.\" Automatically generated by Pod::Man version 1.15 | 1.\" Automatically generated by Pod::Man version 1.15 |
2.\" Tue Jul 30 09:22:04 2002 | 2.\" Mon Jan 13 19:29:16 2003 |
3.\" 4.\" Standard preamble: 5.\" ====================================================================== 6.de Sh \" Subsection heading 7.br 8.if t .Sp 9.ne 5 10.PP --- 122 unchanged lines hidden (view full) --- 133. ds Th \o'LP' 134. ds ae ae 135. ds Ae AE 136.\} 137.rm #[ #] #H #V #F C 138.\" ====================================================================== 139.\" 140.IX Title "dsa 3" | 3.\" 4.\" Standard preamble: 5.\" ====================================================================== 6.de Sh \" Subsection heading 7.br 8.if t .Sp 9.ne 5 10.PP --- 122 unchanged lines hidden (view full) --- 133. ds Th \o'LP' 134. ds ae ae 135. ds Ae AE 136.\} 137.rm #[ #] #H #V #F C 138.\" ====================================================================== 139.\" 140.IX Title "dsa 3" |
141.TH dsa 3 "0.9.6e" "2000-04-13" "OpenSSL" | 141.TH dsa 3 "0.9.7" "2003-01-13" "OpenSSL" |
142.UC 143.SH "NAME" 144dsa \- Digital Signature Algorithm 145.SH "SYNOPSIS" 146.IX Header "SYNOPSIS" | 142.UC 143.SH "NAME" 144dsa \- Digital Signature Algorithm 145.SH "SYNOPSIS" 146.IX Header "SYNOPSIS" |
147.Vb 1 | 147.Vb 2 |
148\& #include <openssl/dsa.h> | 148\& #include <openssl/dsa.h> |
149\& #include <openssl/engine.h> |
|
149.Ve 150.Vb 2 151\& DSA * DSA_new(void); 152\& void DSA_free(DSA *dsa); 153.Ve 154.Vb 1 | 150.Ve 151.Vb 2 152\& DSA * DSA_new(void); 153\& void DSA_free(DSA *dsa); 154.Ve 155.Vb 1 |
155\& int DSA_size(DSA *dsa); | 156\& int DSA_size(const DSA *dsa); |
156.Ve 157.Vb 3 158\& DSA * DSA_generate_parameters(int bits, unsigned char *seed, 159\& int seed_len, int *counter_ret, unsigned long *h_ret, 160\& void (*callback)(int, int, void *), void *cb_arg); 161.Ve 162.Vb 1 | 157.Ve 158.Vb 3 159\& DSA * DSA_generate_parameters(int bits, unsigned char *seed, 160\& int seed_len, int *counter_ret, unsigned long *h_ret, 161\& void (*callback)(int, int, void *), void *cb_arg); 162.Ve 163.Vb 1 |
163\& DH * DSA_dup_DH(DSA *r); | 164\& DH * DSA_dup_DH(const DSA *r); |
164.Ve 165.Vb 1 166\& int DSA_generate_key(DSA *dsa); 167.Ve 168.Vb 6 169\& int DSA_sign(int dummy, const unsigned char *dgst, int len, 170\& unsigned char *sigret, unsigned int *siglen, DSA *dsa); 171\& int DSA_sign_setup(DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp, 172\& BIGNUM **rp); 173\& int DSA_verify(int dummy, const unsigned char *dgst, int len, | 165.Ve 166.Vb 1 167\& int DSA_generate_key(DSA *dsa); 168.Ve 169.Vb 6 170\& int DSA_sign(int dummy, const unsigned char *dgst, int len, 171\& unsigned char *sigret, unsigned int *siglen, DSA *dsa); 172\& int DSA_sign_setup(DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp, 173\& BIGNUM **rp); 174\& int DSA_verify(int dummy, const unsigned char *dgst, int len, |
174\& unsigned char *sigbuf, int siglen, DSA *dsa); | 175\& const unsigned char *sigbuf, int siglen, DSA *dsa); |
175.Ve 176.Vb 5 | 176.Ve 177.Vb 5 |
177\& void DSA_set_default_method(DSA_METHOD *meth); 178\& DSA_METHOD *DSA_get_default_method(void); 179\& DSA_METHOD *DSA_set_method(DSA *dsa, DSA_METHOD *meth); 180\& DSA *DSA_new_method(DSA_METHOD *meth); 181\& DSA_METHOD *DSA_OpenSSL(void); | 178\& void DSA_set_default_method(const DSA_METHOD *meth); 179\& const DSA_METHOD *DSA_get_default_method(void); 180\& int DSA_set_method(DSA *dsa, const DSA_METHOD *meth); 181\& DSA *DSA_new_method(ENGINE *engine); 182\& const DSA_METHOD *DSA_OpenSSL(void); |
182.Ve 183.Vb 4 184\& int DSA_get_ex_new_index(long argl, char *argp, int (*new_func)(), 185\& int (*dup_func)(), void (*free_func)()); 186\& int DSA_set_ex_data(DSA *d, int idx, char *arg); 187\& char *DSA_get_ex_data(DSA *d, int idx); 188.Ve 189.Vb 4 190\& DSA_SIG *DSA_SIG_new(void); 191\& void DSA_SIG_free(DSA_SIG *a); | 183.Ve 184.Vb 4 185\& int DSA_get_ex_new_index(long argl, char *argp, int (*new_func)(), 186\& int (*dup_func)(), void (*free_func)()); 187\& int DSA_set_ex_data(DSA *d, int idx, char *arg); 188\& char *DSA_get_ex_data(DSA *d, int idx); 189.Ve 190.Vb 4 191\& DSA_SIG *DSA_SIG_new(void); 192\& void DSA_SIG_free(DSA_SIG *a); |
192\& int i2d_DSA_SIG(DSA_SIG *a, unsigned char **pp); | 193\& int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); |
193\& DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, unsigned char **pp, long length); 194.Ve 195.Vb 3 196\& DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); 197\& int DSA_do_verify(const unsigned char *dgst, int dgst_len, 198\& DSA_SIG *sig, DSA *dsa); 199.Ve 200.Vb 6 201\& DSA * d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length); 202\& DSA * d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length); 203\& DSA * d2i_DSAparams(DSA **a, unsigned char **pp, long length); | 194\& DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, unsigned char **pp, long length); 195.Ve 196.Vb 3 197\& DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); 198\& int DSA_do_verify(const unsigned char *dgst, int dgst_len, 199\& DSA_SIG *sig, DSA *dsa); 200.Ve 201.Vb 6 202\& DSA * d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length); 203\& DSA * d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length); 204\& DSA * d2i_DSAparams(DSA **a, unsigned char **pp, long length); |
204\& int i2d_DSAPublicKey(DSA *a, unsigned char **pp); 205\& int i2d_DSAPrivateKey(DSA *a, unsigned char **pp); 206\& int i2d_DSAparams(DSA *a,unsigned char **pp); | 205\& int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); 206\& int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); 207\& int i2d_DSAparams(const DSA *a,unsigned char **pp); |
207.Ve 208.Vb 4 | 208.Ve 209.Vb 4 |
209\& int DSAparams_print(BIO *bp, DSA *x); 210\& int DSAparams_print_fp(FILE *fp, DSA *x); 211\& int DSA_print(BIO *bp, DSA *x, int off); 212\& int DSA_print_fp(FILE *bp, DSA *x, int off); | 210\& int DSAparams_print(BIO *bp, const DSA *x); 211\& int DSAparams_print_fp(FILE *fp, const DSA *x); 212\& int DSA_print(BIO *bp, const DSA *x, int off); 213\& int DSA_print_fp(FILE *bp, const DSA *x, int off); |
213.Ve 214.SH "DESCRIPTION" 215.IX Header "DESCRIPTION" 216These functions implement the Digital Signature Algorithm (\s-1DSA\s0). The 217generation of shared \s-1DSA\s0 parameters is described in 218DSA_generate_parameters(3); 219DSA_generate_key(3) describes how to 220generate a signature key. Signature generation and verification are --- 9 unchanged lines hidden (view full) --- 230\& BIGNUM *g; // generator of subgroup (public) 231\& BIGNUM *priv_key; // private key x 232\& BIGNUM *pub_key; // public key y = g^x 233\& // ... 234\& } 235\& DSA; 236.Ve 237In public keys, \fBpriv_key\fR is \s-1NULL\s0. | 214.Ve 215.SH "DESCRIPTION" 216.IX Header "DESCRIPTION" 217These functions implement the Digital Signature Algorithm (\s-1DSA\s0). The 218generation of shared \s-1DSA\s0 parameters is described in 219DSA_generate_parameters(3); 220DSA_generate_key(3) describes how to 221generate a signature key. Signature generation and verification are --- 9 unchanged lines hidden (view full) --- 231\& BIGNUM *g; // generator of subgroup (public) 232\& BIGNUM *priv_key; // private key x 233\& BIGNUM *pub_key; // public key y = g^x 234\& // ... 235\& } 236\& DSA; 237.Ve 238In public keys, \fBpriv_key\fR is \s-1NULL\s0. |
239.PP 240Note that \s-1DSA\s0 keys may use non-standard \fB\s-1DSA_METHOD\s0\fR implementations, 241either directly or by the use of \fB\s-1ENGINE\s0\fR modules. In some cases (eg. an 242\&\s-1ENGINE\s0 providing support for hardware-embedded keys), these \s-1BIGNUM\s0 values 243will not be used by the implementation or may be used for alternative data 244storage. For this reason, applications should generally avoid using \s-1DSA\s0 245structure elements directly and instead use \s-1API\s0 functions to query or 246modify keys. |
|
238.SH "CONFORMING TO" 239.IX Header "CONFORMING TO" 240\&\s-1US\s0 Federal Information Processing Standard \s-1FIPS\s0 186 (Digital Signature 241Standard, \s-1DSS\s0), \s-1ANSI\s0 X9.30 242.SH "SEE ALSO" 243.IX Header "SEE ALSO" 244bn(3), dh(3), err(3), rand(3), | 247.SH "CONFORMING TO" 248.IX Header "CONFORMING TO" 249\&\s-1US\s0 Federal Information Processing Standard \s-1FIPS\s0 186 (Digital Signature 250Standard, \s-1DSS\s0), \s-1ANSI\s0 X9.30 251.SH "SEE ALSO" 252.IX Header "SEE ALSO" 253bn(3), dh(3), err(3), rand(3), |
245rsa(3), sha(3), DSA_new(3), | 254rsa(3), sha(3), engine(3), 255DSA_new(3), |
246DSA_size(3), 247DSA_generate_parameters(3), 248DSA_dup_DH(3), 249DSA_generate_key(3), 250DSA_sign(3), DSA_set_method(3), 251DSA_get_ex_new_index(3), 252RSA_print(3) | 256DSA_size(3), 257DSA_generate_parameters(3), 258DSA_dup_DH(3), 259DSA_generate_key(3), 260DSA_sign(3), DSA_set_method(3), 261DSA_get_ex_new_index(3), 262RSA_print(3) |