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_ssl.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_ssl.c')
| -rw-r--r-- | src/lib/libcrypto/rsa/rsa_ssl.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_ssl.c b/src/lib/libcrypto/rsa/rsa_ssl.c index 73262f29c1..60fc8ec94f 100644 --- a/src/lib/libcrypto/rsa/rsa_ssl.c +++ b/src/lib/libcrypto/rsa/rsa_ssl.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa_ssl.c,v 1.14 2014/10/22 13:02:04 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_ssl.c,v 1.15 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 | * |
| @@ -72,8 +72,7 @@ RSA_padding_add_SSLv23(unsigned char *to, int tlen, const unsigned char *from, | |||
| 72 | unsigned char *p; | 72 | unsigned char *p; |
| 73 | 73 | ||
| 74 | if (flen > tlen - 11) { | 74 | if (flen > tlen - 11) { |
| 75 | RSAerr(RSA_F_RSA_PADDING_ADD_SSLV23, | 75 | RSAerror(RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); |
| 76 | RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); | ||
| 77 | return 0; | 76 | return 0; |
| 78 | } | 77 | } |
| 79 | 78 | ||
| @@ -109,12 +108,11 @@ RSA_padding_check_SSLv23(unsigned char *to, int tlen, const unsigned char *from, | |||
| 109 | 108 | ||
| 110 | p = from; | 109 | p = from; |
| 111 | if (flen < 10) { | 110 | if (flen < 10) { |
| 112 | RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_DATA_TOO_SMALL); | 111 | RSAerror(RSA_R_DATA_TOO_SMALL); |
| 113 | return -1; | 112 | return -1; |
| 114 | } | 113 | } |
| 115 | if (num != flen + 1 || *(p++) != 02) { | 114 | if (num != flen + 1 || *(p++) != 02) { |
| 116 | RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, | 115 | RSAerror(RSA_R_BLOCK_TYPE_IS_NOT_02); |
| 117 | RSA_R_BLOCK_TYPE_IS_NOT_02); | ||
| 118 | return -1; | 116 | return -1; |
| 119 | } | 117 | } |
| 120 | 118 | ||
| @@ -125,8 +123,7 @@ RSA_padding_check_SSLv23(unsigned char *to, int tlen, const unsigned char *from, | |||
| 125 | break; | 123 | break; |
| 126 | 124 | ||
| 127 | if (i == j || i < 8) { | 125 | if (i == j || i < 8) { |
| 128 | RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, | 126 | RSAerror(RSA_R_NULL_BEFORE_BLOCK_MISSING); |
| 129 | RSA_R_NULL_BEFORE_BLOCK_MISSING); | ||
| 130 | return -1; | 127 | return -1; |
| 131 | } | 128 | } |
| 132 | for (k = -9; k < -1; k++) { | 129 | for (k = -9; k < -1; k++) { |
| @@ -134,15 +131,14 @@ RSA_padding_check_SSLv23(unsigned char *to, int tlen, const unsigned char *from, | |||
| 134 | break; | 131 | break; |
| 135 | } | 132 | } |
| 136 | if (k == -1) { | 133 | if (k == -1) { |
| 137 | RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, | 134 | RSAerror(RSA_R_SSLV3_ROLLBACK_ATTACK); |
| 138 | RSA_R_SSLV3_ROLLBACK_ATTACK); | ||
| 139 | return -1; | 135 | return -1; |
| 140 | } | 136 | } |
| 141 | 137 | ||
| 142 | i++; /* Skip over the '\0' */ | 138 | i++; /* Skip over the '\0' */ |
| 143 | j -= i; | 139 | j -= i; |
| 144 | if (j > tlen) { | 140 | if (j > tlen) { |
| 145 | RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_DATA_TOO_LARGE); | 141 | RSAerror(RSA_R_DATA_TOO_LARGE); |
| 146 | return -1; | 142 | return -1; |
| 147 | } | 143 | } |
| 148 | memcpy(to, p, j); | 144 | memcpy(to, p, j); |
