diff options
author | jsing <> | 2014-04-14 13:30:33 +0000 |
---|---|---|
committer | jsing <> | 2014-04-14 13:30:33 +0000 |
commit | 72c1bd17672378115dcd5254ed88828e45357e7f (patch) | |
tree | 6d84033abc3e010c38a167672de277eb379bed04 /src/lib/libssl/t1_reneg.c | |
parent | b12a89b75a526f5ae9bbd6bfff6053e21295fd2a (diff) | |
download | openbsd-72c1bd17672378115dcd5254ed88828e45357e7f.tar.gz openbsd-72c1bd17672378115dcd5254ed88828e45357e7f.tar.bz2 openbsd-72c1bd17672378115dcd5254ed88828e45357e7f.zip |
First pass at applying KNF to the OpenSSL code, which almost makes it
readable. This pass is whitespace only and can readily be verified using
tr and md5.
Diffstat (limited to 'src/lib/libssl/t1_reneg.c')
-rw-r--r-- | src/lib/libssl/t1_reneg.c | 278 |
1 files changed, 134 insertions, 144 deletions
diff --git a/src/lib/libssl/t1_reneg.c b/src/lib/libssl/t1_reneg.c index 9c2cc3c712..86e0e61ffb 100644 --- a/src/lib/libssl/t1_reneg.c +++ b/src/lib/libssl/t1_reneg.c | |||
@@ -113,180 +113,170 @@ | |||
113 | #include "ssl_locl.h" | 113 | #include "ssl_locl.h" |
114 | 114 | ||
115 | /* Add the client's renegotiation binding */ | 115 | /* Add the client's renegotiation binding */ |
116 | int ssl_add_clienthello_renegotiate_ext(SSL *s, unsigned char *p, int *len, | 116 | int |
117 | int maxlen) | 117 | ssl_add_clienthello_renegotiate_ext(SSL *s, unsigned char *p, int *len, |
118 | { | 118 | int maxlen) |
119 | if(p) | 119 | { |
120 | { | 120 | if (p) { |
121 | if((s->s3->previous_client_finished_len+1) > maxlen) | 121 | if ((s->s3->previous_client_finished_len + 1) > maxlen) { |
122 | { | 122 | SSLerr(SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATE_EXT_TOO_LONG); |
123 | SSLerr(SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATE_EXT_TOO_LONG); | 123 | return 0; |
124 | return 0; | 124 | } |
125 | } | ||
126 | |||
127 | /* Length byte */ | ||
128 | *p = s->s3->previous_client_finished_len; | ||
129 | p++; | ||
130 | 125 | ||
131 | memcpy(p, s->s3->previous_client_finished, | 126 | /* Length byte */ |
132 | s->s3->previous_client_finished_len); | 127 | *p = s->s3->previous_client_finished_len; |
128 | p++; | ||
129 | |||
130 | memcpy(p, s->s3->previous_client_finished, | ||
131 | s->s3->previous_client_finished_len); | ||
133 | #ifdef OPENSSL_RI_DEBUG | 132 | #ifdef OPENSSL_RI_DEBUG |
134 | fprintf(stderr, "%s RI extension sent by client\n", | 133 | fprintf(stderr, "%s RI extension sent by client\n", |
135 | s->s3->previous_client_finished_len ? "Non-empty" : "Empty"); | 134 | s->s3->previous_client_finished_len ? "Non-empty" : "Empty"); |
136 | #endif | 135 | #endif |
137 | } | 136 | } |
138 | 137 | ||
139 | *len=s->s3->previous_client_finished_len + 1; | 138 | *len = s->s3->previous_client_finished_len + 1; |
140 | 139 | ||
141 | 140 | return 1; | |
142 | return 1; | 141 | } |
143 | } | ||
144 | 142 | ||
145 | /* Parse the client's renegotiation binding and abort if it's not | 143 | /* Parse the client's renegotiation binding and abort if it's not |
146 | right */ | 144 | right */ |
147 | int ssl_parse_clienthello_renegotiate_ext(SSL *s, unsigned char *d, int len, | 145 | int |
148 | int *al) | 146 | ssl_parse_clienthello_renegotiate_ext(SSL *s, unsigned char *d, int len, |
149 | { | 147 | int *al) |
150 | int ilen; | 148 | { |
149 | int ilen; | ||
150 | |||
151 | /* Parse the length byte */ | ||
152 | if (len < 1) { | ||
153 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_ENCODING_ERR); | ||
154 | *al = SSL_AD_ILLEGAL_PARAMETER; | ||
155 | return 0; | ||
156 | } | ||
157 | ilen = *d; | ||
158 | d++; | ||
151 | 159 | ||
152 | /* Parse the length byte */ | 160 | /* Consistency check */ |
153 | if(len < 1) | 161 | if ((ilen + 1) != len) { |
154 | { | 162 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_ENCODING_ERR); |
155 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_ENCODING_ERR); | 163 | *al = SSL_AD_ILLEGAL_PARAMETER; |
156 | *al=SSL_AD_ILLEGAL_PARAMETER; | 164 | return 0; |
157 | return 0; | 165 | } |
158 | } | ||
159 | ilen = *d; | ||
160 | d++; | ||
161 | 166 | ||
162 | /* Consistency check */ | 167 | /* Check that the extension matches */ |
163 | if((ilen+1) != len) | 168 | if (ilen != s->s3->previous_client_finished_len) { |
164 | { | 169 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_MISMATCH); |
165 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_ENCODING_ERR); | 170 | *al = SSL_AD_HANDSHAKE_FAILURE; |
166 | *al=SSL_AD_ILLEGAL_PARAMETER; | 171 | return 0; |
167 | return 0; | 172 | } |
168 | } | ||
169 | 173 | ||
170 | /* Check that the extension matches */ | 174 | if (memcmp(d, s->s3->previous_client_finished, |
171 | if(ilen != s->s3->previous_client_finished_len) | 175 | s->s3->previous_client_finished_len)) { |
172 | { | 176 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_MISMATCH); |
173 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_MISMATCH); | 177 | *al = SSL_AD_HANDSHAKE_FAILURE; |
174 | *al=SSL_AD_HANDSHAKE_FAILURE; | 178 | return 0; |
175 | return 0; | 179 | } |
176 | } | ||
177 | |||
178 | if(memcmp(d, s->s3->previous_client_finished, | ||
179 | s->s3->previous_client_finished_len)) | ||
180 | { | ||
181 | SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_MISMATCH); | ||
182 | *al=SSL_AD_HANDSHAKE_FAILURE; | ||
183 | return 0; | ||
184 | } | ||
185 | #ifdef OPENSSL_RI_DEBUG | 180 | #ifdef OPENSSL_RI_DEBUG |
186 | fprintf(stderr, "%s RI extension received by server\n", | 181 | fprintf(stderr, "%s RI extension received by server\n", |
187 | ilen ? "Non-empty" : "Empty"); | 182 | ilen ? "Non-empty" : "Empty"); |
188 | #endif | 183 | #endif |
189 | 184 | ||
190 | s->s3->send_connection_binding=1; | 185 | s->s3->send_connection_binding = 1; |
191 | 186 | ||
192 | return 1; | 187 | return 1; |
193 | } | 188 | } |
194 | 189 | ||
195 | /* Add the server's renegotiation binding */ | 190 | /* Add the server's renegotiation binding */ |
196 | int ssl_add_serverhello_renegotiate_ext(SSL *s, unsigned char *p, int *len, | 191 | int |
197 | int maxlen) | 192 | ssl_add_serverhello_renegotiate_ext(SSL *s, unsigned char *p, int *len, |
198 | { | 193 | int maxlen) |
199 | if(p) | 194 | { |
200 | { | 195 | if (p) { |
201 | if((s->s3->previous_client_finished_len + | 196 | if ((s->s3->previous_client_finished_len + |
202 | s->s3->previous_server_finished_len + 1) > maxlen) | 197 | s->s3->previous_server_finished_len + 1) > maxlen) { |
203 | { | 198 | SSLerr(SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATE_EXT_TOO_LONG); |
204 | SSLerr(SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATE_EXT_TOO_LONG); | 199 | return 0; |
205 | return 0; | 200 | } |
206 | } | ||
207 | |||
208 | /* Length byte */ | ||
209 | *p = s->s3->previous_client_finished_len + s->s3->previous_server_finished_len; | ||
210 | p++; | ||
211 | 201 | ||
212 | memcpy(p, s->s3->previous_client_finished, | 202 | /* Length byte */ |
213 | s->s3->previous_client_finished_len); | 203 | *p = s->s3->previous_client_finished_len + s->s3->previous_server_finished_len; |
214 | p += s->s3->previous_client_finished_len; | 204 | p++; |
215 | 205 | ||
216 | memcpy(p, s->s3->previous_server_finished, | 206 | memcpy(p, s->s3->previous_client_finished, |
217 | s->s3->previous_server_finished_len); | 207 | s->s3->previous_client_finished_len); |
208 | p += s->s3->previous_client_finished_len; | ||
209 | |||
210 | memcpy(p, s->s3->previous_server_finished, | ||
211 | s->s3->previous_server_finished_len); | ||
218 | #ifdef OPENSSL_RI_DEBUG | 212 | #ifdef OPENSSL_RI_DEBUG |
219 | fprintf(stderr, "%s RI extension sent by server\n", | 213 | fprintf(stderr, "%s RI extension sent by server\n", |
220 | s->s3->previous_client_finished_len ? "Non-empty" : "Empty"); | 214 | s->s3->previous_client_finished_len ? "Non-empty" : "Empty"); |
221 | #endif | 215 | #endif |
222 | } | 216 | } |
223 | 217 | ||
224 | *len=s->s3->previous_client_finished_len | 218 | *len = s->s3->previous_client_finished_len |
225 | + s->s3->previous_server_finished_len + 1; | 219 | + s->s3->previous_server_finished_len + 1; |
226 | 220 | ||
227 | return 1; | 221 | return 1; |
228 | } | 222 | } |
229 | 223 | ||
230 | /* Parse the server's renegotiation binding and abort if it's not | 224 | /* Parse the server's renegotiation binding and abort if it's not |
231 | right */ | 225 | right */ |
232 | int ssl_parse_serverhello_renegotiate_ext(SSL *s, unsigned char *d, int len, | 226 | int |
233 | int *al) | 227 | ssl_parse_serverhello_renegotiate_ext(SSL *s, unsigned char *d, int len, |
234 | { | 228 | int *al) |
235 | int expected_len=s->s3->previous_client_finished_len | 229 | { |
230 | int expected_len = s->s3->previous_client_finished_len | ||
236 | + s->s3->previous_server_finished_len; | 231 | + s->s3->previous_server_finished_len; |
237 | int ilen; | 232 | int ilen; |
233 | |||
234 | /* Check for logic errors */ | ||
235 | OPENSSL_assert(!expected_len || s->s3->previous_client_finished_len); | ||
236 | OPENSSL_assert(!expected_len || s->s3->previous_server_finished_len); | ||
237 | |||
238 | /* Parse the length byte */ | ||
239 | if (len < 1) { | ||
240 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_ENCODING_ERR); | ||
241 | *al = SSL_AD_ILLEGAL_PARAMETER; | ||
242 | return 0; | ||
243 | } | ||
244 | ilen = *d; | ||
245 | d++; | ||
238 | 246 | ||
239 | /* Check for logic errors */ | 247 | /* Consistency check */ |
240 | OPENSSL_assert(!expected_len || s->s3->previous_client_finished_len); | 248 | if (ilen + 1 != len) { |
241 | OPENSSL_assert(!expected_len || s->s3->previous_server_finished_len); | 249 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_ENCODING_ERR); |
242 | 250 | *al = SSL_AD_ILLEGAL_PARAMETER; | |
243 | /* Parse the length byte */ | 251 | return 0; |
244 | if(len < 1) | 252 | } |
245 | { | ||
246 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_ENCODING_ERR); | ||
247 | *al=SSL_AD_ILLEGAL_PARAMETER; | ||
248 | return 0; | ||
249 | } | ||
250 | ilen = *d; | ||
251 | d++; | ||
252 | 253 | ||
253 | /* Consistency check */ | 254 | /* Check that the extension matches */ |
254 | if(ilen+1 != len) | 255 | if (ilen != expected_len) { |
255 | { | 256 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_MISMATCH); |
256 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_ENCODING_ERR); | 257 | *al = SSL_AD_HANDSHAKE_FAILURE; |
257 | *al=SSL_AD_ILLEGAL_PARAMETER; | 258 | return 0; |
258 | return 0; | 259 | } |
259 | } | ||
260 | |||
261 | /* Check that the extension matches */ | ||
262 | if(ilen != expected_len) | ||
263 | { | ||
264 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_MISMATCH); | ||
265 | *al=SSL_AD_HANDSHAKE_FAILURE; | ||
266 | return 0; | ||
267 | } | ||
268 | 260 | ||
269 | if(memcmp(d, s->s3->previous_client_finished, | 261 | if (memcmp(d, s->s3->previous_client_finished, |
270 | s->s3->previous_client_finished_len)) | 262 | s->s3->previous_client_finished_len)) { |
271 | { | 263 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_MISMATCH); |
272 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_MISMATCH); | 264 | *al = SSL_AD_HANDSHAKE_FAILURE; |
273 | *al=SSL_AD_HANDSHAKE_FAILURE; | 265 | return 0; |
274 | return 0; | 266 | } |
275 | } | 267 | d += s->s3->previous_client_finished_len; |
276 | d += s->s3->previous_client_finished_len; | ||
277 | 268 | ||
278 | if(memcmp(d, s->s3->previous_server_finished, | 269 | if (memcmp(d, s->s3->previous_server_finished, |
279 | s->s3->previous_server_finished_len)) | 270 | s->s3->previous_server_finished_len)) { |
280 | { | 271 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT, SSL_R_RENEGOTIATION_MISMATCH); |
281 | SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT,SSL_R_RENEGOTIATION_MISMATCH); | 272 | *al = SSL_AD_ILLEGAL_PARAMETER; |
282 | *al=SSL_AD_ILLEGAL_PARAMETER; | 273 | return 0; |
283 | return 0; | 274 | } |
284 | } | ||
285 | #ifdef OPENSSL_RI_DEBUG | 275 | #ifdef OPENSSL_RI_DEBUG |
286 | fprintf(stderr, "%s RI extension received by client\n", | 276 | fprintf(stderr, "%s RI extension received by client\n", |
287 | ilen ? "Non-empty" : "Empty"); | 277 | ilen ? "Non-empty" : "Empty"); |
288 | #endif | 278 | #endif |
289 | s->s3->send_connection_binding=1; | 279 | s->s3->send_connection_binding = 1; |
290 | 280 | ||
291 | return 1; | 281 | return 1; |
292 | } | 282 | } |