summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2014-06-21 14:45:22 +0000
committerjsing <>2014-06-21 14:45:22 +0000
commit2d08baf1f13e9a34323dd72dcae81cfe808c1a49 (patch)
tree9ce593c5604e2f9667d9d25a66f1c810f4806dab
parentb81c33f9ad3326037ca21055c274584d3a9c9233 (diff)
downloadopenbsd-2d08baf1f13e9a34323dd72dcae81cfe808c1a49.tar.gz
openbsd-2d08baf1f13e9a34323dd72dcae81cfe808c1a49.tar.bz2
openbsd-2d08baf1f13e9a34323dd72dcae81cfe808c1a49.zip
Pull out the sequence number selection and handle this up front. Also, the
correct record is already known, so avoid reassignment.
-rw-r--r--src/lib/libssl/src/ssl/t1_enc.c15
-rw-r--r--src/lib/libssl/t1_enc.c15
2 files changed, 12 insertions, 18 deletions
diff --git a/src/lib/libssl/src/ssl/t1_enc.c b/src/lib/libssl/src/ssl/t1_enc.c
index 6901ff54da..c4d53af556 100644
--- a/src/lib/libssl/src/ssl/t1_enc.c
+++ b/src/lib/libssl/src/ssl/t1_enc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t1_enc.c,v 1.61 2014/06/21 14:06:36 jsing Exp $ */ 1/* $OpenBSD: t1_enc.c,v 1.62 2014/06/21 14:45:22 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 *
@@ -775,24 +775,25 @@ tls1_enc(SSL *s, int send)
775 const EVP_CIPHER *enc; 775 const EVP_CIPHER *enc;
776 EVP_CIPHER_CTX *ds; 776 EVP_CIPHER_CTX *ds;
777 SSL3_RECORD *rec; 777 SSL3_RECORD *rec;
778 unsigned char *seq;
778 unsigned long l; 779 unsigned long l;
779 int bs, i, j, k, pad = 0, ret, mac_size = 0; 780 int bs, i, j, k, pad = 0, ret, mac_size = 0;
780 781
781 if (send) { 782 if (send) {
782 aead = s->aead_write_ctx; 783 aead = s->aead_write_ctx;
783 rec = &s->s3->wrec; 784 rec = &s->s3->wrec;
785 seq = s->s3->write_sequence;
784 } else { 786 } else {
785 aead = s->aead_read_ctx; 787 aead = s->aead_read_ctx;
786 rec = &s->s3->rrec; 788 rec = &s->s3->rrec;
789 seq = s->s3->read_sequence;
787 } 790 }
788 791
789 if (aead) { 792 if (aead) {
790 unsigned char ad[13], *seq, *in, *out, nonce[16]; 793 unsigned char ad[13], *in, *out, nonce[16];
791 unsigned nonce_used; 794 unsigned nonce_used;
792 ssize_t n; 795 ssize_t n;
793 796
794 seq = send ? s->s3->write_sequence : s->s3->read_sequence;
795
796 if (SSL_IS_DTLS(s)) { 797 if (SSL_IS_DTLS(s)) {
797 unsigned char dtlsseq[9], *p = dtlsseq; 798 unsigned char dtlsseq[9], *p = dtlsseq;
798 799
@@ -903,7 +904,6 @@ tls1_enc(SSL *s, int send)
903 OPENSSL_assert(n >= 0); 904 OPENSSL_assert(n >= 0);
904 } 905 }
905 ds = s->enc_write_ctx; 906 ds = s->enc_write_ctx;
906 rec = &(s->s3->wrec);
907 if (s->enc_write_ctx == NULL) 907 if (s->enc_write_ctx == NULL)
908 enc = NULL; 908 enc = NULL;
909 else { 909 else {
@@ -930,7 +930,6 @@ tls1_enc(SSL *s, int send)
930 OPENSSL_assert(n >= 0); 930 OPENSSL_assert(n >= 0);
931 } 931 }
932 ds = s->enc_read_ctx; 932 ds = s->enc_read_ctx;
933 rec = &(s->s3->rrec);
934 if (s->enc_read_ctx == NULL) 933 if (s->enc_read_ctx == NULL)
935 enc = NULL; 934 enc = NULL;
936 else 935 else
@@ -946,9 +945,7 @@ tls1_enc(SSL *s, int send)
946 bs = EVP_CIPHER_block_size(ds->cipher); 945 bs = EVP_CIPHER_block_size(ds->cipher);
947 946
948 if (EVP_CIPHER_flags(ds->cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) { 947 if (EVP_CIPHER_flags(ds->cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) {
949 unsigned char buf[13], *seq; 948 unsigned char buf[13];
950
951 seq = send ? s->s3->write_sequence : s->s3->read_sequence;
952 949
953 if (SSL_IS_DTLS(s)) { 950 if (SSL_IS_DTLS(s)) {
954 unsigned char dtlsseq[9], *p = dtlsseq; 951 unsigned char dtlsseq[9], *p = dtlsseq;
diff --git a/src/lib/libssl/t1_enc.c b/src/lib/libssl/t1_enc.c
index 6901ff54da..c4d53af556 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.61 2014/06/21 14:06:36 jsing Exp $ */ 1/* $OpenBSD: t1_enc.c,v 1.62 2014/06/21 14:45:22 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 *
@@ -775,24 +775,25 @@ tls1_enc(SSL *s, int send)
775 const EVP_CIPHER *enc; 775 const EVP_CIPHER *enc;
776 EVP_CIPHER_CTX *ds; 776 EVP_CIPHER_CTX *ds;
777 SSL3_RECORD *rec; 777 SSL3_RECORD *rec;
778 unsigned char *seq;
778 unsigned long l; 779 unsigned long l;
779 int bs, i, j, k, pad = 0, ret, mac_size = 0; 780 int bs, i, j, k, pad = 0, ret, mac_size = 0;
780 781
781 if (send) { 782 if (send) {
782 aead = s->aead_write_ctx; 783 aead = s->aead_write_ctx;
783 rec = &s->s3->wrec; 784 rec = &s->s3->wrec;
785 seq = s->s3->write_sequence;
784 } else { 786 } else {
785 aead = s->aead_read_ctx; 787 aead = s->aead_read_ctx;
786 rec = &s->s3->rrec; 788 rec = &s->s3->rrec;
789 seq = s->s3->read_sequence;
787 } 790 }
788 791
789 if (aead) { 792 if (aead) {
790 unsigned char ad[13], *seq, *in, *out, nonce[16]; 793 unsigned char ad[13], *in, *out, nonce[16];
791 unsigned nonce_used; 794 unsigned nonce_used;
792 ssize_t n; 795 ssize_t n;
793 796
794 seq = send ? s->s3->write_sequence : s->s3->read_sequence;
795
796 if (SSL_IS_DTLS(s)) { 797 if (SSL_IS_DTLS(s)) {
797 unsigned char dtlsseq[9], *p = dtlsseq; 798 unsigned char dtlsseq[9], *p = dtlsseq;
798 799
@@ -903,7 +904,6 @@ tls1_enc(SSL *s, int send)
903 OPENSSL_assert(n >= 0); 904 OPENSSL_assert(n >= 0);
904 } 905 }
905 ds = s->enc_write_ctx; 906 ds = s->enc_write_ctx;
906 rec = &(s->s3->wrec);
907 if (s->enc_write_ctx == NULL) 907 if (s->enc_write_ctx == NULL)
908 enc = NULL; 908 enc = NULL;
909 else { 909 else {
@@ -930,7 +930,6 @@ tls1_enc(SSL *s, int send)
930 OPENSSL_assert(n >= 0); 930 OPENSSL_assert(n >= 0);
931 } 931 }
932 ds = s->enc_read_ctx; 932 ds = s->enc_read_ctx;
933 rec = &(s->s3->rrec);
934 if (s->enc_read_ctx == NULL) 933 if (s->enc_read_ctx == NULL)
935 enc = NULL; 934 enc = NULL;
936 else 935 else
@@ -946,9 +945,7 @@ tls1_enc(SSL *s, int send)
946 bs = EVP_CIPHER_block_size(ds->cipher); 945 bs = EVP_CIPHER_block_size(ds->cipher);
947 946
948 if (EVP_CIPHER_flags(ds->cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) { 947 if (EVP_CIPHER_flags(ds->cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) {
949 unsigned char buf[13], *seq; 948 unsigned char buf[13];
950
951 seq = send ? s->s3->write_sequence : s->s3->read_sequence;
952 949
953 if (SSL_IS_DTLS(s)) { 950 if (SSL_IS_DTLS(s)) {
954 unsigned char dtlsseq[9], *p = dtlsseq; 951 unsigned char dtlsseq[9], *p = dtlsseq;