summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/d1_pkt.c5
-rw-r--r--src/lib/libssl/s3_cbc.c4
-rw-r--r--src/lib/libssl/ssl_locl.h3
-rw-r--r--src/lib/libssl/ssl_pkt.c5
-rw-r--r--src/lib/libssl/t1_enc.c6
5 files changed, 10 insertions, 13 deletions
diff --git a/src/lib/libssl/d1_pkt.c b/src/lib/libssl/d1_pkt.c
index 31415b7c3a..524cfc3351 100644
--- a/src/lib/libssl/d1_pkt.c
+++ b/src/lib/libssl/d1_pkt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: d1_pkt.c,v 1.71 2020/03/12 17:01:53 jsing Exp $ */ 1/* $OpenBSD: d1_pkt.c,v 1.72 2020/03/12 17:09:02 jsing Exp $ */
2/* 2/*
3 * DTLS implementation written by Nagendra Modadugu 3 * DTLS implementation written by Nagendra Modadugu
4 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. 4 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
@@ -380,8 +380,7 @@ dtls1_process_record(SSL *s)
380 mac_size = EVP_MD_CTX_size(s->read_hash); 380 mac_size = EVP_MD_CTX_size(s->read_hash);
381 OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE); 381 OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
382 382
383 /* kludge: *_cbc_remove_padding passes padding length in rr->type */ 383 orig_len = rr->length + rr->padding_length;
384 orig_len = rr->length + ((unsigned int)rr->type >> 8);
385 384
386 /* orig_len is the length of the record before any padding was 385 /* orig_len is the length of the record before any padding was
387 * removed. This is public information, as is the MAC in use, 386 * removed. This is public information, as is the MAC in use,
diff --git a/src/lib/libssl/s3_cbc.c b/src/lib/libssl/s3_cbc.c
index 371c68cfcc..8ae87d7303 100644
--- a/src/lib/libssl/s3_cbc.c
+++ b/src/lib/libssl/s3_cbc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_cbc.c,v 1.19 2020/03/12 17:01:53 jsing Exp $ */ 1/* $OpenBSD: s3_cbc.c,v 1.20 2020/03/12 17:09:02 jsing Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2012 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2012 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -169,7 +169,7 @@ tls1_cbc_remove_padding(const SSL* s, SSL3_RECORD_INTERNAL *rec,
169 169
170 padding_length = good & (padding_length + 1); 170 padding_length = good & (padding_length + 1);
171 rec->length -= padding_length; 171 rec->length -= padding_length;
172 rec->type |= padding_length<<8; /* kludge: pass padding length */ 172 rec->padding_length = padding_length;
173 173
174 return (int)((good & 1) | (~good & -1)); 174 return (int)((good & 1) | (~good & -1));
175} 175}
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index a696ef99b1..6604768485 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_locl.h,v 1.268 2020/03/12 17:01:53 jsing Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.269 2020/03/12 17:09:02 jsing 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 *
@@ -779,6 +779,7 @@ typedef struct ssl_internal_st {
779typedef struct ssl3_record_internal_st { 779typedef struct ssl3_record_internal_st {
780 int type; /* type of record */ 780 int type; /* type of record */
781 unsigned int length; /* How many bytes available */ 781 unsigned int length; /* How many bytes available */
782 unsigned int padding_length; /* Number of padding bytes. */
782 unsigned int off; /* read/write offset into 'buf' */ 783 unsigned int off; /* read/write offset into 'buf' */
783 unsigned char *data; /* pointer to the record data */ 784 unsigned char *data; /* pointer to the record data */
784 unsigned char *input; /* where the decode bytes are */ 785 unsigned char *input; /* where the decode bytes are */
diff --git a/src/lib/libssl/ssl_pkt.c b/src/lib/libssl/ssl_pkt.c
index 4302794d94..0d1d4f78c7 100644
--- a/src/lib/libssl/ssl_pkt.c
+++ b/src/lib/libssl/ssl_pkt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_pkt.c,v 1.22 2020/03/12 17:01:53 jsing Exp $ */ 1/* $OpenBSD: ssl_pkt.c,v 1.23 2020/03/12 17:09:02 jsing 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 *
@@ -451,8 +451,7 @@ ssl3_get_record(SSL *s)
451 mac_size = EVP_MD_CTX_size(s->read_hash); 451 mac_size = EVP_MD_CTX_size(s->read_hash);
452 OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE); 452 OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
453 453
454 /* kludge: *_cbc_remove_padding passes padding length in rr->type */ 454 orig_len = rr->length + rr->padding_length;
455 orig_len = rr->length + ((unsigned int)rr->type >> 8);
456 455
457 /* orig_len is the length of the record before any padding was 456 /* orig_len is the length of the record before any padding was
458 * removed. This is public information, as is the MAC in use, 457 * removed. This is public information, as is the MAC in use,
diff --git a/src/lib/libssl/t1_enc.c b/src/lib/libssl/t1_enc.c
index b399f2bd3c..347d34d455 100644
--- a/src/lib/libssl/t1_enc.c
+++ b/src/lib/libssl/t1_enc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t1_enc.c,v 1.119 2020/03/12 17:01:53 jsing Exp $ */ 1/* $OpenBSD: t1_enc.c,v 1.120 2020/03/12 17:09:02 jsing 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 *
@@ -971,9 +971,7 @@ tls1_mac(SSL *ssl, unsigned char *md, int send)
971 else 971 else
972 memcpy(header, seq, SSL3_SEQUENCE_SIZE); 972 memcpy(header, seq, SSL3_SEQUENCE_SIZE);
973 973
974 /* kludge: tls1_cbc_remove_padding passes padding length in rec->type */ 974 orig_len = rec->length + md_size + rec->padding_length;
975 orig_len = rec->length + md_size + ((unsigned int)rec->type >> 8);
976 rec->type &= 0xff;
977 975
978 header[8] = rec->type; 976 header[8] = rec->type;
979 header[9] = (unsigned char)(ssl->version >> 8); 977 header[9] = (unsigned char)(ssl->version >> 8);