forked from wolfSSL/wolfssl
Merge pull request #251 from ejohnstown/dtls-handshake
fix a sequence number issue with DTLS epoch 0 messages earlier in the…
This commit is contained in:
@@ -2373,10 +2373,13 @@ int DtlsPoolSend(WOLFSSL* ssl)
|
|||||||
for (i = 0, buf = pool->buf; i < pool->used; i++, buf++) {
|
for (i = 0, buf = pool->buf; i < pool->used; i++, buf++) {
|
||||||
if (pool->epoch[i] == 0) {
|
if (pool->epoch[i] == 0) {
|
||||||
DtlsRecordLayerHeader* dtls;
|
DtlsRecordLayerHeader* dtls;
|
||||||
|
word32* seqNumber;
|
||||||
|
|
||||||
dtls = (DtlsRecordLayerHeader*)buf->buffer;
|
dtls = (DtlsRecordLayerHeader*)buf->buffer;
|
||||||
c32to48(ssl->keys.dtls_prev_sequence_number++,
|
seqNumber = (ssl->keys.dtls_epoch == 0) ?
|
||||||
dtls->sequence_number);
|
&ssl->keys.dtls_sequence_number :
|
||||||
|
&ssl->keys.dtls_prev_sequence_number;
|
||||||
|
c32to48((*seqNumber)++, dtls->sequence_number);
|
||||||
if ((ret = CheckAvailableSize(ssl, buf->length)) != 0)
|
if ((ret = CheckAvailableSize(ssl, buf->length)) != 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user