|
|
@ -46,6 +46,8 @@ struct tls_client_hello { |
|
|
|
short ext_len; |
|
|
|
} __attribute__((packed, aligned(1))); |
|
|
|
|
|
|
|
STATIC_ASSERT(sizeof(struct tls_client_hello) == 138, tls_client_hello); |
|
|
|
|
|
|
|
struct tls_ext_server_name { |
|
|
|
short ext_type; |
|
|
|
short ext_len; |
|
|
@ -55,12 +57,16 @@ struct tls_ext_server_name { |
|
|
|
// char server_name[server_name_len]; |
|
|
|
} __attribute__((packed, aligned(1))); |
|
|
|
|
|
|
|
STATIC_ASSERT(sizeof(struct tls_ext_server_name) == 9, tls_ext_server_name); |
|
|
|
|
|
|
|
struct tls_ext_session_ticket { |
|
|
|
short session_ticket_type; |
|
|
|
short session_ticket_ext_len; |
|
|
|
// char session_ticket[session_ticket_ext_len]; |
|
|
|
} __attribute__((packed, aligned(1))); |
|
|
|
|
|
|
|
STATIC_ASSERT(sizeof(struct tls_ext_session_ticket) == 4, tls_ext_session_ticket); |
|
|
|
|
|
|
|
struct tls_ext_others { |
|
|
|
short ec_point_formats_ext_type; |
|
|
|
short ec_point_formats_ext_len; |
|
|
@ -84,6 +90,8 @@ struct tls_ext_others { |
|
|
|
short extended_master_secret_ext_len; |
|
|
|
} __attribute__((packed, aligned(1))); |
|
|
|
|
|
|
|
STATIC_ASSERT(sizeof(struct tls_ext_others) == 66, tls_ext_others); |
|
|
|
|
|
|
|
struct tls_server_hello { |
|
|
|
char content_type; |
|
|
|
short version; |
|
|
@ -115,6 +123,8 @@ struct tls_server_hello { |
|
|
|
char ec_point_formats[1]; |
|
|
|
} __attribute__((packed, aligned(1))); |
|
|
|
|
|
|
|
STATIC_ASSERT(sizeof(struct tls_server_hello) == 96, tls_server_hello); |
|
|
|
|
|
|
|
struct tls_change_cipher_spec { |
|
|
|
char content_type; |
|
|
|
short version; |
|
|
@ -122,6 +132,8 @@ struct tls_change_cipher_spec { |
|
|
|
char msg; |
|
|
|
} __attribute__((packed, aligned(1))); |
|
|
|
|
|
|
|
STATIC_ASSERT(sizeof(struct tls_change_cipher_spec) == 6, tls_change_cipher_spec); |
|
|
|
|
|
|
|
struct tls_encrypted_handshake { |
|
|
|
char content_type; |
|
|
|
short version; |
|
|
@ -129,6 +141,8 @@ struct tls_encrypted_handshake { |
|
|
|
// char msg[len]; |
|
|
|
} __attribute__((packed, aligned(1))); |
|
|
|
|
|
|
|
STATIC_ASSERT(sizeof(struct tls_encrypted_handshake) == 5, tls_encrypted_handshake); |
|
|
|
|
|
|
|
typedef struct frame { |
|
|
|
short idx; |
|
|
|
short len; |
|
|
|