diff options
Diffstat (limited to 'src/lib/libssl/t1_enc.c')
-rw-r--r-- | src/lib/libssl/t1_enc.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/lib/libssl/t1_enc.c b/src/lib/libssl/t1_enc.c index 87860feda9..9d47bde6c6 100644 --- a/src/lib/libssl/t1_enc.c +++ b/src/lib/libssl/t1_enc.c | |||
@@ -639,14 +639,11 @@ tls1_enc(SSL *s, int send) | |||
639 | if (s->enc_write_ctx == NULL) | 639 | if (s->enc_write_ctx == NULL) |
640 | enc = NULL; | 640 | enc = NULL; |
641 | else { | 641 | else { |
642 | int ivlen; | 642 | int ivlen = 0; |
643 | enc = EVP_CIPHER_CTX_cipher(s->enc_write_ctx); | 643 | enc = EVP_CIPHER_CTX_cipher(s->enc_write_ctx); |
644 | /* For TLSv1.1 and later explicit IV */ | 644 | if (SSL_USE_EXPLICIT_IV(s) && |
645 | if (s->version >= TLS1_1_VERSION && | ||
646 | EVP_CIPHER_mode(enc) == EVP_CIPH_CBC_MODE) | 645 | EVP_CIPHER_mode(enc) == EVP_CIPH_CBC_MODE) |
647 | ivlen = EVP_CIPHER_iv_length(enc); | 646 | ivlen = EVP_CIPHER_iv_length(enc); |
648 | else | ||
649 | ivlen = 0; | ||
650 | if (ivlen > 1) { | 647 | if (ivlen > 1) { |
651 | if (rec->data != rec->input) | 648 | if (rec->data != rec->input) |
652 | /* we can't write into the input stream: | 649 | /* we can't write into the input stream: |
@@ -686,7 +683,7 @@ tls1_enc(SSL *s, int send) | |||
686 | 683 | ||
687 | seq = send ? s->s3->write_sequence : s->s3->read_sequence; | 684 | seq = send ? s->s3->write_sequence : s->s3->read_sequence; |
688 | 685 | ||
689 | if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) { | 686 | if (SSL_IS_DTLS(s)) { |
690 | unsigned char dtlsseq[9], *p = dtlsseq; | 687 | unsigned char dtlsseq[9], *p = dtlsseq; |
691 | 688 | ||
692 | s2n(send ? s->d1->w_epoch : s->d1->r_epoch, p); | 689 | s2n(send ? s->d1->w_epoch : s->d1->r_epoch, p); |
@@ -876,7 +873,7 @@ tls1_mac(SSL *ssl, unsigned char *md, int send) | |||
876 | mac_ctx = &hmac; | 873 | mac_ctx = &hmac; |
877 | } | 874 | } |
878 | 875 | ||
879 | if (ssl->version == DTLS1_VERSION || ssl->version == DTLS1_BAD_VER) { | 876 | if (SSL_IS_DTLS(ssl)) { |
880 | unsigned char dtlsseq[8], *p = dtlsseq; | 877 | unsigned char dtlsseq[8], *p = dtlsseq; |
881 | 878 | ||
882 | s2n(send ? ssl->d1->w_epoch : ssl->d1->r_epoch, p); | 879 | s2n(send ? ssl->d1->w_epoch : ssl->d1->r_epoch, p); |
@@ -919,7 +916,7 @@ tls1_mac(SSL *ssl, unsigned char *md, int send) | |||
919 | if (!stream_mac) | 916 | if (!stream_mac) |
920 | EVP_MD_CTX_cleanup(&hmac); | 917 | EVP_MD_CTX_cleanup(&hmac); |
921 | 918 | ||
922 | if (ssl->version != DTLS1_VERSION && ssl->version != DTLS1_BAD_VER) { | 919 | if (!SSL_IS_DTLS(ssl)) { |
923 | for (i = 7; i >= 0; i--) { | 920 | for (i = 7; i >= 0; i--) { |
924 | ++seq[i]; | 921 | ++seq[i]; |
925 | if (seq[i] != 0) | 922 | if (seq[i] != 0) |