Fixed more eternal looping bugs in the SSL analyzer.

This commit is contained in:
Seth Hall 2011-06-30 13:42:42 -04:00
parent aebc2ea030
commit a62d1d1fe0

View file

@ -341,7 +341,9 @@ type Alert(rec: SSLRecord) = record {
# V2 Error Records (SSLv2 2.7.) # V2 Error Records (SSLv2 2.7.)
###################################################################### ######################################################################
type V2Error(rec: SSLRecord) = empty &let { type V2Error(rec: SSLRecord) = record {
data: bytestring &restofdata &transient;
} &let {
error_code : uint16 = ((rec.head3 << 8) | rec.head4); error_code : uint16 = ((rec.head3 << 8) | rec.head4);
}; };
@ -352,7 +354,9 @@ type V2Error(rec: SSLRecord) = empty &let {
# Application data should always be encrypted, so we should not # Application data should always be encrypted, so we should not
# reach this point. # reach this point.
type ApplicationData(rec: SSLRecord) = empty; type ApplicationData(rec: SSLRecord) = record {
data : bytestring &restofdata &transient;
};
###################################################################### ######################################################################
# Handshake Protocol (7.4.) # Handshake Protocol (7.4.)
@ -550,7 +554,7 @@ type ServerHelloDone(rec: SSLRecord) = empty &let {
# For now ignore details of ClientKeyExchange (most of it is # For now ignore details of ClientKeyExchange (most of it is
# encrypted anyway); just eat up message. # encrypted anyway); just eat up message.
type ClientKeyExchange(rec: SSLRecord) = record { type ClientKeyExchange(rec: SSLRecord) = record {
key : bytestring &restofdata; key : bytestring &restofdata &transient;
} &let { } &let {
state_changed : bool = state_changed : bool =
$context.connection.transition(STATE_SERVER_HELLO_DONE, $context.connection.transition(STATE_SERVER_HELLO_DONE,