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_pk1.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_pk1.c')
-rw-r--r-- | src/lib/libcrypto/rsa/rsa_pk1.c | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_pk1.c b/src/lib/libcrypto/rsa/rsa_pk1.c index 6c3e7fb846..6de263113f 100644 --- a/src/lib/libcrypto/rsa/rsa_pk1.c +++ b/src/lib/libcrypto/rsa/rsa_pk1.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rsa_pk1.c,v 1.14 2014/10/22 13:02:04 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_pk1.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_PKCS1_type_1(unsigned char *to, int tlen, | |||
72 | unsigned char *p; | 72 | unsigned char *p; |
73 | 73 | ||
74 | if (flen > (tlen - RSA_PKCS1_PADDING_SIZE)) { | 74 | if (flen > (tlen - RSA_PKCS1_PADDING_SIZE)) { |
75 | RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1, | 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 | ||
@@ -101,8 +100,7 @@ RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, | |||
101 | 100 | ||
102 | p = from; | 101 | p = from; |
103 | if (num != flen + 1 || *(p++) != 01) { | 102 | if (num != flen + 1 || *(p++) != 01) { |
104 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1, | 103 | RSAerror(RSA_R_BLOCK_TYPE_IS_NOT_01); |
105 | RSA_R_BLOCK_TYPE_IS_NOT_01); | ||
106 | return -1; | 104 | return -1; |
107 | } | 105 | } |
108 | 106 | ||
@@ -115,8 +113,7 @@ RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, | |||
115 | p++; | 113 | p++; |
116 | break; | 114 | break; |
117 | } else { | 115 | } else { |
118 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1, | 116 | RSAerror(RSA_R_BAD_FIXED_HEADER_DECRYPT); |
119 | RSA_R_BAD_FIXED_HEADER_DECRYPT); | ||
120 | return -1; | 117 | return -1; |
121 | } | 118 | } |
122 | } | 119 | } |
@@ -124,21 +121,18 @@ RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, | |||
124 | } | 121 | } |
125 | 122 | ||
126 | if (i == j) { | 123 | if (i == j) { |
127 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1, | 124 | RSAerror(RSA_R_NULL_BEFORE_BLOCK_MISSING); |
128 | RSA_R_NULL_BEFORE_BLOCK_MISSING); | ||
129 | return -1; | 125 | return -1; |
130 | } | 126 | } |
131 | 127 | ||
132 | if (i < 8) { | 128 | if (i < 8) { |
133 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1, | 129 | RSAerror(RSA_R_BAD_PAD_BYTE_COUNT); |
134 | RSA_R_BAD_PAD_BYTE_COUNT); | ||
135 | return -1; | 130 | return -1; |
136 | } | 131 | } |
137 | i++; /* Skip over the '\0' */ | 132 | i++; /* Skip over the '\0' */ |
138 | j -= i; | 133 | j -= i; |
139 | if (j > tlen) { | 134 | if (j > tlen) { |
140 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1, | 135 | RSAerror(RSA_R_DATA_TOO_LARGE); |
141 | RSA_R_DATA_TOO_LARGE); | ||
142 | return -1; | 136 | return -1; |
143 | } | 137 | } |
144 | memcpy(to, p, j); | 138 | memcpy(to, p, j); |
@@ -154,8 +148,7 @@ RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, | |||
154 | unsigned char *p; | 148 | unsigned char *p; |
155 | 149 | ||
156 | if (flen > tlen - 11) { | 150 | if (flen > tlen - 11) { |
157 | RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2, | 151 | RSAerror(RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); |
158 | RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); | ||
159 | return 0; | 152 | return 0; |
160 | } | 153 | } |
161 | 154 | ||
@@ -189,8 +182,7 @@ RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, | |||
189 | 182 | ||
190 | p = from; | 183 | p = from; |
191 | if (num != flen + 1 || *(p++) != 02) { | 184 | if (num != flen + 1 || *(p++) != 02) { |
192 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, | 185 | RSAerror(RSA_R_BLOCK_TYPE_IS_NOT_02); |
193 | RSA_R_BLOCK_TYPE_IS_NOT_02); | ||
194 | return -1; | 186 | return -1; |
195 | } | 187 | } |
196 | 188 | ||
@@ -201,21 +193,18 @@ RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, | |||
201 | break; | 193 | break; |
202 | 194 | ||
203 | if (i == j) { | 195 | if (i == j) { |
204 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, | 196 | RSAerror(RSA_R_NULL_BEFORE_BLOCK_MISSING); |
205 | RSA_R_NULL_BEFORE_BLOCK_MISSING); | ||
206 | return -1; | 197 | return -1; |
207 | } | 198 | } |
208 | 199 | ||
209 | if (i < 8) { | 200 | if (i < 8) { |
210 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, | 201 | RSAerror(RSA_R_BAD_PAD_BYTE_COUNT); |
211 | RSA_R_BAD_PAD_BYTE_COUNT); | ||
212 | return -1; | 202 | return -1; |
213 | } | 203 | } |
214 | i++; /* Skip over the '\0' */ | 204 | i++; /* Skip over the '\0' */ |
215 | j -= i; | 205 | j -= i; |
216 | if (j > tlen) { | 206 | if (j > tlen) { |
217 | RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, | 207 | RSAerror(RSA_R_DATA_TOO_LARGE); |
218 | RSA_R_DATA_TOO_LARGE); | ||
219 | return -1; | 208 | return -1; |
220 | } | 209 | } |
221 | memcpy(to, p, j); | 210 | memcpy(to, p, j); |