diff options
author | beck <> | 2017-01-29 17:49:23 +0000 |
---|---|---|
committer | beck <> | 2017-01-29 17:49:23 +0000 |
commit | 957b11334a7afb14537322f0e4795b2e368b3f59 (patch) | |
tree | 1a54abba678898ee5270ae4f3404a50ee9a92eea /src/lib/libcrypto/pem | |
parent | df96e020e729c6c37a8c7fe311fdd1fe6a8718c5 (diff) | |
download | openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.gz openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.bz2 openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.zip |
Send the function codes from the error functions to the bit bucket,
as was done earlier in libssl. Thanks inoguchi@ for noticing
libssl had more reacharounds into this.
ok jsing@ inoguchi@
Diffstat (limited to 'src/lib/libcrypto/pem')
-rw-r--r-- | src/lib/libcrypto/pem/pem_err.c | 43 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_info.c | 25 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_lib.c | 69 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_oth.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_pk8.c | 13 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_pkey.c | 13 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_seal.c | 10 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_sign.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pvkfmt.c | 68 |
9 files changed, 95 insertions, 154 deletions
diff --git a/src/lib/libcrypto/pem/pem_err.c b/src/lib/libcrypto/pem/pem_err.c index c3d0fa3576..8d3c278b54 100644 --- a/src/lib/libcrypto/pem/pem_err.c +++ b/src/lib/libcrypto/pem/pem_err.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_err.c,v 1.11 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: pem_err.c,v 1.12 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -72,46 +72,7 @@ | |||
72 | #define ERR_REASON(reason) ERR_PACK(ERR_LIB_PEM,0,reason) | 72 | #define ERR_REASON(reason) ERR_PACK(ERR_LIB_PEM,0,reason) |
73 | 73 | ||
74 | static ERR_STRING_DATA PEM_str_functs[] = { | 74 | static ERR_STRING_DATA PEM_str_functs[] = { |
75 | {ERR_FUNC(PEM_F_B2I_DSS), "B2I_DSS"}, | 75 | {ERR_FUNC(0xfff), "CRYPTO_internal"}, |
76 | {ERR_FUNC(PEM_F_B2I_PVK_BIO), "b2i_PVK_bio"}, | ||
77 | {ERR_FUNC(PEM_F_B2I_RSA), "B2I_RSA"}, | ||
78 | {ERR_FUNC(PEM_F_CHECK_BITLEN_DSA), "CHECK_BITLEN_DSA"}, | ||
79 | {ERR_FUNC(PEM_F_CHECK_BITLEN_RSA), "CHECK_BITLEN_RSA"}, | ||
80 | {ERR_FUNC(PEM_F_D2I_PKCS8PRIVATEKEY_BIO), "d2i_PKCS8PrivateKey_bio"}, | ||
81 | {ERR_FUNC(PEM_F_D2I_PKCS8PRIVATEKEY_FP), "d2i_PKCS8PrivateKey_fp"}, | ||
82 | {ERR_FUNC(PEM_F_DO_B2I), "DO_B2I"}, | ||
83 | {ERR_FUNC(PEM_F_DO_B2I_BIO), "DO_B2I_BIO"}, | ||
84 | {ERR_FUNC(PEM_F_DO_BLOB_HEADER), "DO_BLOB_HEADER"}, | ||
85 | {ERR_FUNC(PEM_F_DO_PK8PKEY), "DO_PK8PKEY"}, | ||
86 | {ERR_FUNC(PEM_F_DO_PK8PKEY_FP), "DO_PK8PKEY_FP"}, | ||
87 | {ERR_FUNC(PEM_F_DO_PVK_BODY), "DO_PVK_BODY"}, | ||
88 | {ERR_FUNC(PEM_F_DO_PVK_HEADER), "DO_PVK_HEADER"}, | ||
89 | {ERR_FUNC(PEM_F_I2B_PVK), "I2B_PVK"}, | ||
90 | {ERR_FUNC(PEM_F_I2B_PVK_BIO), "i2b_PVK_bio"}, | ||
91 | {ERR_FUNC(PEM_F_LOAD_IV), "LOAD_IV"}, | ||
92 | {ERR_FUNC(PEM_F_PEM_ASN1_READ), "PEM_ASN1_read"}, | ||
93 | {ERR_FUNC(PEM_F_PEM_ASN1_READ_BIO), "PEM_ASN1_read_bio"}, | ||
94 | {ERR_FUNC(PEM_F_PEM_ASN1_WRITE), "PEM_ASN1_write"}, | ||
95 | {ERR_FUNC(PEM_F_PEM_ASN1_WRITE_BIO), "PEM_ASN1_write_bio"}, | ||
96 | {ERR_FUNC(PEM_F_PEM_DEF_CALLBACK), "PEM_def_callback"}, | ||
97 | {ERR_FUNC(PEM_F_PEM_DO_HEADER), "PEM_do_header"}, | ||
98 | {ERR_FUNC(PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY), "PEM_F_PEM_WRITE_PKCS8PRIVATEKEY"}, | ||
99 | {ERR_FUNC(PEM_F_PEM_GET_EVP_CIPHER_INFO), "PEM_get_EVP_CIPHER_INFO"}, | ||
100 | {ERR_FUNC(PEM_F_PEM_PK8PKEY), "PEM_PK8PKEY"}, | ||
101 | {ERR_FUNC(PEM_F_PEM_READ), "PEM_read"}, | ||
102 | {ERR_FUNC(PEM_F_PEM_READ_BIO), "PEM_read_bio"}, | ||
103 | {ERR_FUNC(PEM_F_PEM_READ_BIO_PARAMETERS), "PEM_read_bio_Parameters"}, | ||
104 | {ERR_FUNC(PEM_F_PEM_READ_BIO_PRIVATEKEY), "PEM_READ_BIO_PRIVATEKEY"}, | ||
105 | {ERR_FUNC(PEM_F_PEM_READ_PRIVATEKEY), "PEM_READ_PRIVATEKEY"}, | ||
106 | {ERR_FUNC(PEM_F_PEM_SEALFINAL), "PEM_SealFinal"}, | ||
107 | {ERR_FUNC(PEM_F_PEM_SEALINIT), "PEM_SealInit"}, | ||
108 | {ERR_FUNC(PEM_F_PEM_SIGNFINAL), "PEM_SignFinal"}, | ||
109 | {ERR_FUNC(PEM_F_PEM_WRITE), "PEM_write"}, | ||
110 | {ERR_FUNC(PEM_F_PEM_WRITE_BIO), "PEM_write_bio"}, | ||
111 | {ERR_FUNC(PEM_F_PEM_WRITE_PRIVATEKEY), "PEM_WRITE_PRIVATEKEY"}, | ||
112 | {ERR_FUNC(PEM_F_PEM_X509_INFO_READ), "PEM_X509_INFO_read"}, | ||
113 | {ERR_FUNC(PEM_F_PEM_X509_INFO_READ_BIO), "PEM_X509_INFO_read_bio"}, | ||
114 | {ERR_FUNC(PEM_F_PEM_X509_INFO_WRITE_BIO), "PEM_X509_INFO_write_bio"}, | ||
115 | {0, NULL} | 76 | {0, NULL} |
116 | }; | 77 | }; |
117 | 78 | ||
diff --git a/src/lib/libcrypto/pem/pem_info.c b/src/lib/libcrypto/pem/pem_info.c index 191e3b5b10..f02aaa8bb4 100644 --- a/src/lib/libcrypto/pem/pem_info.c +++ b/src/lib/libcrypto/pem/pem_info.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_info.c,v 1.21 2015/09/10 15:56:25 jsing Exp $ */ | 1 | /* $OpenBSD: pem_info.c,v 1.22 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -83,7 +83,7 @@ PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, | |||
83 | STACK_OF(X509_INFO) *ret; | 83 | STACK_OF(X509_INFO) *ret; |
84 | 84 | ||
85 | if ((b = BIO_new(BIO_s_file())) == NULL) { | 85 | if ((b = BIO_new(BIO_s_file())) == NULL) { |
86 | PEMerr(PEM_F_PEM_X509_INFO_READ, ERR_R_BUF_LIB); | 86 | PEMerror(ERR_R_BUF_LIB); |
87 | return (0); | 87 | return (0); |
88 | } | 88 | } |
89 | BIO_set_fp(b, fp, BIO_NOCLOSE); | 89 | BIO_set_fp(b, fp, BIO_NOCLOSE); |
@@ -109,8 +109,7 @@ PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, | |||
109 | 109 | ||
110 | if (sk == NULL) { | 110 | if (sk == NULL) { |
111 | if ((ret = sk_X509_INFO_new_null()) == NULL) { | 111 | if ((ret = sk_X509_INFO_new_null()) == NULL) { |
112 | PEMerr(PEM_F_PEM_X509_INFO_READ_BIO, | 112 | PEMerror(ERR_R_MALLOC_FAILURE); |
113 | ERR_R_MALLOC_FAILURE); | ||
114 | return 0; | 113 | return 0; |
115 | } | 114 | } |
116 | } else | 115 | } else |
@@ -249,13 +248,11 @@ start: | |||
249 | if (ptype) { | 248 | if (ptype) { |
250 | if (!d2i_PrivateKey(ptype, pp, &p, | 249 | if (!d2i_PrivateKey(ptype, pp, &p, |
251 | len)) { | 250 | len)) { |
252 | PEMerr(PEM_F_PEM_X509_INFO_READ_BIO, | 251 | PEMerror(ERR_R_ASN1_LIB); |
253 | ERR_R_ASN1_LIB); | ||
254 | goto err; | 252 | goto err; |
255 | } | 253 | } |
256 | } else if (d2i(pp, &p, len) == NULL) { | 254 | } else if (d2i(pp, &p, len) == NULL) { |
257 | PEMerr(PEM_F_PEM_X509_INFO_READ_BIO, | 255 | PEMerror(ERR_R_ASN1_LIB); |
258 | ERR_R_ASN1_LIB); | ||
259 | goto err; | 256 | goto err; |
260 | } | 257 | } |
261 | } else { /* encrypted RSA data */ | 258 | } else { /* encrypted RSA data */ |
@@ -323,8 +320,7 @@ PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, | |||
323 | if (enc != NULL) { | 320 | if (enc != NULL) { |
324 | objstr = OBJ_nid2sn(EVP_CIPHER_nid(enc)); | 321 | objstr = OBJ_nid2sn(EVP_CIPHER_nid(enc)); |
325 | if (objstr == NULL) { | 322 | if (objstr == NULL) { |
326 | PEMerr(PEM_F_PEM_X509_INFO_WRITE_BIO, | 323 | PEMerror(PEM_R_UNSUPPORTED_CIPHER); |
327 | PEM_R_UNSUPPORTED_CIPHER); | ||
328 | goto err; | 324 | goto err; |
329 | } | 325 | } |
330 | } | 326 | } |
@@ -337,8 +333,7 @@ PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, | |||
337 | if (xi->x_pkey != NULL) { | 333 | if (xi->x_pkey != NULL) { |
338 | if ((xi->enc_data != NULL) && (xi->enc_len > 0) ) { | 334 | if ((xi->enc_data != NULL) && (xi->enc_len > 0) ) { |
339 | if (enc == NULL) { | 335 | if (enc == NULL) { |
340 | PEMerr(PEM_F_PEM_X509_INFO_WRITE_BIO, | 336 | PEMerror(PEM_R_CIPHER_IS_NULL); |
341 | PEM_R_CIPHER_IS_NULL); | ||
342 | goto err; | 337 | goto err; |
343 | } | 338 | } |
344 | 339 | ||
@@ -355,16 +350,14 @@ PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, | |||
355 | objstr = OBJ_nid2sn( | 350 | objstr = OBJ_nid2sn( |
356 | EVP_CIPHER_nid(xi->enc_cipher.cipher)); | 351 | EVP_CIPHER_nid(xi->enc_cipher.cipher)); |
357 | if (objstr == NULL) { | 352 | if (objstr == NULL) { |
358 | PEMerr(PEM_F_PEM_X509_INFO_WRITE_BIO, | 353 | PEMerror(PEM_R_UNSUPPORTED_CIPHER); |
359 | PEM_R_UNSUPPORTED_CIPHER); | ||
360 | goto err; | 354 | goto err; |
361 | } | 355 | } |
362 | 356 | ||
363 | /* create the right magic header stuff */ | 357 | /* create the right magic header stuff */ |
364 | if (strlen(objstr) + 23 + 2 * enc->iv_len + 13 > | 358 | if (strlen(objstr) + 23 + 2 * enc->iv_len + 13 > |
365 | sizeof buf) { | 359 | sizeof buf) { |
366 | PEMerr(PEM_F_PEM_X509_INFO_WRITE_BIO, | 360 | PEMerror(ASN1_R_BUFFER_TOO_SMALL); |
367 | ASN1_R_BUFFER_TOO_SMALL); | ||
368 | goto err; | 361 | goto err; |
369 | } | 362 | } |
370 | buf[0] = '\0'; | 363 | buf[0] = '\0'; |
diff --git a/src/lib/libcrypto/pem/pem_lib.c b/src/lib/libcrypto/pem/pem_lib.c index 7178c8744f..b2c72e1d76 100644 --- a/src/lib/libcrypto/pem/pem_lib.c +++ b/src/lib/libcrypto/pem/pem_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_lib.c,v 1.43 2016/10/19 16:49:11 jsing Exp $ */ | 1 | /* $OpenBSD: pem_lib.c,v 1.44 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -112,8 +112,7 @@ PEM_def_callback(char *buf, int num, int w, void *key) | |||
112 | for (;;) { | 112 | for (;;) { |
113 | i = EVP_read_pw_string_min(buf, MIN_LENGTH, num, prompt, w); | 113 | i = EVP_read_pw_string_min(buf, MIN_LENGTH, num, prompt, w); |
114 | if (i != 0) { | 114 | if (i != 0) { |
115 | PEMerr(PEM_F_PEM_DEF_CALLBACK, | 115 | PEMerror(PEM_R_PROBLEMS_GETTING_PASSWORD); |
116 | PEM_R_PROBLEMS_GETTING_PASSWORD); | ||
117 | memset(buf, 0, num); | 116 | memset(buf, 0, num); |
118 | return (-1); | 117 | return (-1); |
119 | } | 118 | } |
@@ -176,7 +175,7 @@ PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, | |||
176 | void *ret; | 175 | void *ret; |
177 | 176 | ||
178 | if ((b = BIO_new(BIO_s_file())) == NULL) { | 177 | if ((b = BIO_new(BIO_s_file())) == NULL) { |
179 | PEMerr(PEM_F_PEM_ASN1_READ, ERR_R_BUF_LIB); | 178 | PEMerror(ERR_R_BUF_LIB); |
180 | return (0); | 179 | return (0); |
181 | } | 180 | } |
182 | BIO_set_fp(b, fp, BIO_NOCLOSE); | 181 | BIO_set_fp(b, fp, BIO_NOCLOSE); |
@@ -323,7 +322,7 @@ PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, void *x, | |||
323 | int ret; | 322 | int ret; |
324 | 323 | ||
325 | if ((b = BIO_new(BIO_s_file())) == NULL) { | 324 | if ((b = BIO_new(BIO_s_file())) == NULL) { |
326 | PEMerr(PEM_F_PEM_ASN1_WRITE, ERR_R_BUF_LIB); | 325 | PEMerror(ERR_R_BUF_LIB); |
327 | return (0); | 326 | return (0); |
328 | } | 327 | } |
329 | BIO_set_fp(b, fp, BIO_NOCLOSE); | 328 | BIO_set_fp(b, fp, BIO_NOCLOSE); |
@@ -348,14 +347,13 @@ PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, | |||
348 | if (enc != NULL) { | 347 | if (enc != NULL) { |
349 | objstr = OBJ_nid2sn(EVP_CIPHER_nid(enc)); | 348 | objstr = OBJ_nid2sn(EVP_CIPHER_nid(enc)); |
350 | if (objstr == NULL) { | 349 | if (objstr == NULL) { |
351 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO, | 350 | PEMerror(PEM_R_UNSUPPORTED_CIPHER); |
352 | PEM_R_UNSUPPORTED_CIPHER); | ||
353 | goto err; | 351 | goto err; |
354 | } | 352 | } |
355 | } | 353 | } |
356 | 354 | ||
357 | if ((dsize = i2d(x, NULL)) < 0) { | 355 | if ((dsize = i2d(x, NULL)) < 0) { |
358 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO, ERR_R_ASN1_LIB); | 356 | PEMerror(ERR_R_ASN1_LIB); |
359 | dsize = 0; | 357 | dsize = 0; |
360 | goto err; | 358 | goto err; |
361 | } | 359 | } |
@@ -363,7 +361,7 @@ PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, | |||
363 | /* actually it needs the cipher block size extra... */ | 361 | /* actually it needs the cipher block size extra... */ |
364 | data = malloc(dsize + 20); | 362 | data = malloc(dsize + 20); |
365 | if (data == NULL) { | 363 | if (data == NULL) { |
366 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO, ERR_R_MALLOC_FAILURE); | 364 | PEMerror(ERR_R_MALLOC_FAILURE); |
367 | goto err; | 365 | goto err; |
368 | } | 366 | } |
369 | p = data; | 367 | p = data; |
@@ -376,14 +374,13 @@ PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, | |||
376 | else | 374 | else |
377 | klen = (*callback)(buf, PEM_BUFSIZE, 1, u); | 375 | klen = (*callback)(buf, PEM_BUFSIZE, 1, u); |
378 | if (klen <= 0) { | 376 | if (klen <= 0) { |
379 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO, | 377 | PEMerror(PEM_R_READ_KEY); |
380 | PEM_R_READ_KEY); | ||
381 | goto err; | 378 | goto err; |
382 | } | 379 | } |
383 | kstr = (unsigned char *)buf; | 380 | kstr = (unsigned char *)buf; |
384 | } | 381 | } |
385 | if ((size_t)enc->iv_len > sizeof(iv)) { | 382 | if ((size_t)enc->iv_len > sizeof(iv)) { |
386 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO, EVP_R_IV_TOO_LARGE); | 383 | PEMerror(EVP_R_IV_TOO_LARGE); |
387 | goto err; | 384 | goto err; |
388 | } | 385 | } |
389 | arc4random_buf(iv, enc->iv_len); /* Generate a salt */ | 386 | arc4random_buf(iv, enc->iv_len); /* Generate a salt */ |
@@ -397,8 +394,7 @@ PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, | |||
397 | explicit_bzero(buf, PEM_BUFSIZE); | 394 | explicit_bzero(buf, PEM_BUFSIZE); |
398 | 395 | ||
399 | if (strlen(objstr) + 23 + 2 * enc->iv_len + 13 > sizeof buf) { | 396 | if (strlen(objstr) + 23 + 2 * enc->iv_len + 13 > sizeof buf) { |
400 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO, | 397 | PEMerror(ASN1_R_BUFFER_TOO_SMALL); |
401 | ASN1_R_BUFFER_TOO_SMALL); | ||
402 | goto err; | 398 | goto err; |
403 | } | 399 | } |
404 | 400 | ||
@@ -455,7 +451,7 @@ PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, | |||
455 | else | 451 | else |
456 | klen = callback(buf, PEM_BUFSIZE, 0, u); | 452 | klen = callback(buf, PEM_BUFSIZE, 0, u); |
457 | if (klen <= 0) { | 453 | if (klen <= 0) { |
458 | PEMerr(PEM_F_PEM_DO_HEADER, PEM_R_BAD_PASSWORD_READ); | 454 | PEMerror(PEM_R_BAD_PASSWORD_READ); |
459 | return (0); | 455 | return (0); |
460 | } | 456 | } |
461 | if (!EVP_BytesToKey(cipher->cipher, EVP_md5(), &(cipher->iv[0]), | 457 | if (!EVP_BytesToKey(cipher->cipher, EVP_md5(), &(cipher->iv[0]), |
@@ -474,7 +470,7 @@ PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, | |||
474 | explicit_bzero((char *)buf, sizeof(buf)); | 470 | explicit_bzero((char *)buf, sizeof(buf)); |
475 | explicit_bzero((char *)key, sizeof(key)); | 471 | explicit_bzero((char *)key, sizeof(key)); |
476 | if (!o) { | 472 | if (!o) { |
477 | PEMerr(PEM_F_PEM_DO_HEADER, PEM_R_BAD_DECRYPT); | 473 | PEMerror(PEM_R_BAD_DECRYPT); |
478 | return (0); | 474 | return (0); |
479 | } | 475 | } |
480 | *plen = j + i; | 476 | *plen = j + i; |
@@ -492,7 +488,7 @@ PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher) | |||
492 | if ((header == NULL) || (*header == '\0') || (*header == '\n')) | 488 | if ((header == NULL) || (*header == '\0') || (*header == '\n')) |
493 | return (1); | 489 | return (1); |
494 | if (strncmp(header, "Proc-Type: ", 11) != 0) { | 490 | if (strncmp(header, "Proc-Type: ", 11) != 0) { |
495 | PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, PEM_R_NOT_PROC_TYPE); | 491 | PEMerror(PEM_R_NOT_PROC_TYPE); |
496 | return (0); | 492 | return (0); |
497 | } | 493 | } |
498 | header += 11; | 494 | header += 11; |
@@ -503,18 +499,18 @@ PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher) | |||
503 | return (0); | 499 | return (0); |
504 | header++; | 500 | header++; |
505 | if (strncmp(header, "ENCRYPTED", 9) != 0) { | 501 | if (strncmp(header, "ENCRYPTED", 9) != 0) { |
506 | PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, PEM_R_NOT_ENCRYPTED); | 502 | PEMerror(PEM_R_NOT_ENCRYPTED); |
507 | return (0); | 503 | return (0); |
508 | } | 504 | } |
509 | for (; (*header != '\n') && (*header != '\0'); header++) | 505 | for (; (*header != '\n') && (*header != '\0'); header++) |
510 | ; | 506 | ; |
511 | if (*header == '\0') { | 507 | if (*header == '\0') { |
512 | PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, PEM_R_SHORT_HEADER); | 508 | PEMerror(PEM_R_SHORT_HEADER); |
513 | return (0); | 509 | return (0); |
514 | } | 510 | } |
515 | header++; | 511 | header++; |
516 | if (strncmp(header, "DEK-Info: ", 10) != 0) { | 512 | if (strncmp(header, "DEK-Info: ", 10) != 0) { |
517 | PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, PEM_R_NOT_DEK_INFO); | 513 | PEMerror(PEM_R_NOT_DEK_INFO); |
518 | return (0); | 514 | return (0); |
519 | } | 515 | } |
520 | header += 10; | 516 | header += 10; |
@@ -533,8 +529,7 @@ PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher) | |||
533 | header++; | 529 | header++; |
534 | 530 | ||
535 | if (enc == NULL) { | 531 | if (enc == NULL) { |
536 | PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, | 532 | PEMerror(PEM_R_UNSUPPORTED_ENCRYPTION); |
537 | PEM_R_UNSUPPORTED_ENCRYPTION); | ||
538 | return (0); | 533 | return (0); |
539 | } | 534 | } |
540 | if (!load_iv(header_pp, &(cipher->iv[0]), enc->iv_len)) | 535 | if (!load_iv(header_pp, &(cipher->iv[0]), enc->iv_len)) |
@@ -561,7 +556,7 @@ load_iv(char **fromp, unsigned char *to, int num) | |||
561 | else if ((*from >= 'a') && (*from <= 'f')) | 556 | else if ((*from >= 'a') && (*from <= 'f')) |
562 | v = *from - 'a' + 10; | 557 | v = *from - 'a' + 10; |
563 | else { | 558 | else { |
564 | PEMerr(PEM_F_LOAD_IV, PEM_R_BAD_IV_CHARS); | 559 | PEMerror(PEM_R_BAD_IV_CHARS); |
565 | return (0); | 560 | return (0); |
566 | } | 561 | } |
567 | from++; | 562 | from++; |
@@ -579,7 +574,7 @@ PEM_write(FILE *fp, char *name, char *header, unsigned char *data, long len) | |||
579 | int ret; | 574 | int ret; |
580 | 575 | ||
581 | if ((b = BIO_new(BIO_s_file())) == NULL) { | 576 | if ((b = BIO_new(BIO_s_file())) == NULL) { |
582 | PEMerr(PEM_F_PEM_WRITE, ERR_R_BUF_LIB); | 577 | PEMerror(ERR_R_BUF_LIB); |
583 | return (0); | 578 | return (0); |
584 | } | 579 | } |
585 | BIO_set_fp(b, fp, BIO_NOCLOSE); | 580 | BIO_set_fp(b, fp, BIO_NOCLOSE); |
@@ -645,7 +640,7 @@ err: | |||
645 | explicit_bzero(buf, PEM_BUFSIZE * 8); | 640 | explicit_bzero(buf, PEM_BUFSIZE * 8); |
646 | free(buf); | 641 | free(buf); |
647 | } | 642 | } |
648 | PEMerr(PEM_F_PEM_WRITE_BIO, reason); | 643 | PEMerror(reason); |
649 | return (0); | 644 | return (0); |
650 | } | 645 | } |
651 | 646 | ||
@@ -656,7 +651,7 @@ PEM_read(FILE *fp, char **name, char **header, unsigned char **data, long *len) | |||
656 | int ret; | 651 | int ret; |
657 | 652 | ||
658 | if ((b = BIO_new(BIO_s_file())) == NULL) { | 653 | if ((b = BIO_new(BIO_s_file())) == NULL) { |
659 | PEMerr(PEM_F_PEM_READ, ERR_R_BUF_LIB); | 654 | PEMerror(ERR_R_BUF_LIB); |
660 | return (0); | 655 | return (0); |
661 | } | 656 | } |
662 | BIO_set_fp(b, fp, BIO_NOCLOSE); | 657 | BIO_set_fp(b, fp, BIO_NOCLOSE); |
@@ -683,7 +678,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
683 | BUF_MEM_free(nameB); | 678 | BUF_MEM_free(nameB); |
684 | BUF_MEM_free(headerB); | 679 | BUF_MEM_free(headerB); |
685 | BUF_MEM_free(dataB); | 680 | BUF_MEM_free(dataB); |
686 | PEMerr(PEM_F_PEM_READ_BIO, ERR_R_MALLOC_FAILURE); | 681 | PEMerror(ERR_R_MALLOC_FAILURE); |
687 | return (0); | 682 | return (0); |
688 | } | 683 | } |
689 | 684 | ||
@@ -692,7 +687,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
692 | i = BIO_gets(bp, buf, 254); | 687 | i = BIO_gets(bp, buf, 254); |
693 | 688 | ||
694 | if (i <= 0) { | 689 | if (i <= 0) { |
695 | PEMerr(PEM_F_PEM_READ_BIO, PEM_R_NO_START_LINE); | 690 | PEMerror(PEM_R_NO_START_LINE); |
696 | goto err; | 691 | goto err; |
697 | } | 692 | } |
698 | 693 | ||
@@ -707,8 +702,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
707 | if (strncmp(&(buf[11 + i - 6]), "-----\n", 6) != 0) | 702 | if (strncmp(&(buf[11 + i - 6]), "-----\n", 6) != 0) |
708 | continue; | 703 | continue; |
709 | if (!BUF_MEM_grow(nameB, i + 9)) { | 704 | if (!BUF_MEM_grow(nameB, i + 9)) { |
710 | PEMerr(PEM_F_PEM_READ_BIO, | 705 | PEMerror(ERR_R_MALLOC_FAILURE); |
711 | ERR_R_MALLOC_FAILURE); | ||
712 | goto err; | 706 | goto err; |
713 | } | 707 | } |
714 | memcpy(nameB->data, &(buf[11]), i - 6); | 708 | memcpy(nameB->data, &(buf[11]), i - 6); |
@@ -718,7 +712,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
718 | } | 712 | } |
719 | hl = 0; | 713 | hl = 0; |
720 | if (!BUF_MEM_grow(headerB, 256)) { | 714 | if (!BUF_MEM_grow(headerB, 256)) { |
721 | PEMerr(PEM_F_PEM_READ_BIO, ERR_R_MALLOC_FAILURE); | 715 | PEMerror(ERR_R_MALLOC_FAILURE); |
722 | goto err; | 716 | goto err; |
723 | } | 717 | } |
724 | headerB->data[0] = '\0'; | 718 | headerB->data[0] = '\0'; |
@@ -735,7 +729,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
735 | if (buf[0] == '\n') | 729 | if (buf[0] == '\n') |
736 | break; | 730 | break; |
737 | if (!BUF_MEM_grow(headerB, hl + i + 9)) { | 731 | if (!BUF_MEM_grow(headerB, hl + i + 9)) { |
738 | PEMerr(PEM_F_PEM_READ_BIO, ERR_R_MALLOC_FAILURE); | 732 | PEMerror(ERR_R_MALLOC_FAILURE); |
739 | goto err; | 733 | goto err; |
740 | } | 734 | } |
741 | if (strncmp(buf, "-----END ", 9) == 0) { | 735 | if (strncmp(buf, "-----END ", 9) == 0) { |
@@ -749,7 +743,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
749 | 743 | ||
750 | bl = 0; | 744 | bl = 0; |
751 | if (!BUF_MEM_grow(dataB, 1024)) { | 745 | if (!BUF_MEM_grow(dataB, 1024)) { |
752 | PEMerr(PEM_F_PEM_READ_BIO, ERR_R_MALLOC_FAILURE); | 746 | PEMerror(ERR_R_MALLOC_FAILURE); |
753 | goto err; | 747 | goto err; |
754 | } | 748 | } |
755 | dataB->data[0] = '\0'; | 749 | dataB->data[0] = '\0'; |
@@ -771,8 +765,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
771 | if (i > 65) | 765 | if (i > 65) |
772 | break; | 766 | break; |
773 | if (!BUF_MEM_grow_clean(dataB, i + bl + 9)) { | 767 | if (!BUF_MEM_grow_clean(dataB, i + bl + 9)) { |
774 | PEMerr(PEM_F_PEM_READ_BIO, | 768 | PEMerror(ERR_R_MALLOC_FAILURE); |
775 | ERR_R_MALLOC_FAILURE); | ||
776 | goto err; | 769 | goto err; |
777 | } | 770 | } |
778 | memcpy(&(dataB->data[bl]), buf, i); | 771 | memcpy(&(dataB->data[bl]), buf, i); |
@@ -802,7 +795,7 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
802 | if ((strncmp(buf, "-----END ", 9) != 0) || | 795 | if ((strncmp(buf, "-----END ", 9) != 0) || |
803 | (strncmp(nameB->data, &(buf[9]), i) != 0) || | 796 | (strncmp(nameB->data, &(buf[9]), i) != 0) || |
804 | (strncmp(&(buf[9 + i]), "-----\n", 6) != 0)) { | 797 | (strncmp(&(buf[9 + i]), "-----\n", 6) != 0)) { |
805 | PEMerr(PEM_F_PEM_READ_BIO, PEM_R_BAD_END_LINE); | 798 | PEMerror(PEM_R_BAD_END_LINE); |
806 | goto err; | 799 | goto err; |
807 | } | 800 | } |
808 | 801 | ||
@@ -811,12 +804,12 @@ PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, | |||
811 | (unsigned char *)dataB->data, &bl, | 804 | (unsigned char *)dataB->data, &bl, |
812 | (unsigned char *)dataB->data, bl); | 805 | (unsigned char *)dataB->data, bl); |
813 | if (i < 0) { | 806 | if (i < 0) { |
814 | PEMerr(PEM_F_PEM_READ_BIO, PEM_R_BAD_BASE64_DECODE); | 807 | PEMerror(PEM_R_BAD_BASE64_DECODE); |
815 | goto err; | 808 | goto err; |
816 | } | 809 | } |
817 | i = EVP_DecodeFinal(&ctx, (unsigned char *)&(dataB->data[bl]), &k); | 810 | i = EVP_DecodeFinal(&ctx, (unsigned char *)&(dataB->data[bl]), &k); |
818 | if (i < 0) { | 811 | if (i < 0) { |
819 | PEMerr(PEM_F_PEM_READ_BIO, PEM_R_BAD_BASE64_DECODE); | 812 | PEMerror(PEM_R_BAD_BASE64_DECODE); |
820 | goto err; | 813 | goto err; |
821 | } | 814 | } |
822 | bl += k; | 815 | bl += k; |
diff --git a/src/lib/libcrypto/pem/pem_oth.c b/src/lib/libcrypto/pem/pem_oth.c index ccd2b893d5..21498cb6b5 100644 --- a/src/lib/libcrypto/pem/pem_oth.c +++ b/src/lib/libcrypto/pem/pem_oth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_oth.c,v 1.7 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: pem_oth.c,v 1.8 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -81,7 +81,7 @@ PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, | |||
81 | p = data; | 81 | p = data; |
82 | ret = d2i(x, &p, len); | 82 | ret = d2i(x, &p, len); |
83 | if (ret == NULL) | 83 | if (ret == NULL) |
84 | PEMerr(PEM_F_PEM_ASN1_READ_BIO, ERR_R_ASN1_LIB); | 84 | PEMerror(ERR_R_ASN1_LIB); |
85 | free(data); | 85 | free(data); |
86 | return (ret); | 86 | return (ret); |
87 | } | 87 | } |
diff --git a/src/lib/libcrypto/pem/pem_pk8.c b/src/lib/libcrypto/pem/pem_pk8.c index 4b3578f971..43581905f0 100644 --- a/src/lib/libcrypto/pem/pem_pk8.c +++ b/src/lib/libcrypto/pem/pem_pk8.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_pk8.c,v 1.12 2016/09/04 16:10:38 jsing Exp $ */ | 1 | /* $OpenBSD: pem_pk8.c,v 1.13 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -116,8 +116,7 @@ do_pk8pkey(BIO *bp, EVP_PKEY *x, int isder, int nid, const EVP_CIPHER *enc, | |||
116 | int ret; | 116 | int ret; |
117 | 117 | ||
118 | if (!(p8inf = EVP_PKEY2PKCS8(x))) { | 118 | if (!(p8inf = EVP_PKEY2PKCS8(x))) { |
119 | PEMerr(PEM_F_DO_PK8PKEY, | 119 | PEMerror(PEM_R_ERROR_CONVERTING_PRIVATE_KEY); |
120 | PEM_R_ERROR_CONVERTING_PRIVATE_KEY); | ||
121 | return 0; | 120 | return 0; |
122 | } | 121 | } |
123 | if (enc || (nid != -1)) { | 122 | if (enc || (nid != -1)) { |
@@ -127,7 +126,7 @@ do_pk8pkey(BIO *bp, EVP_PKEY *x, int isder, int nid, const EVP_CIPHER *enc, | |||
127 | else | 126 | else |
128 | klen = cb(buf, PEM_BUFSIZE, 1, u); | 127 | klen = cb(buf, PEM_BUFSIZE, 1, u); |
129 | if (klen <= 0) { | 128 | if (klen <= 0) { |
130 | PEMerr(PEM_F_DO_PK8PKEY, PEM_R_READ_KEY); | 129 | PEMerror(PEM_R_READ_KEY); |
131 | PKCS8_PRIV_KEY_INFO_free(p8inf); | 130 | PKCS8_PRIV_KEY_INFO_free(p8inf); |
132 | return 0; | 131 | return 0; |
133 | } | 132 | } |
@@ -171,7 +170,7 @@ d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
171 | else | 170 | else |
172 | klen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); | 171 | klen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); |
173 | if (klen <= 0) { | 172 | if (klen <= 0) { |
174 | PEMerr(PEM_F_D2I_PKCS8PRIVATEKEY_BIO, PEM_R_BAD_PASSWORD_READ); | 173 | PEMerror(PEM_R_BAD_PASSWORD_READ); |
175 | X509_SIG_free(p8); | 174 | X509_SIG_free(p8); |
176 | return NULL; | 175 | return NULL; |
177 | } | 176 | } |
@@ -227,7 +226,7 @@ do_pk8pkey_fp(FILE *fp, EVP_PKEY *x, int isder, int nid, const EVP_CIPHER *enc, | |||
227 | int ret; | 226 | int ret; |
228 | 227 | ||
229 | if (!(bp = BIO_new_fp(fp, BIO_NOCLOSE))) { | 228 | if (!(bp = BIO_new_fp(fp, BIO_NOCLOSE))) { |
230 | PEMerr(PEM_F_DO_PK8PKEY_FP, ERR_R_BUF_LIB); | 229 | PEMerror(ERR_R_BUF_LIB); |
231 | return (0); | 230 | return (0); |
232 | } | 231 | } |
233 | ret = do_pk8pkey(bp, x, isder, nid, enc, kstr, klen, cb, u); | 232 | ret = do_pk8pkey(bp, x, isder, nid, enc, kstr, klen, cb, u); |
@@ -242,7 +241,7 @@ d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
242 | EVP_PKEY *ret; | 241 | EVP_PKEY *ret; |
243 | 242 | ||
244 | if (!(bp = BIO_new_fp(fp, BIO_NOCLOSE))) { | 243 | if (!(bp = BIO_new_fp(fp, BIO_NOCLOSE))) { |
245 | PEMerr(PEM_F_D2I_PKCS8PRIVATEKEY_FP, ERR_R_BUF_LIB); | 244 | PEMerror(ERR_R_BUF_LIB); |
246 | return NULL; | 245 | return NULL; |
247 | } | 246 | } |
248 | ret = d2i_PKCS8PrivateKey_bio(bp, x, cb, u); | 247 | ret = d2i_PKCS8PrivateKey_bio(bp, x, cb, u); |
diff --git a/src/lib/libcrypto/pem/pem_pkey.c b/src/lib/libcrypto/pem/pem_pkey.c index afb476f818..6651ef9419 100644 --- a/src/lib/libcrypto/pem/pem_pkey.c +++ b/src/lib/libcrypto/pem/pem_pkey.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_pkey.c,v 1.21 2015/09/10 15:56:25 jsing Exp $ */ | 1 | /* $OpenBSD: pem_pkey.c,v 1.22 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -116,8 +116,7 @@ PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
116 | else | 116 | else |
117 | klen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); | 117 | klen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); |
118 | if (klen <= 0) { | 118 | if (klen <= 0) { |
119 | PEMerr(PEM_F_PEM_READ_BIO_PRIVATEKEY, | 119 | PEMerror(PEM_R_BAD_PASSWORD_READ); |
120 | PEM_R_BAD_PASSWORD_READ); | ||
121 | X509_SIG_free(p8); | 120 | X509_SIG_free(p8); |
122 | goto err; | 121 | goto err; |
123 | } | 122 | } |
@@ -141,7 +140,7 @@ PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
141 | 140 | ||
142 | p8err: | 141 | p8err: |
143 | if (ret == NULL) | 142 | if (ret == NULL) |
144 | PEMerr(PEM_F_PEM_READ_BIO_PRIVATEKEY, ERR_R_ASN1_LIB); | 143 | PEMerror(ERR_R_ASN1_LIB); |
145 | err: | 144 | err: |
146 | free(nm); | 145 | free(nm); |
147 | explicit_bzero(data, len); | 146 | explicit_bzero(data, len); |
@@ -199,7 +198,7 @@ PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x) | |||
199 | 198 | ||
200 | err: | 199 | err: |
201 | if (ret == NULL) | 200 | if (ret == NULL) |
202 | PEMerr(PEM_F_PEM_READ_BIO_PARAMETERS, ERR_R_ASN1_LIB); | 201 | PEMerror(ERR_R_ASN1_LIB); |
203 | free(nm); | 202 | free(nm); |
204 | free(data); | 203 | free(data); |
205 | return (ret); | 204 | return (ret); |
@@ -226,7 +225,7 @@ PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
226 | EVP_PKEY *ret; | 225 | EVP_PKEY *ret; |
227 | 226 | ||
228 | if ((b = BIO_new(BIO_s_file())) == NULL) { | 227 | if ((b = BIO_new(BIO_s_file())) == NULL) { |
229 | PEMerr(PEM_F_PEM_READ_PRIVATEKEY, ERR_R_BUF_LIB); | 228 | PEMerror(ERR_R_BUF_LIB); |
230 | return (0); | 229 | return (0); |
231 | } | 230 | } |
232 | BIO_set_fp(b, fp, BIO_NOCLOSE); | 231 | BIO_set_fp(b, fp, BIO_NOCLOSE); |
@@ -243,7 +242,7 @@ PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, | |||
243 | int ret; | 242 | int ret; |
244 | 243 | ||
245 | if ((b = BIO_new_fp(fp, BIO_NOCLOSE)) == NULL) { | 244 | if ((b = BIO_new_fp(fp, BIO_NOCLOSE)) == NULL) { |
246 | PEMerr(PEM_F_PEM_WRITE_PRIVATEKEY, ERR_R_BUF_LIB); | 245 | PEMerror(ERR_R_BUF_LIB); |
247 | return 0; | 246 | return 0; |
248 | } | 247 | } |
249 | ret = PEM_write_bio_PrivateKey(b, x, enc, kstr, klen, cb, u); | 248 | ret = PEM_write_bio_PrivateKey(b, x, enc, kstr, klen, cb, u); |
diff --git a/src/lib/libcrypto/pem/pem_seal.c b/src/lib/libcrypto/pem/pem_seal.c index 79162b32d7..c6d61fff0f 100644 --- a/src/lib/libcrypto/pem/pem_seal.c +++ b/src/lib/libcrypto/pem/pem_seal.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_seal.c,v 1.23 2016/11/05 11:32:45 miod Exp $ */ | 1 | /* $OpenBSD: pem_seal.c,v 1.24 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -97,7 +97,7 @@ PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, EVP_MD *md_type, | |||
97 | 97 | ||
98 | for (i = 0; i < npubk; i++) { | 98 | for (i = 0; i < npubk; i++) { |
99 | if (pubk[i]->type != EVP_PKEY_RSA) { | 99 | if (pubk[i]->type != EVP_PKEY_RSA) { |
100 | PEMerr(PEM_F_PEM_SEALINIT, PEM_R_PUBLIC_KEY_NO_RSA); | 100 | PEMerror(PEM_R_PUBLIC_KEY_NO_RSA); |
101 | goto err; | 101 | goto err; |
102 | } | 102 | } |
103 | j = RSA_size(pubk[i]->pkey.rsa); | 103 | j = RSA_size(pubk[i]->pkey.rsa); |
@@ -106,7 +106,7 @@ PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, EVP_MD *md_type, | |||
106 | } | 106 | } |
107 | s = reallocarray(NULL, max, 2); | 107 | s = reallocarray(NULL, max, 2); |
108 | if (s == NULL) { | 108 | if (s == NULL) { |
109 | PEMerr(PEM_F_PEM_SEALINIT, ERR_R_MALLOC_FAILURE); | 109 | PEMerror(ERR_R_MALLOC_FAILURE); |
110 | goto err; | 110 | goto err; |
111 | } | 111 | } |
112 | 112 | ||
@@ -170,7 +170,7 @@ PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, | |||
170 | unsigned int i; | 170 | unsigned int i; |
171 | 171 | ||
172 | if (priv->type != EVP_PKEY_RSA) { | 172 | if (priv->type != EVP_PKEY_RSA) { |
173 | PEMerr(PEM_F_PEM_SEALFINAL, PEM_R_PUBLIC_KEY_NO_RSA); | 173 | PEMerror(PEM_R_PUBLIC_KEY_NO_RSA); |
174 | goto err; | 174 | goto err; |
175 | } | 175 | } |
176 | i = RSA_size(priv->pkey.rsa); | 176 | i = RSA_size(priv->pkey.rsa); |
@@ -178,7 +178,7 @@ PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, | |||
178 | i = 100; | 178 | i = 100; |
179 | s = reallocarray(NULL, i, 2); | 179 | s = reallocarray(NULL, i, 2); |
180 | if (s == NULL) { | 180 | if (s == NULL) { |
181 | PEMerr(PEM_F_PEM_SEALFINAL, ERR_R_MALLOC_FAILURE); | 181 | PEMerror(ERR_R_MALLOC_FAILURE); |
182 | goto err; | 182 | goto err; |
183 | } | 183 | } |
184 | 184 | ||
diff --git a/src/lib/libcrypto/pem/pem_sign.c b/src/lib/libcrypto/pem/pem_sign.c index aab8c4d6b8..a225e8970f 100644 --- a/src/lib/libcrypto/pem/pem_sign.c +++ b/src/lib/libcrypto/pem/pem_sign.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_sign.c,v 1.12 2014/10/18 17:20:40 jsing Exp $ */ | 1 | /* $OpenBSD: pem_sign.c,v 1.13 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -87,7 +87,7 @@ PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen, | |||
87 | 87 | ||
88 | m = malloc(EVP_PKEY_size(pkey) + 2); | 88 | m = malloc(EVP_PKEY_size(pkey) + 2); |
89 | if (m == NULL) { | 89 | if (m == NULL) { |
90 | PEMerr(PEM_F_PEM_SIGNFINAL, ERR_R_MALLOC_FAILURE); | 90 | PEMerror(ERR_R_MALLOC_FAILURE); |
91 | goto err; | 91 | goto err; |
92 | } | 92 | } |
93 | 93 | ||
diff --git a/src/lib/libcrypto/pem/pvkfmt.c b/src/lib/libcrypto/pem/pvkfmt.c index 0a33a24b9f..5ed8df585f 100644 --- a/src/lib/libcrypto/pem/pvkfmt.c +++ b/src/lib/libcrypto/pem/pvkfmt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pvkfmt.c,v 1.17 2017/01/21 09:38:59 beck Exp $ */ | 1 | /* $OpenBSD: pvkfmt.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 2005. | 3 | * project 2005. |
4 | */ | 4 | */ |
@@ -157,15 +157,13 @@ do_blob_header(const unsigned char **in, unsigned int length, | |||
157 | /* bType */ | 157 | /* bType */ |
158 | if (*p == MS_PUBLICKEYBLOB) { | 158 | if (*p == MS_PUBLICKEYBLOB) { |
159 | if (*pispub == 0) { | 159 | if (*pispub == 0) { |
160 | PEMerr(PEM_F_DO_BLOB_HEADER, | 160 | PEMerror(PEM_R_EXPECTING_PRIVATE_KEY_BLOB); |
161 | PEM_R_EXPECTING_PRIVATE_KEY_BLOB); | ||
162 | return 0; | 161 | return 0; |
163 | } | 162 | } |
164 | *pispub = 1; | 163 | *pispub = 1; |
165 | } else if (*p == MS_PRIVATEKEYBLOB) { | 164 | } else if (*p == MS_PRIVATEKEYBLOB) { |
166 | if (*pispub == 1) { | 165 | if (*pispub == 1) { |
167 | PEMerr(PEM_F_DO_BLOB_HEADER, | 166 | PEMerror(PEM_R_EXPECTING_PUBLIC_KEY_BLOB); |
168 | PEM_R_EXPECTING_PUBLIC_KEY_BLOB); | ||
169 | return 0; | 167 | return 0; |
170 | } | 168 | } |
171 | *pispub = 0; | 169 | *pispub = 0; |
@@ -174,7 +172,7 @@ do_blob_header(const unsigned char **in, unsigned int length, | |||
174 | p++; | 172 | p++; |
175 | /* Version */ | 173 | /* Version */ |
176 | if (*p++ != 0x2) { | 174 | if (*p++ != 0x2) { |
177 | PEMerr(PEM_F_DO_BLOB_HEADER, PEM_R_BAD_VERSION_NUMBER); | 175 | PEMerror(PEM_R_BAD_VERSION_NUMBER); |
178 | return 0; | 176 | return 0; |
179 | } | 177 | } |
180 | /* Ignore reserved, aiKeyAlg */ | 178 | /* Ignore reserved, aiKeyAlg */ |
@@ -182,7 +180,7 @@ do_blob_header(const unsigned char **in, unsigned int length, | |||
182 | *pmagic = read_ledword(&p); | 180 | *pmagic = read_ledword(&p); |
183 | *pbitlen = read_ledword(&p); | 181 | *pbitlen = read_ledword(&p); |
184 | if (*pbitlen > 65536) { | 182 | if (*pbitlen > 65536) { |
185 | PEMerr(PEM_F_DO_BLOB_HEADER, PEM_R_INCONSISTENT_HEADER); | 183 | PEMerror(PEM_R_INCONSISTENT_HEADER); |
186 | return 0; | 184 | return 0; |
187 | } | 185 | } |
188 | *pisdss = 0; | 186 | *pisdss = 0; |
@@ -192,8 +190,7 @@ do_blob_header(const unsigned char **in, unsigned int length, | |||
192 | *pisdss = 1; | 190 | *pisdss = 1; |
193 | case MS_RSA1MAGIC: | 191 | case MS_RSA1MAGIC: |
194 | if (*pispub == 0) { | 192 | if (*pispub == 0) { |
195 | PEMerr(PEM_F_DO_BLOB_HEADER, | 193 | PEMerror(PEM_R_EXPECTING_PRIVATE_KEY_BLOB); |
196 | PEM_R_EXPECTING_PRIVATE_KEY_BLOB); | ||
197 | return 0; | 194 | return 0; |
198 | } | 195 | } |
199 | break; | 196 | break; |
@@ -202,14 +199,13 @@ do_blob_header(const unsigned char **in, unsigned int length, | |||
202 | *pisdss = 1; | 199 | *pisdss = 1; |
203 | case MS_RSA2MAGIC: | 200 | case MS_RSA2MAGIC: |
204 | if (*pispub == 1) { | 201 | if (*pispub == 1) { |
205 | PEMerr(PEM_F_DO_BLOB_HEADER, | 202 | PEMerror(PEM_R_EXPECTING_PUBLIC_KEY_BLOB); |
206 | PEM_R_EXPECTING_PUBLIC_KEY_BLOB); | ||
207 | return 0; | 203 | return 0; |
208 | } | 204 | } |
209 | break; | 205 | break; |
210 | 206 | ||
211 | default: | 207 | default: |
212 | PEMerr(PEM_F_DO_BLOB_HEADER, PEM_R_BAD_MAGIC_NUMBER); | 208 | PEMerror(PEM_R_BAD_MAGIC_NUMBER); |
213 | return -1; | 209 | return -1; |
214 | } | 210 | } |
215 | *in = p; | 211 | *in = p; |
@@ -256,12 +252,12 @@ do_b2i(const unsigned char **in, unsigned int length, int ispub) | |||
256 | int isdss; | 252 | int isdss; |
257 | 253 | ||
258 | if (do_blob_header(&p, length, &magic, &bitlen, &isdss, &ispub) <= 0) { | 254 | if (do_blob_header(&p, length, &magic, &bitlen, &isdss, &ispub) <= 0) { |
259 | PEMerr(PEM_F_DO_B2I, PEM_R_KEYBLOB_HEADER_PARSE_ERROR); | 255 | PEMerror(PEM_R_KEYBLOB_HEADER_PARSE_ERROR); |
260 | return NULL; | 256 | return NULL; |
261 | } | 257 | } |
262 | length -= 16; | 258 | length -= 16; |
263 | if (length < blob_length(bitlen, isdss, ispub)) { | 259 | if (length < blob_length(bitlen, isdss, ispub)) { |
264 | PEMerr(PEM_F_DO_B2I, PEM_R_KEYBLOB_TOO_SHORT); | 260 | PEMerror(PEM_R_KEYBLOB_TOO_SHORT); |
265 | return NULL; | 261 | return NULL; |
266 | } | 262 | } |
267 | if (isdss) | 263 | if (isdss) |
@@ -280,7 +276,7 @@ do_b2i_bio(BIO *in, int ispub) | |||
280 | EVP_PKEY *ret = NULL; | 276 | EVP_PKEY *ret = NULL; |
281 | 277 | ||
282 | if (BIO_read(in, hdr_buf, 16) != 16) { | 278 | if (BIO_read(in, hdr_buf, 16) != 16) { |
283 | PEMerr(PEM_F_DO_B2I_BIO, PEM_R_KEYBLOB_TOO_SHORT); | 279 | PEMerror(PEM_R_KEYBLOB_TOO_SHORT); |
284 | return NULL; | 280 | return NULL; |
285 | } | 281 | } |
286 | p = hdr_buf; | 282 | p = hdr_buf; |
@@ -290,12 +286,12 @@ do_b2i_bio(BIO *in, int ispub) | |||
290 | length = blob_length(bitlen, isdss, ispub); | 286 | length = blob_length(bitlen, isdss, ispub); |
291 | buf = malloc(length); | 287 | buf = malloc(length); |
292 | if (!buf) { | 288 | if (!buf) { |
293 | PEMerr(PEM_F_DO_B2I_BIO, ERR_R_MALLOC_FAILURE); | 289 | PEMerror(ERR_R_MALLOC_FAILURE); |
294 | goto err; | 290 | goto err; |
295 | } | 291 | } |
296 | p = buf; | 292 | p = buf; |
297 | if (BIO_read(in, buf, length) != (int)length) { | 293 | if (BIO_read(in, buf, length) != (int)length) { |
298 | PEMerr(PEM_F_DO_B2I_BIO, PEM_R_KEYBLOB_TOO_SHORT); | 294 | PEMerror(PEM_R_KEYBLOB_TOO_SHORT); |
299 | goto err; | 295 | goto err; |
300 | } | 296 | } |
301 | 297 | ||
@@ -354,7 +350,7 @@ b2i_dss(const unsigned char **in, unsigned int length, unsigned int bitlen, | |||
354 | return ret; | 350 | return ret; |
355 | 351 | ||
356 | memerr: | 352 | memerr: |
357 | PEMerr(PEM_F_B2I_DSS, ERR_R_MALLOC_FAILURE); | 353 | PEMerror(ERR_R_MALLOC_FAILURE); |
358 | DSA_free(dsa); | 354 | DSA_free(dsa); |
359 | EVP_PKEY_free(ret); | 355 | EVP_PKEY_free(ret); |
360 | BN_CTX_free(ctx); | 356 | BN_CTX_free(ctx); |
@@ -404,7 +400,7 @@ b2i_rsa(const unsigned char **in, unsigned int length, unsigned int bitlen, | |||
404 | return ret; | 400 | return ret; |
405 | 401 | ||
406 | memerr: | 402 | memerr: |
407 | PEMerr(PEM_F_B2I_RSA, ERR_R_MALLOC_FAILURE); | 403 | PEMerror(ERR_R_MALLOC_FAILURE); |
408 | RSA_free(rsa); | 404 | RSA_free(rsa); |
409 | EVP_PKEY_free(ret); | 405 | EVP_PKEY_free(ret); |
410 | return NULL; | 406 | return NULL; |
@@ -566,7 +562,7 @@ check_bitlen_dsa(DSA *dsa, int ispub, unsigned int *pmagic) | |||
566 | return bitlen; | 562 | return bitlen; |
567 | 563 | ||
568 | badkey: | 564 | badkey: |
569 | PEMerr(PEM_F_CHECK_BITLEN_DSA, PEM_R_UNSUPPORTED_KEY_COMPONENTS); | 565 | PEMerror(PEM_R_UNSUPPORTED_KEY_COMPONENTS); |
570 | return 0; | 566 | return 0; |
571 | } | 567 | } |
572 | 568 | ||
@@ -600,7 +596,7 @@ check_bitlen_rsa(RSA *rsa, int ispub, unsigned int *pmagic) | |||
600 | return bitlen; | 596 | return bitlen; |
601 | 597 | ||
602 | badkey: | 598 | badkey: |
603 | PEMerr(PEM_F_CHECK_BITLEN_RSA, PEM_R_UNSUPPORTED_KEY_COMPONENTS); | 599 | PEMerror(PEM_R_UNSUPPORTED_KEY_COMPONENTS); |
604 | return 0; | 600 | return 0; |
605 | } | 601 | } |
606 | 602 | ||
@@ -665,19 +661,19 @@ do_PVK_header(const unsigned char **in, unsigned int length, int skip_magic, | |||
665 | 661 | ||
666 | if (skip_magic) { | 662 | if (skip_magic) { |
667 | if (length < 20) { | 663 | if (length < 20) { |
668 | PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_PVK_TOO_SHORT); | 664 | PEMerror(PEM_R_PVK_TOO_SHORT); |
669 | return 0; | 665 | return 0; |
670 | } | 666 | } |
671 | length -= 20; | 667 | length -= 20; |
672 | } else { | 668 | } else { |
673 | if (length < 24) { | 669 | if (length < 24) { |
674 | PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_PVK_TOO_SHORT); | 670 | PEMerror(PEM_R_PVK_TOO_SHORT); |
675 | return 0; | 671 | return 0; |
676 | } | 672 | } |
677 | length -= 24; | 673 | length -= 24; |
678 | pvk_magic = read_ledword(&p); | 674 | pvk_magic = read_ledword(&p); |
679 | if (pvk_magic != MS_PVKMAGIC) { | 675 | if (pvk_magic != MS_PVKMAGIC) { |
680 | PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_BAD_MAGIC_NUMBER); | 676 | PEMerror(PEM_R_BAD_MAGIC_NUMBER); |
681 | return 0; | 677 | return 0; |
682 | } | 678 | } |
683 | } | 679 | } |
@@ -688,12 +684,12 @@ do_PVK_header(const unsigned char **in, unsigned int length, int skip_magic, | |||
688 | *psaltlen = read_ledword(&p); | 684 | *psaltlen = read_ledword(&p); |
689 | *pkeylen = read_ledword(&p); | 685 | *pkeylen = read_ledword(&p); |
690 | if (*psaltlen > 65536 || *pkeylen > 65536) { | 686 | if (*psaltlen > 65536 || *pkeylen > 65536) { |
691 | PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_ERROR_CONVERTING_PRIVATE_KEY); | 687 | PEMerror(PEM_R_ERROR_CONVERTING_PRIVATE_KEY); |
692 | return 0; | 688 | return 0; |
693 | } | 689 | } |
694 | 690 | ||
695 | if (is_encrypted && !*psaltlen) { | 691 | if (is_encrypted && !*psaltlen) { |
696 | PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_INCONSISTENT_HEADER); | 692 | PEMerror(PEM_R_INCONSISTENT_HEADER); |
697 | return 0; | 693 | return 0; |
698 | } | 694 | } |
699 | 695 | ||
@@ -740,12 +736,12 @@ do_PVK_body(const unsigned char **in, unsigned int saltlen, | |||
740 | else | 736 | else |
741 | inlen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); | 737 | inlen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); |
742 | if (inlen <= 0) { | 738 | if (inlen <= 0) { |
743 | PEMerr(PEM_F_DO_PVK_BODY, PEM_R_BAD_PASSWORD_READ); | 739 | PEMerror(PEM_R_BAD_PASSWORD_READ); |
744 | goto err; | 740 | goto err; |
745 | } | 741 | } |
746 | enctmp = malloc(keylen + 8); | 742 | enctmp = malloc(keylen + 8); |
747 | if (!enctmp) { | 743 | if (!enctmp) { |
748 | PEMerr(PEM_F_DO_PVK_BODY, ERR_R_MALLOC_FAILURE); | 744 | PEMerror(ERR_R_MALLOC_FAILURE); |
749 | goto err; | 745 | goto err; |
750 | } | 746 | } |
751 | if (!derive_pvk_key(keybuf, p, saltlen, (unsigned char *)psbuf, | 747 | if (!derive_pvk_key(keybuf, p, saltlen, (unsigned char *)psbuf, |
@@ -757,7 +753,7 @@ do_PVK_body(const unsigned char **in, unsigned int saltlen, | |||
757 | memcpy(enctmp, p, 8); | 753 | memcpy(enctmp, p, 8); |
758 | p += 8; | 754 | p += 8; |
759 | if (keylen < 8) { | 755 | if (keylen < 8) { |
760 | PEMerr(PEM_F_DO_PVK_BODY, PEM_R_PVK_TOO_SHORT); | 756 | PEMerror(PEM_R_PVK_TOO_SHORT); |
761 | goto err; | 757 | goto err; |
762 | } | 758 | } |
763 | inlen = keylen - 8; | 759 | inlen = keylen - 8; |
@@ -783,7 +779,7 @@ do_PVK_body(const unsigned char **in, unsigned int saltlen, | |||
783 | goto err; | 779 | goto err; |
784 | magic = read_ledword((const unsigned char **)&q); | 780 | magic = read_ledword((const unsigned char **)&q); |
785 | if (magic != MS_RSA2MAGIC && magic != MS_DSS2MAGIC) { | 781 | if (magic != MS_RSA2MAGIC && magic != MS_DSS2MAGIC) { |
786 | PEMerr(PEM_F_DO_PVK_BODY, PEM_R_BAD_DECRYPT); | 782 | PEMerror(PEM_R_BAD_DECRYPT); |
787 | goto err; | 783 | goto err; |
788 | } | 784 | } |
789 | } else | 785 | } else |
@@ -811,7 +807,7 @@ b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u) | |||
811 | unsigned int saltlen, keylen; | 807 | unsigned int saltlen, keylen; |
812 | 808 | ||
813 | if (BIO_read(in, pvk_hdr, 24) != 24) { | 809 | if (BIO_read(in, pvk_hdr, 24) != 24) { |
814 | PEMerr(PEM_F_B2I_PVK_BIO, PEM_R_PVK_DATA_TOO_SHORT); | 810 | PEMerror(PEM_R_PVK_DATA_TOO_SHORT); |
815 | return NULL; | 811 | return NULL; |
816 | } | 812 | } |
817 | p = pvk_hdr; | 813 | p = pvk_hdr; |
@@ -821,12 +817,12 @@ b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u) | |||
821 | buflen = keylen + saltlen; | 817 | buflen = keylen + saltlen; |
822 | buf = malloc(buflen); | 818 | buf = malloc(buflen); |
823 | if (!buf) { | 819 | if (!buf) { |
824 | PEMerr(PEM_F_B2I_PVK_BIO, ERR_R_MALLOC_FAILURE); | 820 | PEMerror(ERR_R_MALLOC_FAILURE); |
825 | return 0; | 821 | return 0; |
826 | } | 822 | } |
827 | p = buf; | 823 | p = buf; |
828 | if (BIO_read(in, buf, buflen) != buflen) { | 824 | if (BIO_read(in, buf, buflen) != buflen) { |
829 | PEMerr(PEM_F_B2I_PVK_BIO, PEM_R_PVK_DATA_TOO_SHORT); | 825 | PEMerror(PEM_R_PVK_DATA_TOO_SHORT); |
830 | goto err; | 826 | goto err; |
831 | } | 827 | } |
832 | ret = do_PVK_body(&p, saltlen, keylen, cb, u); | 828 | ret = do_PVK_body(&p, saltlen, keylen, cb, u); |
@@ -861,7 +857,7 @@ i2b_PVK(unsigned char **out, EVP_PKEY*pk, int enclevel, pem_password_cb *cb, | |||
861 | else { | 857 | else { |
862 | p = malloc(outlen); | 858 | p = malloc(outlen); |
863 | if (!p) { | 859 | if (!p) { |
864 | PEMerr(PEM_F_I2B_PVK, ERR_R_MALLOC_FAILURE); | 860 | PEMerror(ERR_R_MALLOC_FAILURE); |
865 | return -1; | 861 | return -1; |
866 | } | 862 | } |
867 | *out = p; | 863 | *out = p; |
@@ -893,7 +889,7 @@ i2b_PVK(unsigned char **out, EVP_PKEY*pk, int enclevel, pem_password_cb *cb, | |||
893 | else | 889 | else |
894 | inlen = PEM_def_callback(psbuf, PEM_BUFSIZE, 1, u); | 890 | inlen = PEM_def_callback(psbuf, PEM_BUFSIZE, 1, u); |
895 | if (inlen <= 0) { | 891 | if (inlen <= 0) { |
896 | PEMerr(PEM_F_I2B_PVK, PEM_R_BAD_PASSWORD_READ); | 892 | PEMerror(PEM_R_BAD_PASSWORD_READ); |
897 | goto error; | 893 | goto error; |
898 | } | 894 | } |
899 | if (!derive_pvk_key(keybuf, salt, PVK_SALTLEN, | 895 | if (!derive_pvk_key(keybuf, salt, PVK_SALTLEN, |
@@ -930,7 +926,7 @@ i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, pem_password_cb *cb, void *u) | |||
930 | wrlen = BIO_write(out, tmp, outlen); | 926 | wrlen = BIO_write(out, tmp, outlen); |
931 | free(tmp); | 927 | free(tmp); |
932 | if (wrlen == outlen) { | 928 | if (wrlen == outlen) { |
933 | PEMerr(PEM_F_I2B_PVK_BIO, PEM_R_BIO_WRITE_FAILURE); | 929 | PEMerror(PEM_R_BIO_WRITE_FAILURE); |
934 | return outlen; | 930 | return outlen; |
935 | } | 931 | } |
936 | return -1; | 932 | return -1; |