diff options
Diffstat (limited to 'src/lib/libcrypto/ec/ec_ameth.c')
| -rw-r--r-- | src/lib/libcrypto/ec/ec_ameth.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/src/lib/libcrypto/ec/ec_ameth.c b/src/lib/libcrypto/ec/ec_ameth.c index 0dab68d5fe..8d0cdb733b 100644 --- a/src/lib/libcrypto/ec/ec_ameth.c +++ b/src/lib/libcrypto/ec/ec_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_ameth.c,v 1.17 2016/10/19 16:49:11 jsing Exp $ */ | 1 | /* $OpenBSD: ec_ameth.c,v 1.18 2017/01/29 17:49:23 beck Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -74,7 +74,7 @@ eckey_param2type(int *pptype, void **ppval, EC_KEY * ec_key) | |||
| 74 | const EC_GROUP *group; | 74 | const EC_GROUP *group; |
| 75 | int nid; | 75 | int nid; |
| 76 | if (ec_key == NULL || (group = EC_KEY_get0_group(ec_key)) == NULL) { | 76 | if (ec_key == NULL || (group = EC_KEY_get0_group(ec_key)) == NULL) { |
| 77 | ECerr(EC_F_ECKEY_PARAM2TYPE, EC_R_MISSING_PARAMETERS); | 77 | ECerror(EC_R_MISSING_PARAMETERS); |
| 78 | return 0; | 78 | return 0; |
| 79 | } | 79 | } |
| 80 | if (EC_GROUP_get_asn1_flag(group) && | 80 | if (EC_GROUP_get_asn1_flag(group) && |
| @@ -91,7 +91,7 @@ eckey_param2type(int *pptype, void **ppval, EC_KEY * ec_key) | |||
| 91 | pstr->length = i2d_ECParameters(ec_key, &pstr->data); | 91 | pstr->length = i2d_ECParameters(ec_key, &pstr->data); |
| 92 | if (pstr->length <= 0) { | 92 | if (pstr->length <= 0) { |
| 93 | ASN1_STRING_free(pstr); | 93 | ASN1_STRING_free(pstr); |
| 94 | ECerr(EC_F_ECKEY_PARAM2TYPE, ERR_R_EC_LIB); | 94 | ECerror(ERR_R_EC_LIB); |
| 95 | return 0; | 95 | return 0; |
| 96 | } | 96 | } |
| 97 | *ppval = pstr; | 97 | *ppval = pstr; |
| @@ -110,7 +110,7 @@ eckey_pub_encode(X509_PUBKEY * pk, const EVP_PKEY * pkey) | |||
| 110 | int penclen; | 110 | int penclen; |
| 111 | 111 | ||
| 112 | if (!eckey_param2type(&ptype, &pval, ec_key)) { | 112 | if (!eckey_param2type(&ptype, &pval, ec_key)) { |
| 113 | ECerr(EC_F_ECKEY_PUB_ENCODE, ERR_R_EC_LIB); | 113 | ECerror(ERR_R_EC_LIB); |
| 114 | return 0; | 114 | return 0; |
| 115 | } | 115 | } |
| 116 | penclen = i2o_ECPublicKey(ec_key, NULL); | 116 | penclen = i2o_ECPublicKey(ec_key, NULL); |
| @@ -148,7 +148,7 @@ eckey_type2param(int ptype, void *pval) | |||
| 148 | pm = pstr->data; | 148 | pm = pstr->data; |
| 149 | pmlen = pstr->length; | 149 | pmlen = pstr->length; |
| 150 | if (!(eckey = d2i_ECParameters(NULL, &pm, pmlen))) { | 150 | if (!(eckey = d2i_ECParameters(NULL, &pm, pmlen))) { |
| 151 | ECerr(EC_F_ECKEY_TYPE2PARAM, EC_R_DECODE_ERROR); | 151 | ECerror(EC_R_DECODE_ERROR); |
| 152 | goto ecerr; | 152 | goto ecerr; |
| 153 | } | 153 | } |
| 154 | } else if (ptype == V_ASN1_OBJECT) { | 154 | } else if (ptype == V_ASN1_OBJECT) { |
| @@ -160,7 +160,7 @@ eckey_type2param(int ptype, void *pval) | |||
| 160 | * asn1 OID | 160 | * asn1 OID |
| 161 | */ | 161 | */ |
| 162 | if ((eckey = EC_KEY_new()) == NULL) { | 162 | if ((eckey = EC_KEY_new()) == NULL) { |
| 163 | ECerr(EC_F_ECKEY_TYPE2PARAM, ERR_R_MALLOC_FAILURE); | 163 | ECerror(ERR_R_MALLOC_FAILURE); |
| 164 | goto ecerr; | 164 | goto ecerr; |
| 165 | } | 165 | } |
| 166 | group = EC_GROUP_new_by_curve_name(OBJ_obj2nid(poid)); | 166 | group = EC_GROUP_new_by_curve_name(OBJ_obj2nid(poid)); |
| @@ -171,7 +171,7 @@ eckey_type2param(int ptype, void *pval) | |||
| 171 | goto ecerr; | 171 | goto ecerr; |
| 172 | EC_GROUP_free(group); | 172 | EC_GROUP_free(group); |
| 173 | } else { | 173 | } else { |
| 174 | ECerr(EC_F_ECKEY_TYPE2PARAM, EC_R_DECODE_ERROR); | 174 | ECerror(EC_R_DECODE_ERROR); |
| 175 | goto ecerr; | 175 | goto ecerr; |
| 176 | } | 176 | } |
| 177 | 177 | ||
| @@ -199,12 +199,12 @@ eckey_pub_decode(EVP_PKEY * pkey, X509_PUBKEY * pubkey) | |||
| 199 | eckey = eckey_type2param(ptype, pval); | 199 | eckey = eckey_type2param(ptype, pval); |
| 200 | 200 | ||
| 201 | if (!eckey) { | 201 | if (!eckey) { |
| 202 | ECerr(EC_F_ECKEY_PUB_DECODE, ERR_R_EC_LIB); | 202 | ECerror(ERR_R_EC_LIB); |
| 203 | return 0; | 203 | return 0; |
| 204 | } | 204 | } |
| 205 | /* We have parameters now set public key */ | 205 | /* We have parameters now set public key */ |
| 206 | if (!o2i_ECPublicKey(&eckey, &p, pklen)) { | 206 | if (!o2i_ECPublicKey(&eckey, &p, pklen)) { |
| 207 | ECerr(EC_F_ECKEY_PUB_DECODE, EC_R_DECODE_ERROR); | 207 | ECerror(EC_R_DECODE_ERROR); |
| 208 | goto ecerr; | 208 | goto ecerr; |
| 209 | } | 209 | } |
| 210 | EVP_PKEY_assign_EC_KEY(pkey, eckey); | 210 | EVP_PKEY_assign_EC_KEY(pkey, eckey); |
| @@ -251,7 +251,7 @@ eckey_priv_decode(EVP_PKEY * pkey, PKCS8_PRIV_KEY_INFO * p8) | |||
| 251 | 251 | ||
| 252 | /* We have parameters now set private key */ | 252 | /* We have parameters now set private key */ |
| 253 | if (!d2i_ECPrivateKey(&eckey, &p, pklen)) { | 253 | if (!d2i_ECPrivateKey(&eckey, &p, pklen)) { |
| 254 | ECerr(EC_F_ECKEY_PRIV_DECODE, EC_R_DECODE_ERROR); | 254 | ECerror(EC_R_DECODE_ERROR); |
| 255 | goto ecerr; | 255 | goto ecerr; |
| 256 | } | 256 | } |
| 257 | /* calculate public key (if necessary) */ | 257 | /* calculate public key (if necessary) */ |
| @@ -266,23 +266,23 @@ eckey_priv_decode(EVP_PKEY * pkey, PKCS8_PRIV_KEY_INFO * p8) | |||
| 266 | group = EC_KEY_get0_group(eckey); | 266 | group = EC_KEY_get0_group(eckey); |
| 267 | pub_key = EC_POINT_new(group); | 267 | pub_key = EC_POINT_new(group); |
| 268 | if (pub_key == NULL) { | 268 | if (pub_key == NULL) { |
| 269 | ECerr(EC_F_ECKEY_PRIV_DECODE, ERR_R_EC_LIB); | 269 | ECerror(ERR_R_EC_LIB); |
| 270 | goto ecliberr; | 270 | goto ecliberr; |
| 271 | } | 271 | } |
| 272 | if (!EC_POINT_copy(pub_key, EC_GROUP_get0_generator(group))) { | 272 | if (!EC_POINT_copy(pub_key, EC_GROUP_get0_generator(group))) { |
| 273 | EC_POINT_free(pub_key); | 273 | EC_POINT_free(pub_key); |
| 274 | ECerr(EC_F_ECKEY_PRIV_DECODE, ERR_R_EC_LIB); | 274 | ECerror(ERR_R_EC_LIB); |
| 275 | goto ecliberr; | 275 | goto ecliberr; |
| 276 | } | 276 | } |
| 277 | priv_key = EC_KEY_get0_private_key(eckey); | 277 | priv_key = EC_KEY_get0_private_key(eckey); |
| 278 | if (!EC_POINT_mul(group, pub_key, priv_key, NULL, NULL, NULL)) { | 278 | if (!EC_POINT_mul(group, pub_key, priv_key, NULL, NULL, NULL)) { |
| 279 | EC_POINT_free(pub_key); | 279 | EC_POINT_free(pub_key); |
| 280 | ECerr(EC_F_ECKEY_PRIV_DECODE, ERR_R_EC_LIB); | 280 | ECerror(ERR_R_EC_LIB); |
| 281 | goto ecliberr; | 281 | goto ecliberr; |
| 282 | } | 282 | } |
| 283 | if (EC_KEY_set_public_key(eckey, pub_key) == 0) { | 283 | if (EC_KEY_set_public_key(eckey, pub_key) == 0) { |
| 284 | EC_POINT_free(pub_key); | 284 | EC_POINT_free(pub_key); |
| 285 | ECerr(EC_F_ECKEY_PRIV_DECODE, ERR_R_EC_LIB); | 285 | ECerror(ERR_R_EC_LIB); |
| 286 | goto ecliberr; | 286 | goto ecliberr; |
| 287 | } | 287 | } |
| 288 | EC_POINT_free(pub_key); | 288 | EC_POINT_free(pub_key); |
| @@ -291,7 +291,7 @@ eckey_priv_decode(EVP_PKEY * pkey, PKCS8_PRIV_KEY_INFO * p8) | |||
| 291 | return 1; | 291 | return 1; |
| 292 | 292 | ||
| 293 | ecliberr: | 293 | ecliberr: |
| 294 | ECerr(EC_F_ECKEY_PRIV_DECODE, ERR_R_EC_LIB); | 294 | ECerror(ERR_R_EC_LIB); |
| 295 | ecerr: | 295 | ecerr: |
| 296 | if (eckey) | 296 | if (eckey) |
| 297 | EC_KEY_free(eckey); | 297 | EC_KEY_free(eckey); |
| @@ -310,7 +310,7 @@ eckey_priv_encode(PKCS8_PRIV_KEY_INFO * p8, const EVP_PKEY * pkey) | |||
| 310 | ec_key = pkey->pkey.ec; | 310 | ec_key = pkey->pkey.ec; |
| 311 | 311 | ||
| 312 | if (!eckey_param2type(&ptype, &pval, ec_key)) { | 312 | if (!eckey_param2type(&ptype, &pval, ec_key)) { |
| 313 | ECerr(EC_F_ECKEY_PRIV_ENCODE, EC_R_DECODE_ERROR); | 313 | ECerror(EC_R_DECODE_ERROR); |
| 314 | return 0; | 314 | return 0; |
| 315 | } | 315 | } |
| 316 | /* set the private key */ | 316 | /* set the private key */ |
| @@ -325,20 +325,20 @@ eckey_priv_encode(PKCS8_PRIV_KEY_INFO * p8, const EVP_PKEY * pkey) | |||
| 325 | eplen = i2d_ECPrivateKey(ec_key, NULL); | 325 | eplen = i2d_ECPrivateKey(ec_key, NULL); |
| 326 | if (!eplen) { | 326 | if (!eplen) { |
| 327 | EC_KEY_set_enc_flags(ec_key, old_flags); | 327 | EC_KEY_set_enc_flags(ec_key, old_flags); |
| 328 | ECerr(EC_F_ECKEY_PRIV_ENCODE, ERR_R_EC_LIB); | 328 | ECerror(ERR_R_EC_LIB); |
| 329 | return 0; | 329 | return 0; |
| 330 | } | 330 | } |
| 331 | ep = malloc(eplen); | 331 | ep = malloc(eplen); |
| 332 | if (!ep) { | 332 | if (!ep) { |
| 333 | EC_KEY_set_enc_flags(ec_key, old_flags); | 333 | EC_KEY_set_enc_flags(ec_key, old_flags); |
| 334 | ECerr(EC_F_ECKEY_PRIV_ENCODE, ERR_R_MALLOC_FAILURE); | 334 | ECerror(ERR_R_MALLOC_FAILURE); |
| 335 | return 0; | 335 | return 0; |
| 336 | } | 336 | } |
| 337 | p = ep; | 337 | p = ep; |
| 338 | if (!i2d_ECPrivateKey(ec_key, &p)) { | 338 | if (!i2d_ECPrivateKey(ec_key, &p)) { |
| 339 | EC_KEY_set_enc_flags(ec_key, old_flags); | 339 | EC_KEY_set_enc_flags(ec_key, old_flags); |
| 340 | free(ep); | 340 | free(ep); |
| 341 | ECerr(EC_F_ECKEY_PRIV_ENCODE, ERR_R_EC_LIB); | 341 | ECerror(ERR_R_EC_LIB); |
| 342 | return 0; | 342 | return 0; |
| 343 | } | 343 | } |
| 344 | /* restore old encoding flags */ | 344 | /* restore old encoding flags */ |
| @@ -483,7 +483,7 @@ do_EC_KEY_print(BIO * bp, const EC_KEY * x, int off, int ktype) | |||
| 483 | ret = 1; | 483 | ret = 1; |
| 484 | err: | 484 | err: |
| 485 | if (!ret) | 485 | if (!ret) |
| 486 | ECerr(EC_F_DO_EC_KEY_PRINT, reason); | 486 | ECerror(reason); |
| 487 | BN_free(pub_key); | 487 | BN_free(pub_key); |
| 488 | BN_free(order); | 488 | BN_free(order); |
| 489 | BN_CTX_free(ctx); | 489 | BN_CTX_free(ctx); |
| @@ -497,7 +497,7 @@ eckey_param_decode(EVP_PKEY * pkey, | |||
| 497 | { | 497 | { |
| 498 | EC_KEY *eckey; | 498 | EC_KEY *eckey; |
| 499 | if (!(eckey = d2i_ECParameters(NULL, pder, derlen))) { | 499 | if (!(eckey = d2i_ECParameters(NULL, pder, derlen))) { |
| 500 | ECerr(EC_F_ECKEY_PARAM_DECODE, ERR_R_EC_LIB); | 500 | ECerror(ERR_R_EC_LIB); |
| 501 | return 0; | 501 | return 0; |
| 502 | } | 502 | } |
| 503 | EVP_PKEY_assign_EC_KEY(pkey, eckey); | 503 | EVP_PKEY_assign_EC_KEY(pkey, eckey); |
| @@ -538,7 +538,7 @@ old_ec_priv_decode(EVP_PKEY * pkey, | |||
| 538 | { | 538 | { |
| 539 | EC_KEY *ec; | 539 | EC_KEY *ec; |
| 540 | if (!(ec = d2i_ECPrivateKey(NULL, pder, derlen))) { | 540 | if (!(ec = d2i_ECPrivateKey(NULL, pder, derlen))) { |
| 541 | ECerr(EC_F_OLD_EC_PRIV_DECODE, EC_R_DECODE_ERROR); | 541 | ECerror(EC_R_DECODE_ERROR); |
| 542 | return 0; | 542 | return 0; |
| 543 | } | 543 | } |
| 544 | EVP_PKEY_assign_EC_KEY(pkey, ec); | 544 | EVP_PKEY_assign_EC_KEY(pkey, ec); |
