diff options
Diffstat (limited to 'src/lib/libcrypto/evp/p_lib.c')
| -rw-r--r-- | src/lib/libcrypto/evp/p_lib.c | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/src/lib/libcrypto/evp/p_lib.c b/src/lib/libcrypto/evp/p_lib.c index 62398ed74d..215b94292a 100644 --- a/src/lib/libcrypto/evp/p_lib.c +++ b/src/lib/libcrypto/evp/p_lib.c | |||
| @@ -64,14 +64,15 @@ | |||
| 64 | #include <openssl/x509.h> | 64 | #include <openssl/x509.h> |
| 65 | 65 | ||
| 66 | static void EVP_PKEY_free_it(EVP_PKEY *x); | 66 | static void EVP_PKEY_free_it(EVP_PKEY *x); |
| 67 | |||
| 67 | int EVP_PKEY_bits(EVP_PKEY *pkey) | 68 | int EVP_PKEY_bits(EVP_PKEY *pkey) |
| 68 | { | 69 | { |
| 69 | #ifndef NO_RSA | 70 | #ifndef OPENSSL_NO_RSA |
| 70 | if (pkey->type == EVP_PKEY_RSA) | 71 | if (pkey->type == EVP_PKEY_RSA) |
| 71 | return(BN_num_bits(pkey->pkey.rsa->n)); | 72 | return(BN_num_bits(pkey->pkey.rsa->n)); |
| 72 | else | 73 | else |
| 73 | #endif | 74 | #endif |
| 74 | #ifndef NO_DSA | 75 | #ifndef OPENSSL_NO_DSA |
| 75 | if (pkey->type == EVP_PKEY_DSA) | 76 | if (pkey->type == EVP_PKEY_DSA) |
| 76 | return(BN_num_bits(pkey->pkey.dsa->p)); | 77 | return(BN_num_bits(pkey->pkey.dsa->p)); |
| 77 | #endif | 78 | #endif |
| @@ -82,12 +83,12 @@ int EVP_PKEY_size(EVP_PKEY *pkey) | |||
| 82 | { | 83 | { |
| 83 | if (pkey == NULL) | 84 | if (pkey == NULL) |
| 84 | return(0); | 85 | return(0); |
| 85 | #ifndef NO_RSA | 86 | #ifndef OPENSSL_NO_RSA |
| 86 | if (pkey->type == EVP_PKEY_RSA) | 87 | if (pkey->type == EVP_PKEY_RSA) |
| 87 | return(RSA_size(pkey->pkey.rsa)); | 88 | return(RSA_size(pkey->pkey.rsa)); |
| 88 | else | 89 | else |
| 89 | #endif | 90 | #endif |
| 90 | #ifndef NO_DSA | 91 | #ifndef OPENSSL_NO_DSA |
| 91 | if (pkey->type == EVP_PKEY_DSA) | 92 | if (pkey->type == EVP_PKEY_DSA) |
| 92 | return(DSA_size(pkey->pkey.dsa)); | 93 | return(DSA_size(pkey->pkey.dsa)); |
| 93 | #endif | 94 | #endif |
| @@ -96,10 +97,10 @@ int EVP_PKEY_size(EVP_PKEY *pkey) | |||
| 96 | 97 | ||
| 97 | int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode) | 98 | int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode) |
| 98 | { | 99 | { |
| 99 | #ifndef NO_DSA | 100 | #ifndef OPENSSL_NO_DSA |
| 100 | if (pkey->type == EVP_PKEY_DSA) | 101 | if (pkey->type == EVP_PKEY_DSA) |
| 101 | { | 102 | { |
| 102 | int ret=pkey->save_parameters=mode; | 103 | int ret=pkey->save_parameters; |
| 103 | 104 | ||
| 104 | if (mode >= 0) | 105 | if (mode >= 0) |
| 105 | pkey->save_parameters=mode; | 106 | pkey->save_parameters=mode; |
| @@ -122,7 +123,7 @@ int EVP_PKEY_copy_parameters(EVP_PKEY *to, EVP_PKEY *from) | |||
| 122 | EVPerr(EVP_F_EVP_PKEY_COPY_PARAMETERS,EVP_R_MISSING_PARAMETERS); | 123 | EVPerr(EVP_F_EVP_PKEY_COPY_PARAMETERS,EVP_R_MISSING_PARAMETERS); |
| 123 | goto err; | 124 | goto err; |
| 124 | } | 125 | } |
| 125 | #ifndef NO_DSA | 126 | #ifndef OPENSSL_NO_DSA |
| 126 | if (to->type == EVP_PKEY_DSA) | 127 | if (to->type == EVP_PKEY_DSA) |
| 127 | { | 128 | { |
| 128 | BIGNUM *a; | 129 | BIGNUM *a; |
| @@ -147,7 +148,7 @@ err: | |||
| 147 | 148 | ||
| 148 | int EVP_PKEY_missing_parameters(EVP_PKEY *pkey) | 149 | int EVP_PKEY_missing_parameters(EVP_PKEY *pkey) |
| 149 | { | 150 | { |
| 150 | #ifndef NO_DSA | 151 | #ifndef OPENSSL_NO_DSA |
| 151 | if (pkey->type == EVP_PKEY_DSA) | 152 | if (pkey->type == EVP_PKEY_DSA) |
| 152 | { | 153 | { |
| 153 | DSA *dsa; | 154 | DSA *dsa; |
| @@ -162,7 +163,7 @@ int EVP_PKEY_missing_parameters(EVP_PKEY *pkey) | |||
| 162 | 163 | ||
| 163 | int EVP_PKEY_cmp_parameters(EVP_PKEY *a, EVP_PKEY *b) | 164 | int EVP_PKEY_cmp_parameters(EVP_PKEY *a, EVP_PKEY *b) |
| 164 | { | 165 | { |
| 165 | #ifndef NO_DSA | 166 | #ifndef OPENSSL_NO_DSA |
| 166 | if ((a->type == EVP_PKEY_DSA) && (b->type == EVP_PKEY_DSA)) | 167 | if ((a->type == EVP_PKEY_DSA) && (b->type == EVP_PKEY_DSA)) |
| 167 | { | 168 | { |
| 168 | if ( BN_cmp(a->pkey.dsa->p,b->pkey.dsa->p) || | 169 | if ( BN_cmp(a->pkey.dsa->p,b->pkey.dsa->p) || |
| @@ -205,11 +206,12 @@ int EVP_PKEY_assign(EVP_PKEY *pkey, int type, char *key) | |||
| 205 | return(key != NULL); | 206 | return(key != NULL); |
| 206 | } | 207 | } |
| 207 | 208 | ||
| 208 | #ifndef NO_RSA | 209 | #ifndef OPENSSL_NO_RSA |
| 209 | int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key) | 210 | int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key) |
| 210 | { | 211 | { |
| 211 | int ret = EVP_PKEY_assign_RSA(pkey, key); | 212 | int ret = EVP_PKEY_assign_RSA(pkey, key); |
| 212 | if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_RSA); | 213 | if(ret) |
| 214 | RSA_up_ref(key); | ||
| 213 | return ret; | 215 | return ret; |
| 214 | } | 216 | } |
| 215 | 217 | ||
| @@ -219,16 +221,17 @@ RSA *EVP_PKEY_get1_RSA(EVP_PKEY *pkey) | |||
| 219 | EVPerr(EVP_F_EVP_PKEY_GET1_RSA, EVP_R_EXPECTING_AN_RSA_KEY); | 221 | EVPerr(EVP_F_EVP_PKEY_GET1_RSA, EVP_R_EXPECTING_AN_RSA_KEY); |
| 220 | return NULL; | 222 | return NULL; |
| 221 | } | 223 | } |
| 222 | CRYPTO_add(&pkey->pkey.rsa->references, 1, CRYPTO_LOCK_RSA); | 224 | RSA_up_ref(pkey->pkey.rsa); |
| 223 | return pkey->pkey.rsa; | 225 | return pkey->pkey.rsa; |
| 224 | } | 226 | } |
| 225 | #endif | 227 | #endif |
| 226 | 228 | ||
| 227 | #ifndef NO_DSA | 229 | #ifndef OPENSSL_NO_DSA |
| 228 | int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key) | 230 | int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key) |
| 229 | { | 231 | { |
| 230 | int ret = EVP_PKEY_assign_DSA(pkey, key); | 232 | int ret = EVP_PKEY_assign_DSA(pkey, key); |
| 231 | if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_DSA); | 233 | if(ret) |
| 234 | DSA_up_ref(key); | ||
| 232 | return ret; | 235 | return ret; |
| 233 | } | 236 | } |
| 234 | 237 | ||
| @@ -238,17 +241,18 @@ DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey) | |||
| 238 | EVPerr(EVP_F_EVP_PKEY_GET1_DSA, EVP_R_EXPECTING_A_DSA_KEY); | 241 | EVPerr(EVP_F_EVP_PKEY_GET1_DSA, EVP_R_EXPECTING_A_DSA_KEY); |
| 239 | return NULL; | 242 | return NULL; |
| 240 | } | 243 | } |
| 241 | CRYPTO_add(&pkey->pkey.dsa->references, 1, CRYPTO_LOCK_DSA); | 244 | DSA_up_ref(pkey->pkey.dsa); |
| 242 | return pkey->pkey.dsa; | 245 | return pkey->pkey.dsa; |
| 243 | } | 246 | } |
| 244 | #endif | 247 | #endif |
| 245 | 248 | ||
| 246 | #ifndef NO_DH | 249 | #ifndef OPENSSL_NO_DH |
| 247 | 250 | ||
| 248 | int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key) | 251 | int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key) |
| 249 | { | 252 | { |
| 250 | int ret = EVP_PKEY_assign_DH(pkey, key); | 253 | int ret = EVP_PKEY_assign_DH(pkey, key); |
| 251 | if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_DH); | 254 | if(ret) |
| 255 | DH_up_ref(key); | ||
| 252 | return ret; | 256 | return ret; |
| 253 | } | 257 | } |
| 254 | 258 | ||
| @@ -258,7 +262,7 @@ DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey) | |||
| 258 | EVPerr(EVP_F_EVP_PKEY_GET1_DH, EVP_R_EXPECTING_A_DH_KEY); | 262 | EVPerr(EVP_F_EVP_PKEY_GET1_DH, EVP_R_EXPECTING_A_DH_KEY); |
| 259 | return NULL; | 263 | return NULL; |
| 260 | } | 264 | } |
| 261 | CRYPTO_add(&pkey->pkey.dh->references, 1, CRYPTO_LOCK_DH); | 265 | DH_up_ref(pkey->pkey.dh); |
| 262 | return pkey->pkey.dh; | 266 | return pkey->pkey.dh; |
| 263 | } | 267 | } |
| 264 | #endif | 268 | #endif |
| @@ -309,13 +313,13 @@ static void EVP_PKEY_free_it(EVP_PKEY *x) | |||
| 309 | { | 313 | { |
| 310 | switch (x->type) | 314 | switch (x->type) |
| 311 | { | 315 | { |
| 312 | #ifndef NO_RSA | 316 | #ifndef OPENSSL_NO_RSA |
| 313 | case EVP_PKEY_RSA: | 317 | case EVP_PKEY_RSA: |
| 314 | case EVP_PKEY_RSA2: | 318 | case EVP_PKEY_RSA2: |
| 315 | RSA_free(x->pkey.rsa); | 319 | RSA_free(x->pkey.rsa); |
| 316 | break; | 320 | break; |
| 317 | #endif | 321 | #endif |
| 318 | #ifndef NO_DSA | 322 | #ifndef OPENSSL_NO_DSA |
| 319 | case EVP_PKEY_DSA: | 323 | case EVP_PKEY_DSA: |
| 320 | case EVP_PKEY_DSA2: | 324 | case EVP_PKEY_DSA2: |
| 321 | case EVP_PKEY_DSA3: | 325 | case EVP_PKEY_DSA3: |
| @@ -323,7 +327,7 @@ static void EVP_PKEY_free_it(EVP_PKEY *x) | |||
| 323 | DSA_free(x->pkey.dsa); | 327 | DSA_free(x->pkey.dsa); |
| 324 | break; | 328 | break; |
| 325 | #endif | 329 | #endif |
| 326 | #ifndef NO_DH | 330 | #ifndef OPENSSL_NO_DH |
| 327 | case EVP_PKEY_DH: | 331 | case EVP_PKEY_DH: |
| 328 | DH_free(x->pkey.dh); | 332 | DH_free(x->pkey.dh); |
| 329 | break; | 333 | break; |
