diff options
| author | beck <> | 2001-06-22 00:03:44 +0000 |
|---|---|---|
| committer | beck <> | 2001-06-22 00:03:44 +0000 |
| commit | 38b6ff9e5294811c57541ad47940f8f8f41dc114 (patch) | |
| tree | 402699541cee3cf3f2943b0384dbda7de534de70 /src/lib/libcrypto/dh | |
| parent | afae624d63e4e717c5bae8c7842a4712309f728f (diff) | |
| download | openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.tar.gz openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.tar.bz2 openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.zip | |
openssl-engine-0.9.6a merge
Diffstat (limited to 'src/lib/libcrypto/dh')
| -rw-r--r-- | src/lib/libcrypto/dh/Makefile.ssl | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/dh/dh_key.c | 11 | ||||
| -rw-r--r-- | src/lib/libcrypto/dh/dh_lib.c | 8 |
3 files changed, 9 insertions, 13 deletions
diff --git a/src/lib/libcrypto/dh/Makefile.ssl b/src/lib/libcrypto/dh/Makefile.ssl index 88d0d1748b..bf4b47ca9a 100644 --- a/src/lib/libcrypto/dh/Makefile.ssl +++ b/src/lib/libcrypto/dh/Makefile.ssl | |||
| @@ -39,7 +39,8 @@ all: lib | |||
| 39 | 39 | ||
| 40 | lib: $(LIBOBJ) | 40 | lib: $(LIBOBJ) |
| 41 | $(AR) $(LIB) $(LIBOBJ) | 41 | $(AR) $(LIB) $(LIBOBJ) |
| 42 | $(RANLIB) $(LIB) | 42 | @echo You may get an error following this line. Please ignore. |
| 43 | - $(RANLIB) $(LIB) | ||
| 43 | @touch lib | 44 | @touch lib |
| 44 | 45 | ||
| 45 | files: | 46 | files: |
diff --git a/src/lib/libcrypto/dh/dh_key.c b/src/lib/libcrypto/dh/dh_key.c index 6915d79dcc..22b087b778 100644 --- a/src/lib/libcrypto/dh/dh_key.c +++ b/src/lib/libcrypto/dh/dh_key.c | |||
| @@ -100,7 +100,6 @@ DH_METHOD *DH_OpenSSL(void) | |||
| 100 | static int generate_key(DH *dh) | 100 | static int generate_key(DH *dh) |
| 101 | { | 101 | { |
| 102 | int ok=0; | 102 | int ok=0; |
| 103 | unsigned int i; | ||
| 104 | BN_CTX ctx; | 103 | BN_CTX ctx; |
| 105 | BN_MONT_CTX *mont; | 104 | BN_MONT_CTX *mont; |
| 106 | BIGNUM *pub_key=NULL,*priv_key=NULL; | 105 | BIGNUM *pub_key=NULL,*priv_key=NULL; |
| @@ -109,15 +108,11 @@ static int generate_key(DH *dh) | |||
| 109 | 108 | ||
| 110 | if (dh->priv_key == NULL) | 109 | if (dh->priv_key == NULL) |
| 111 | { | 110 | { |
| 112 | i=dh->length; | ||
| 113 | if (i == 0) | ||
| 114 | { | ||
| 115 | /* Make the number p-1 bits long */ | ||
| 116 | i=BN_num_bits(dh->p)-1; | ||
| 117 | } | ||
| 118 | priv_key=BN_new(); | 111 | priv_key=BN_new(); |
| 119 | if (priv_key == NULL) goto err; | 112 | if (priv_key == NULL) goto err; |
| 120 | if (!BN_rand(priv_key,i,0,0)) goto err; | 113 | do |
| 114 | if (!BN_rand_range(priv_key, dh->p)) goto err; | ||
| 115 | while (BN_is_zero(priv_key)); | ||
| 121 | } | 116 | } |
| 122 | else | 117 | else |
| 123 | priv_key=dh->priv_key; | 118 | priv_key=dh->priv_key; |
diff --git a/src/lib/libcrypto/dh/dh_lib.c b/src/lib/libcrypto/dh/dh_lib.c index 66803b5565..96f118c153 100644 --- a/src/lib/libcrypto/dh/dh_lib.c +++ b/src/lib/libcrypto/dh/dh_lib.c | |||
| @@ -168,13 +168,13 @@ DH *DH_new_method(ENGINE *engine) | |||
| 168 | ret->method_mont_p=NULL; | 168 | ret->method_mont_p=NULL; |
| 169 | ret->references = 1; | 169 | ret->references = 1; |
| 170 | ret->flags=meth->flags; | 170 | ret->flags=meth->flags; |
| 171 | CRYPTO_new_ex_data(dh_meth,ret,&ret->ex_data); | ||
| 171 | if ((meth->init != NULL) && !meth->init(ret)) | 172 | if ((meth->init != NULL) && !meth->init(ret)) |
| 172 | { | 173 | { |
| 174 | CRYPTO_free_ex_data(dh_meth,ret,&ret->ex_data); | ||
| 173 | OPENSSL_free(ret); | 175 | OPENSSL_free(ret); |
| 174 | ret=NULL; | 176 | ret=NULL; |
| 175 | } | 177 | } |
| 176 | else | ||
| 177 | CRYPTO_new_ex_data(dh_meth,ret,&ret->ex_data); | ||
| 178 | return(ret); | 178 | return(ret); |
| 179 | } | 179 | } |
| 180 | 180 | ||
| @@ -196,12 +196,12 @@ void DH_free(DH *r) | |||
| 196 | } | 196 | } |
| 197 | #endif | 197 | #endif |
| 198 | 198 | ||
| 199 | CRYPTO_free_ex_data(dh_meth, r, &r->ex_data); | ||
| 200 | |||
| 201 | meth = ENGINE_get_DH(r->engine); | 199 | meth = ENGINE_get_DH(r->engine); |
| 202 | if(meth->finish) meth->finish(r); | 200 | if(meth->finish) meth->finish(r); |
| 203 | ENGINE_finish(r->engine); | 201 | ENGINE_finish(r->engine); |
| 204 | 202 | ||
| 203 | CRYPTO_free_ex_data(dh_meth, r, &r->ex_data); | ||
| 204 | |||
| 205 | if (r->p != NULL) BN_clear_free(r->p); | 205 | if (r->p != NULL) BN_clear_free(r->p); |
| 206 | if (r->g != NULL) BN_clear_free(r->g); | 206 | if (r->g != NULL) BN_clear_free(r->g); |
| 207 | if (r->q != NULL) BN_clear_free(r->q); | 207 | if (r->q != NULL) BN_clear_free(r->q); |
