diff options
| author | beck <> | 2017-01-29 17:49:23 +0000 |
|---|---|---|
| committer | beck <> | 2017-01-29 17:49:23 +0000 |
| commit | d1f47bd292f36094480caa49ada36b99a69c59b0 (patch) | |
| tree | 1a54abba678898ee5270ae4f3404a50ee9a92eea /src/lib/libcrypto/rsa/rsa_pmeth.c | |
| parent | f8c627888330b75c2eea8a3c27d0efe947a4f9da (diff) | |
| download | openbsd-d1f47bd292f36094480caa49ada36b99a69c59b0.tar.gz openbsd-d1f47bd292f36094480caa49ada36b99a69c59b0.tar.bz2 openbsd-d1f47bd292f36094480caa49ada36b99a69c59b0.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); |
