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); |