Closed tintinweb closed 9 years ago
I'll give it a shot, but I doubt it will fix it, because that was one of the first fixes I tried on that code branch.
Also this will not fix the optional extensions problem.
we can also fix this by having scapy dissect our packets by implementing extract_padding on TLSRecord.
=> This is roughly what I did in PR#16, but it also deals with optional extensions and removes the dead code in do_dissect()
I'll check it out and let you know.
Oh, you're right, seems like extensions are optional to hello packets! Totally skipped that part while going through the RFC.
will close this one. please go ahead and merge #17, thanks!
@alexmgr does this fix problems with stacked records for you? if so, we can also fix this by having scapy dissect our packets by implementing extract_padding on TLSRecord.
Note that packets after the change_cipher_spec are encrypted. We do not handle this at the moment thats why the packet after change_cipher_spec looks odd. Need to implement that on a TLSRecord level to fall back to Raw or a special TLSEncrypted layer in case the payload to TLSRecord carries an invalid length.
this is what I get with python2.6 on that branch, trying to process a recorded handshake tls1_0 aes128-sha (openssl s_client/s_server):
test code:
output: