ssl/*: remove SSL3_RECORD->orig_len to restore binary compatibility.
Kludge alert. This is arranged by passing padding length in unused
bits of SSL3_RECORD->type, so that orig_len can be reconstructed.
(cherry picked from commit 8bfd4c659f
)
This commit is contained in:

committed by
Dr. Stephen Henson

parent
d7f55e76f2
commit
eeb486a5f4
@@ -730,7 +730,7 @@ int n_ssl3_mac(SSL *ssl, unsigned char *md, int send)
|
||||
EVP_MD_CTX md_ctx;
|
||||
const EVP_MD_CTX *hash;
|
||||
unsigned char *p,rec_char;
|
||||
size_t md_size;
|
||||
size_t md_size, orig_len;
|
||||
int npad;
|
||||
int t;
|
||||
|
||||
@@ -755,6 +755,10 @@ int n_ssl3_mac(SSL *ssl, unsigned char *md, int send)
|
||||
md_size=t;
|
||||
npad=(48/md_size)*md_size;
|
||||
|
||||
/* kludge: ssl3_cbc_remove_padding passes padding length in rec->type */
|
||||
orig_len = rec->length+md_size+((unsigned int)rec->type>>8);
|
||||
rec->type &= 0xff;
|
||||
|
||||
if (!send &&
|
||||
EVP_CIPHER_CTX_mode(ssl->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
|
||||
ssl3_cbc_record_digest_supported(hash))
|
||||
@@ -786,7 +790,7 @@ int n_ssl3_mac(SSL *ssl, unsigned char *md, int send)
|
||||
hash,
|
||||
md, &md_size,
|
||||
header, rec->input,
|
||||
rec->length + md_size, rec->orig_len,
|
||||
rec->length + md_size, orig_len,
|
||||
mac_sec, md_size,
|
||||
1 /* is SSLv3 */);
|
||||
}
|
||||
|
Reference in New Issue
Block a user