diff options
Diffstat (limited to 'src/SSL_Message.h')
| -rw-r--r-- | src/SSL_Message.h | 101 |
1 files changed, 34 insertions, 67 deletions
diff --git a/src/SSL_Message.h b/src/SSL_Message.h index 4f525c9..fbefeed 100644 --- a/src/SSL_Message.h +++ b/src/SSL_Message.h @@ -1,34 +1,19 @@ - -#ifndef H_SSL_MESSAGE_H -#define H_SSL_MESSAGE_H - -#include <stdio.h> -#include <string.h> +#pragma once #define MIN(a, b) ((a) <= (b) ? (a):(b)) -#define MAX_DATA_BUFFER 10240 - #define SSL_HEADER_LEN 5+1 //use the hand_shake first bytes -#define SSL_KEY 3 -#define SSL_TRUE 1 -#define SSL_FLASE 0 +#define SSL_KEY 3 +#define SSL_CONTINUE 2 +#define SSL_TRUE 1 +#define SSL_FLASE 0 #define RANDOM_TIME_LEN 4 #define SSL_RANDOM_SIZE 28 -/**SSL versions**/ -#define UNKNOWN_VERSION 0x0000 -#define SSLV3_VERSION 0x0300 -#define SSLV2_VERSION 0x0002 -#define TLSV1_VERSION 0x0301 -#define TLSV1_2_VERSION 0x0303 -#define TLSV1DOT1_VERSION 0x0302 -#define DTLSV1DOT0_VERSION 0xfeff -#define DTLSV1DOT0_VERSION_NOT 0x0100 #define SSL_HANDSHAKE_MSG_HDRLEN 4 #define SSL_RECORD_HDRLEN 5 @@ -49,70 +34,52 @@ //#############################################client hello #define CLIENT_HELLO_HDRLEN 4 -typedef struct _st_client_server_name_t +struct client_server_name { - short server_name_list_len; - unsigned short server_name_type; - unsigned char server_name_len; - unsigned char* server_name_data; -}__attribute__((packed))st_client_server_name_t; + short list_len; + unsigned short type; + unsigned char len; + unsigned char* data; +}__attribute__((packed)); -//#############################################server hello #define SERVER_HELLO_HDRLEN 4 -//#############################################certificate #define CERTIFICATE_HDRLEN 7 #define SSL_CERTIFICATE_HDRLEN 3 - -typedef struct _stValueString_t +struct ssl_value2string { - unsigned int uiValue; - const char *pcString; -}stValueString_t; + unsigned int value; + const char *string; +}; -typedef struct _stSerialString_t +struct ssl_serial_string { - unsigned char aucSerial[16]; - const char *pcString; -}stSerialString_t; + unsigned char serial[16]; + const char *string; +}; -typedef struct _stSSLRecordHdr_t +struct ssl_record_header { - unsigned char ucContType; - unsigned short usVersion; - unsigned short usTotalLen; + unsigned char content_type; + unsigned short version; + unsigned short total_len; +}__attribute__((packed)); -}__attribute__((packed))stSSLRecordHdr_t; - -typedef struct _stHandShakeTypeHdr_t -{ - unsigned char ucContType; -}__attribute__((packed))stHandShakeTypeHdr_t; - -typedef struct _stHSkCertificateHdr_t +struct ssl_handshake_type { - //unsigned char pacCertLen[3]; -}stHSkCertificateHdr_t; + unsigned char content_type; +}__attribute__((packed)); -typedef enum _emHelloMsgType_m +enum SSL_HANDSHAKE_TYPE { -// HELLO_REQUEST = 0, - CLIENT_HELLO = 1, - SERVER_HELLO = 2, - CERTIFICATE = 11, - // SERVER_KEY_EXCHANGE = 12, -// CERTIFICATE_REQUEST = 13, -// SERVER_HELLO_DONE = 14, -// CERTIFICATE_VERIFY = 15, -// CLIENT_KEY_EXCHANGE = 16, -// FINISHED = 20, + CLIENT_HELLO=1, + SERVER_HELLO=2, + CERTIFICATE=11, NEW_SESSION_TICKET=4, - MSG_UNKNOWN = 255, -}emHelloMsgType_m; - -UCHAR ssl_analyseStream(struct streaminfo *a_tcp, void** pme, int thread_seq, void *a_packet); + MSG_UNKNOWN=255, +}; -#endif +int ssl_parse_stream(const struct streaminfo *a_tcp, struct ssl_runtime_context *ssl_context, int thread_seq, const void *a_packet); |
