I'm currently looking at an encrypted
Client Finished message in Wireshark from a TLS session. The cipher suite that was agreed on in previous messages was
By my understanding, the encrypted message should have a Handshake Protocol header which is made up of the handshake type and the length. This should be 4 bytes in total. There should then be 12 bytes of
verify_data, followed by a 20 byte MAC (SHA-1 digest size). This takes us to 36 bytes. Now according to RFC 2246 section 184.108.40.206, it should then be padded out so that the length in total is a multiple of the block length (in this case 16 for AES-256).
That means it should have 12 bytes of padding, where each padding value has a value of 12 (0x0C), followed by a padding length field which will also have a value of 12. What I don't understand is, if you add all that up, you get an encrypted length of 49 bytes, but the wireshark packet has 48 bytes.
Is anybody able to explain the difference?