diff options
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa.h')
| -rw-r--r-- | src/lib/libcrypto/dsa/dsa.h | 61 |
1 files changed, 49 insertions, 12 deletions
diff --git a/src/lib/libcrypto/dsa/dsa.h b/src/lib/libcrypto/dsa/dsa.h index 20b3f8d90a..68d9912cbc 100644 --- a/src/lib/libcrypto/dsa/dsa.h +++ b/src/lib/libcrypto/dsa/dsa.h | |||
| @@ -74,13 +74,41 @@ extern "C" { | |||
| 74 | #endif | 74 | #endif |
| 75 | 75 | ||
| 76 | #include <openssl/bn.h> | 76 | #include <openssl/bn.h> |
| 77 | #include <openssl/crypto.h> | ||
| 77 | #ifndef NO_DH | 78 | #ifndef NO_DH |
| 78 | # include <openssl/dh.h> | 79 | # include <openssl/dh.h> |
| 79 | #endif | 80 | #endif |
| 80 | 81 | ||
| 81 | #define DSA_FLAG_CACHE_MONT_P 0x01 | 82 | #define DSA_FLAG_CACHE_MONT_P 0x01 |
| 82 | 83 | ||
| 83 | typedef struct dsa_st | 84 | typedef struct dsa_st DSA; |
| 85 | |||
| 86 | typedef struct DSA_SIG_st | ||
| 87 | { | ||
| 88 | BIGNUM *r; | ||
| 89 | BIGNUM *s; | ||
| 90 | } DSA_SIG; | ||
| 91 | |||
| 92 | typedef struct dsa_method { | ||
| 93 | const char *name; | ||
| 94 | DSA_SIG * (*dsa_do_sign)(const unsigned char *dgst, int dlen, DSA *dsa); | ||
| 95 | int (*dsa_sign_setup)(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, | ||
| 96 | BIGNUM **rp); | ||
| 97 | int (*dsa_do_verify)(const unsigned char *dgst, int dgst_len, | ||
| 98 | DSA_SIG *sig, DSA *dsa); | ||
| 99 | int (*dsa_mod_exp)(DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, | ||
| 100 | BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, | ||
| 101 | BN_MONT_CTX *in_mont); | ||
| 102 | int (*bn_mod_exp)(DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, | ||
| 103 | const BIGNUM *m, BN_CTX *ctx, | ||
| 104 | BN_MONT_CTX *m_ctx); /* Can be null */ | ||
| 105 | int (*init)(DSA *dsa); | ||
| 106 | int (*finish)(DSA *dsa); | ||
| 107 | int flags; | ||
| 108 | char *app_data; | ||
| 109 | } DSA_METHOD; | ||
| 110 | |||
| 111 | struct dsa_st | ||
| 84 | { | 112 | { |
| 85 | /* This first variable is used to pick up errors where | 113 | /* This first variable is used to pick up errors where |
| 86 | * a DSA is passed instead of of a EVP_PKEY */ | 114 | * a DSA is passed instead of of a EVP_PKEY */ |
| @@ -100,15 +128,10 @@ typedef struct dsa_st | |||
| 100 | int flags; | 128 | int flags; |
| 101 | /* Normally used to cache montgomery values */ | 129 | /* Normally used to cache montgomery values */ |
| 102 | char *method_mont_p; | 130 | char *method_mont_p; |
| 103 | |||
| 104 | int references; | 131 | int references; |
| 105 | } DSA; | 132 | CRYPTO_EX_DATA ex_data; |
| 106 | 133 | DSA_METHOD *meth; | |
| 107 | typedef struct DSA_SIG_st | 134 | }; |
| 108 | { | ||
| 109 | BIGNUM *r; | ||
| 110 | BIGNUM *s; | ||
| 111 | } DSA_SIG; | ||
| 112 | 135 | ||
| 113 | #define DSAparams_dup(x) (DSA *)ASN1_dup((int (*)())i2d_DSAparams, \ | 136 | #define DSAparams_dup(x) (DSA *)ASN1_dup((int (*)())i2d_DSAparams, \ |
| 114 | (char *(*)())d2i_DSAparams,(char *)(x)) | 137 | (char *(*)())d2i_DSAparams,(char *)(x)) |
| @@ -131,7 +154,14 @@ DSA_SIG * DSA_do_sign(const unsigned char *dgst,int dlen,DSA *dsa); | |||
| 131 | int DSA_do_verify(const unsigned char *dgst,int dgst_len, | 154 | int DSA_do_verify(const unsigned char *dgst,int dgst_len, |
| 132 | DSA_SIG *sig,DSA *dsa); | 155 | DSA_SIG *sig,DSA *dsa); |
| 133 | 156 | ||
| 157 | DSA_METHOD *DSA_OpenSSL(void); | ||
| 158 | |||
| 159 | void DSA_set_default_method(DSA_METHOD *); | ||
| 160 | DSA_METHOD *DSA_get_default_method(void); | ||
| 161 | DSA_METHOD *DSA_set_method(DSA *dsa, DSA_METHOD *); | ||
| 162 | |||
| 134 | DSA * DSA_new(void); | 163 | DSA * DSA_new(void); |
| 164 | DSA * DSA_new_method(DSA_METHOD *meth); | ||
| 135 | int DSA_size(DSA *); | 165 | int DSA_size(DSA *); |
| 136 | /* next 4 return -1 on error */ | 166 | /* next 4 return -1 on error */ |
| 137 | int DSA_sign_setup( DSA *dsa,BN_CTX *ctx_in,BIGNUM **kinvp,BIGNUM **rp); | 167 | int DSA_sign_setup( DSA *dsa,BN_CTX *ctx_in,BIGNUM **kinvp,BIGNUM **rp); |
| @@ -140,6 +170,10 @@ int DSA_sign(int type,const unsigned char *dgst,int dlen, | |||
| 140 | int DSA_verify(int type,const unsigned char *dgst,int dgst_len, | 170 | int DSA_verify(int type,const unsigned char *dgst,int dgst_len, |
| 141 | unsigned char *sigbuf, int siglen, DSA *dsa); | 171 | unsigned char *sigbuf, int siglen, DSA *dsa); |
| 142 | void DSA_free (DSA *r); | 172 | void DSA_free (DSA *r); |
| 173 | int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, | ||
| 174 | CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); | ||
| 175 | int DSA_set_ex_data(DSA *d, int idx, void *arg); | ||
| 176 | void *DSA_get_ex_data(DSA *d, int idx); | ||
| 143 | 177 | ||
| 144 | void ERR_load_DSA_strings(void ); | 178 | void ERR_load_DSA_strings(void ); |
| 145 | 179 | ||
| @@ -148,7 +182,7 @@ DSA * d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length); | |||
| 148 | DSA * d2i_DSAparams(DSA **a, unsigned char **pp, long length); | 182 | DSA * d2i_DSAparams(DSA **a, unsigned char **pp, long length); |
| 149 | DSA * DSA_generate_parameters(int bits, unsigned char *seed,int seed_len, | 183 | DSA * DSA_generate_parameters(int bits, unsigned char *seed,int seed_len, |
| 150 | int *counter_ret, unsigned long *h_ret,void | 184 | int *counter_ret, unsigned long *h_ret,void |
| 151 | (*callback)(),char *cb_arg); | 185 | (*callback)(int, int, void *),void *cb_arg); |
| 152 | int DSA_generate_key(DSA *a); | 186 | int DSA_generate_key(DSA *a); |
| 153 | int i2d_DSAPublicKey(DSA *a, unsigned char **pp); | 187 | int i2d_DSAPublicKey(DSA *a, unsigned char **pp); |
| 154 | int i2d_DSAPrivateKey(DSA *a, unsigned char **pp); | 188 | int i2d_DSAPrivateKey(DSA *a, unsigned char **pp); |
| @@ -163,7 +197,11 @@ int DSAparams_print_fp(FILE *fp, DSA *x); | |||
| 163 | int DSA_print_fp(FILE *bp, DSA *x, int off); | 197 | int DSA_print_fp(FILE *bp, DSA *x, int off); |
| 164 | #endif | 198 | #endif |
| 165 | 199 | ||
| 166 | int DSA_is_prime(BIGNUM *q,void (*callback)(),char *cb_arg); | 200 | #define DSS_prime_checks 50 |
| 201 | /* Primality test according to FIPS PUB 186[-1], Appendix 2.1: | ||
| 202 | * 50 rounds of Rabin-Miller */ | ||
| 203 | #define DSA_is_prime(n, callback, cb_arg) \ | ||
| 204 | BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) | ||
| 167 | 205 | ||
| 168 | #ifndef NO_DH | 206 | #ifndef NO_DH |
| 169 | /* Convert DSA structure (key or just parameters) into DH structure | 207 | /* Convert DSA structure (key or just parameters) into DH structure |
| @@ -184,7 +222,6 @@ DH *DSA_dup_DH(DSA *r); | |||
| 184 | #define DSA_F_DSAPARAMS_PRINT_FP 101 | 222 | #define DSA_F_DSAPARAMS_PRINT_FP 101 |
| 185 | #define DSA_F_DSA_DO_SIGN 112 | 223 | #define DSA_F_DSA_DO_SIGN 112 |
| 186 | #define DSA_F_DSA_DO_VERIFY 113 | 224 | #define DSA_F_DSA_DO_VERIFY 113 |
| 187 | #define DSA_F_DSA_IS_PRIME 102 | ||
| 188 | #define DSA_F_DSA_NEW 103 | 225 | #define DSA_F_DSA_NEW 103 |
| 189 | #define DSA_F_DSA_PRINT 104 | 226 | #define DSA_F_DSA_PRINT 104 |
| 190 | #define DSA_F_DSA_PRINT_FP 105 | 227 | #define DSA_F_DSA_PRINT_FP 105 |
