Handle reading record layer padding

This commit is contained in:
Sean Parkinson 2017-11-20 11:58:54 +10:00
parent 935f33ab54
commit 5ccf54dd1a
1 changed files with 9 additions and 3 deletions

View File

@ -11965,10 +11965,16 @@ int ProcessReply(WOLFSSL* ssl)
ssl->keys.decryptedCur = 1;
#ifdef WOLFSSL_TLS13
if (ssl->options.tls1_3) {
word16 i = ssl->buffers.inputBuffer.length -
ssl->keys.padSz;
/* Remove padding from end of plain text. */
for (--i; i > ssl->buffers.inputBuffer.idx; i--) {
if (ssl->buffers.inputBuffer.buffer[i] != 0)
break;
}
/* Get the real content type from the end of the data. */
ssl->keys.padSz++;
ssl->curRL.type = ssl->buffers.inputBuffer.buffer[
ssl->buffers.inputBuffer.length - ssl->keys.padSz];
ssl->curRL.type = ssl->buffers.inputBuffer.buffer[i];
ssl->keys.padSz = ssl->buffers.inputBuffer.length - i;
}
#endif
}