EVP_CIPHER_CTX *ds;
size_t reclen[SSL_MAX_PIPELINES];
unsigned char buf[SSL_MAX_PIPELINES][EVP_AEAD_TLS1_AAD_LEN];
- int i, pad = 0, tmpr, provided;
+ int pad = 0, tmpr, provided;
size_t bs, ctr, padnum, loop;
unsigned char padval;
const EVP_CIPHER *enc;
memcpy(buf[ctr], dtlsseq, 8);
} else {
memcpy(buf[ctr], seq, 8);
- for (i = 7; i >= 0; i--) { /* increment */
- ++seq[i];
- if (seq[i] != 0)
- break;
+ if (!tls_increment_sequence_ctr(rl)) {
+ /* RLAYERfatal already called */
+ return 0;
}
}
}
if (!rl->isdtls && rl->tlstree) {
- unsigned char *seq;
int decrement_seq = 0;
/*
if (sending && !rl->use_etm)
decrement_seq = 1;
- seq = rl->sequence;
- if (EVP_CIPHER_CTX_ctrl(ds, EVP_CTRL_TLSTREE, decrement_seq, seq) <= 0) {
+ if (EVP_CIPHER_CTX_ctrl(ds, EVP_CTRL_TLSTREE, decrement_seq,
+ rl->sequence) <= 0) {
+
RLAYERfatal(rl, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
return 0;
}
unsigned char *seq = rl->sequence;
EVP_MD_CTX *hash;
size_t md_size;
- int i;
EVP_MD_CTX *hmac = NULL, *mac_ctx;
unsigned char header[13];
int t;
BIO_dump_indent(trc_out, rec->data, rec->length, 4);
} OSSL_TRACE_END(TLS);
- if (!rl->isdtls) {
- for (i = 7; i >= 0; i--) {
- ++seq[i];
- if (seq[i] != 0)
- break;
- }
+ if (!rl->isdtls && !tls_increment_sequence_ctr(rl)) {
+ /* RLAYERfatal already called */
+ goto end;
}
+
OSSL_TRACE_BEGIN(TLS) {
BIO_printf(trc_out, "md:\n");
BIO_dump_indent(trc_out, md, md_size, 4);