diff options
author | Xin LI <delphij@FreeBSD.org> | 2015-02-25 05:56:16 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2015-02-25 05:56:16 +0000 |
commit | 0099f6f89a1325dc504096aecbdcbddad498310e (patch) | |
tree | fb8622e587884d6798b247e77bf0a8dcc352eedd /crypto/openssl/ssl/s3_enc.c | |
parent | 11ad446ce58488a8870294bee24ea87050e96dbe (diff) |
Notes
Diffstat (limited to 'crypto/openssl/ssl/s3_enc.c')
-rw-r--r-- | crypto/openssl/ssl/s3_enc.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/crypto/openssl/ssl/s3_enc.c b/crypto/openssl/ssl/s3_enc.c index 5cd3be3254d6..89c133e681ed 100644 --- a/crypto/openssl/ssl/s3_enc.c +++ b/crypto/openssl/ssl/s3_enc.c @@ -535,7 +535,8 @@ int ssl3_enc(SSL *s, int send) /* otherwise, rec->length >= bs */ } - EVP_Cipher(ds,rec->data,rec->input,l); + if(EVP_Cipher(ds,rec->data,rec->input,l) < 1) + return -1; if (EVP_MD_CTX_md(s->read_hash) != NULL) mac_size = EVP_MD_CTX_size(s->read_hash); @@ -642,10 +643,18 @@ int ssl3_cert_verify_mac(SSL *s, int md_nid, unsigned char *p) int ssl3_final_finish_mac(SSL *s, const char *sender, int len, unsigned char *p) { - int ret; + int ret, sha1len; ret=ssl3_handshake_mac(s,NID_md5,sender,len,p); + if(ret == 0) + return 0; + p+=ret; - ret+=ssl3_handshake_mac(s,NID_sha1,sender,len,p); + + sha1len=ssl3_handshake_mac(s,NID_sha1,sender,len,p); + if(sha1len == 0) + return 0; + + ret+=sha1len; return(ret); } static int ssl3_handshake_mac(SSL *s, int md_nid, |