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/rsa/rsa_pmeth.c | |
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/rsa/rsa_pmeth.c')
-rw-r--r-- | src/lib/libcrypto/rsa/rsa_pmeth.c | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_pmeth.c b/src/lib/libcrypto/rsa/rsa_pmeth.c index 4b7fc09514..2ef1f3c64a 100644 --- a/src/lib/libcrypto/rsa/rsa_pmeth.c +++ b/src/lib/libcrypto/rsa/rsa_pmeth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_pmeth.c,v 1.18 2016/10/19 16:49:11 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_pmeth.c,v 1.19 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 | */ |
@@ -170,8 +170,7 @@ pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, | |||
170 | 170 | ||
171 | if (rctx->md) { | 171 | if (rctx->md) { |
172 | if (tbslen != (size_t)EVP_MD_size(rctx->md)) { | 172 | if (tbslen != (size_t)EVP_MD_size(rctx->md)) { |
173 | RSAerr(RSA_F_PKEY_RSA_SIGN, | 173 | RSAerror(RSA_R_INVALID_DIGEST_LENGTH); |
174 | RSA_R_INVALID_DIGEST_LENGTH); | ||
175 | return -1; | 174 | return -1; |
176 | } | 175 | } |
177 | 176 | ||
@@ -228,13 +227,11 @@ pkey_rsa_verifyrecover(EVP_PKEY_CTX *ctx, unsigned char *rout, size_t *routlen, | |||
228 | ret--; | 227 | ret--; |
229 | if (rctx->tbuf[ret] != | 228 | if (rctx->tbuf[ret] != |
230 | RSA_X931_hash_id(EVP_MD_type(rctx->md))) { | 229 | RSA_X931_hash_id(EVP_MD_type(rctx->md))) { |
231 | RSAerr(RSA_F_PKEY_RSA_VERIFYRECOVER, | 230 | RSAerror(RSA_R_ALGORITHM_MISMATCH); |
232 | RSA_R_ALGORITHM_MISMATCH); | ||
233 | return 0; | 231 | return 0; |
234 | } | 232 | } |
235 | if (ret != EVP_MD_size(rctx->md)) { | 233 | if (ret != EVP_MD_size(rctx->md)) { |
236 | RSAerr(RSA_F_PKEY_RSA_VERIFYRECOVER, | 234 | RSAerror(RSA_R_INVALID_DIGEST_LENGTH); |
237 | RSA_R_INVALID_DIGEST_LENGTH); | ||
238 | return 0; | 235 | return 0; |
239 | } | 236 | } |
240 | if (rout) | 237 | if (rout) |
@@ -342,14 +339,13 @@ check_padding_md(const EVP_MD *md, int padding) | |||
342 | return 1; | 339 | return 1; |
343 | 340 | ||
344 | if (padding == RSA_NO_PADDING) { | 341 | if (padding == RSA_NO_PADDING) { |
345 | RSAerr(RSA_F_CHECK_PADDING_MD, RSA_R_INVALID_PADDING_MODE); | 342 | RSAerror(RSA_R_INVALID_PADDING_MODE); |
346 | return 0; | 343 | return 0; |
347 | } | 344 | } |
348 | 345 | ||
349 | if (padding == RSA_X931_PADDING) { | 346 | if (padding == RSA_X931_PADDING) { |
350 | if (RSA_X931_hash_id(EVP_MD_type(md)) == -1) { | 347 | if (RSA_X931_hash_id(EVP_MD_type(md)) == -1) { |
351 | RSAerr(RSA_F_CHECK_PADDING_MD, | 348 | RSAerror(RSA_R_INVALID_X931_DIGEST); |
352 | RSA_R_INVALID_X931_DIGEST); | ||
353 | return 0; | 349 | return 0; |
354 | } | 350 | } |
355 | return 1; | 351 | return 1; |
@@ -385,8 +381,7 @@ pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | |||
385 | return 1; | 381 | return 1; |
386 | } | 382 | } |
387 | bad_pad: | 383 | bad_pad: |
388 | RSAerr(RSA_F_PKEY_RSA_CTRL, | 384 | RSAerror(RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE); |
389 | RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE); | ||
390 | return -2; | 385 | return -2; |
391 | 386 | ||
392 | case EVP_PKEY_CTRL_GET_RSA_PADDING: | 387 | case EVP_PKEY_CTRL_GET_RSA_PADDING: |
@@ -396,7 +391,7 @@ bad_pad: | |||
396 | case EVP_PKEY_CTRL_RSA_PSS_SALTLEN: | 391 | case EVP_PKEY_CTRL_RSA_PSS_SALTLEN: |
397 | case EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN: | 392 | case EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN: |
398 | if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING) { | 393 | if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING) { |
399 | RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_INVALID_PSS_SALTLEN); | 394 | RSAerror(RSA_R_INVALID_PSS_SALTLEN); |
400 | return -2; | 395 | return -2; |
401 | } | 396 | } |
402 | if (type == EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN) | 397 | if (type == EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN) |
@@ -410,7 +405,7 @@ bad_pad: | |||
410 | 405 | ||
411 | case EVP_PKEY_CTRL_RSA_KEYGEN_BITS: | 406 | case EVP_PKEY_CTRL_RSA_KEYGEN_BITS: |
412 | if (p1 < 256) { | 407 | if (p1 < 256) { |
413 | RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_INVALID_KEYBITS); | 408 | RSAerror(RSA_R_INVALID_KEYBITS); |
414 | return -2; | 409 | return -2; |
415 | } | 410 | } |
416 | rctx->nbits = p1; | 411 | rctx->nbits = p1; |
@@ -431,7 +426,7 @@ bad_pad: | |||
431 | case EVP_PKEY_CTRL_RSA_MGF1_MD: | 426 | case EVP_PKEY_CTRL_RSA_MGF1_MD: |
432 | case EVP_PKEY_CTRL_GET_RSA_MGF1_MD: | 427 | case EVP_PKEY_CTRL_GET_RSA_MGF1_MD: |
433 | if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING) { | 428 | if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING) { |
434 | RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_INVALID_MGF1_MD); | 429 | RSAerror(RSA_R_INVALID_MGF1_MD); |
435 | return -2; | 430 | return -2; |
436 | } | 431 | } |
437 | if (type == EVP_PKEY_CTRL_GET_RSA_MGF1_MD) { | 432 | if (type == EVP_PKEY_CTRL_GET_RSA_MGF1_MD) { |
@@ -449,8 +444,7 @@ bad_pad: | |||
449 | case EVP_PKEY_CTRL_PKCS7_SIGN: | 444 | case EVP_PKEY_CTRL_PKCS7_SIGN: |
450 | return 1; | 445 | return 1; |
451 | case EVP_PKEY_CTRL_PEER_KEY: | 446 | case EVP_PKEY_CTRL_PEER_KEY: |
452 | RSAerr(RSA_F_PKEY_RSA_CTRL, | 447 | RSAerror(RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); |
453 | RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | ||
454 | return -2; | 448 | return -2; |
455 | 449 | ||
456 | default: | 450 | default: |
@@ -465,7 +459,7 @@ pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value) | |||
465 | char *ep; | 459 | char *ep; |
466 | 460 | ||
467 | if (!value) { | 461 | if (!value) { |
468 | RSAerr(RSA_F_PKEY_RSA_CTRL_STR, RSA_R_VALUE_MISSING); | 462 | RSAerror(RSA_R_VALUE_MISSING); |
469 | return 0; | 463 | return 0; |
470 | } | 464 | } |
471 | if (!strcmp(type, "rsa_padding_mode")) { | 465 | if (!strcmp(type, "rsa_padding_mode")) { |
@@ -485,8 +479,7 @@ pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value) | |||
485 | else if (!strcmp(value, "pss")) | 479 | else if (!strcmp(value, "pss")) |
486 | pm = RSA_PKCS1_PSS_PADDING; | 480 | pm = RSA_PKCS1_PSS_PADDING; |
487 | else { | 481 | else { |
488 | RSAerr(RSA_F_PKEY_RSA_CTRL_STR, | 482 | RSAerror(RSA_R_UNKNOWN_PADDING_TYPE); |
489 | RSA_R_UNKNOWN_PADDING_TYPE); | ||
490 | return -2; | 483 | return -2; |
491 | } | 484 | } |
492 | return EVP_PKEY_CTX_set_rsa_padding(ctx, pm); | 485 | return EVP_PKEY_CTX_set_rsa_padding(ctx, pm); |