in src/ngx_tcp_lurk_module.c [295:365]
int ngx_tcp_lurk_tls1_prf_v2(long digest_mask,
const void *seed1, size_t seed1_len,
const void *seed2, size_t seed2_len,
const void *seed3, size_t seed3_len,
const void *seed4, size_t seed4_len,
const void *seed5, size_t seed5_len,
const unsigned char *sec, size_t slen,
unsigned char *out, size_t olen, ngx_log_t *log);
ngx_int_t ngx_tcp_lurk_prf(unsigned char *out, uint16_t version,
long master_prf, const void *client_random, int client_random_len,
const void *server_random, int server_random_len,
const unsigned char *p, int len, ngx_log_t *log);
ngx_int_t ngx_tcp_lurk_prf_ems(unsigned char *out, uint16_t version,
long master_prf, const void *client_random, int client_random_len,
const void *server_random, int server_random_len,
const void *session_hash, int hashlen,
const unsigned char *p, int len, ngx_log_t *log);
static ngx_int_t ngx_tcp_lurk_init_module(ngx_cycle_t *cf);
static void ngx_tcp_lurk_init_session(ngx_tcp_session_t *s);
static char *ngx_tcp_lurk(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
static void ngx_tcp_lurk_read_handler(ngx_event_t *ev);
static void ngx_tcp_lurk_write_handler(ngx_event_t *ev);
static void ngx_tcp_lurk_read(ngx_tcp_session_t *s);
static void ngx_tcp_lurk_write(ngx_tcp_session_t *s);
static void *ngx_tcp_lurk_create_srv_conf(ngx_conf_t *cf);
static char *ngx_tcp_lurk_merge_srv_conf(ngx_conf_t *cf, void *parent,
void *child);
static ngx_int_t ngx_tcp_lurk_parse_request(ngx_tcp_session_t *s);
static ngx_int_t ngx_tcp_lurk_process_request(ngx_tcp_session_t *s);
static void ngx_tcp_lurk_keepalive_handler(ngx_event_t *rev);
static void ngx_tcp_lurk_finalize_session(ngx_tcp_session_t *s,
ngx_int_t keepalive);
static void ngx_tcp_lurk_limit_keyid_handler(ngx_event_t *ev);
static void *ngx_tcp_lurk_create_main_conf(ngx_conf_t *cf);
static char *ngx_tcp_lurk_init_main_conf(ngx_conf_t *cf, void *conf);
static ngx_int_t ngx_tcp_lurk_limit_keyid(ngx_tcp_session_t *s);
static void ngx_tcp_lurk_get_common_name(SSL *ssl, char *cn, size_t size);
static ngx_int_t ngx_ssl_lurk_encrypt(ngx_str_t *key, ngx_str_t *in,
ngx_str_t *out);
static ngx_int_t ngx_ssl_lurk_decrypt(ngx_str_t *key, ngx_str_t *in,
ngx_str_t *out);
static ngx_int_t ngx_tcp_lurk_dispatch(ngx_tcp_session_t *s);
static u_char *ngx_tcp_lurk_get_start_time(ngx_tcp_session_t *s, u_char *buf,
ngx_tcp_log_op_t *op);
static u_char *ngx_tcp_lurk_get_id(ngx_tcp_session_t *s, u_char *buf,
ngx_tcp_log_op_t *op);
static u_char *ngx_tcp_lurk_get_pkey_id_hex(ngx_tcp_session_t *s, u_char *buf,
ngx_tcp_log_op_t *op);
static u_char *ngx_tcp_lurk_get_sni(ngx_tcp_session_t *s, u_char *buf,
ngx_tcp_log_op_t *op);
static u_char *ngx_tcp_lurk_get_type(ngx_tcp_session_t *s, u_char *buf,
ngx_tcp_log_op_t *op);
static u_char *ngx_tcp_lurk_get_client(ngx_tcp_session_t *s, u_char *buf,
ngx_tcp_log_op_t *op);
static u_char *ngx_tcp_lurk_get_error(ngx_tcp_session_t *s, u_char *buf,
ngx_tcp_log_op_t *op);
void ngx_tcp_lurk_shm_free_key_node(ngx_tcp_lurk_key_node_t *key_node);
static inline int
ngx_tcp_lurk_test_cat_mask(uint8_t *mask, int cat)
{
return mask[cat / 8] & (1 << (cat % 8));
}