translation_unit
comment "/*\n * Copyright (C) Igor Sysoev\n * Copyright (C) Nginx, Inc."...
preproc_include
#include "#include"
system_lib_string "<ngx_config.h>"
preproc_include
#include "#include"
system_lib_string "<ngx_core.h>"
preproc_include
#include "#include"
system_lib_string "<ngx_event.h>"
preproc_def
#define "#define"
identifier "NGX_SSL_PASSWORD_BUFFER_SIZE"
preproc_arg "4096"
type_definition
typedef "typedef"
struct_specifier
struct "struct"
field_declaration_list
{ "{"
field_declaration
type_identifier "ngx_uint_t"
field_identifier "engine"
; ";"
comment "/* unsigned engine:1; */"
} "}"
type_identifier "ngx_openssl_conf_t"
; ";"
declaration (+44 nodes collapsed)
declaration (+37 nodes collapsed)
declaration (+29 nodes collapsed)
declaration
storage_class_specifier
static "static"
primitive_type "int"
function_declarator
identifier "ngx_ssl_verify_callback"
parameter_list
( "("
parameter_declaration
primitive_type "int"
identifier "ok"
, ","
parameter_declaration
type_identifier "X509_STORE_CTX"
pointer_declarator
* "*"
identifier "x509_store"
) ")"
; ";"
declaration (+25 nodes collapsed)
declaration
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "ngx_ssl_passwords_cleanup"
parameter_list
( "("
parameter_declaration
primitive_type "void"
pointer_declarator
* "*"
identifier "data"
) ")"
; ";"
declaration (+21 nodes collapsed)
preproc_ifdef
#ifdef "#ifdef"
identifier "SSL_READ_EARLY_DATA_SUCCESS"
declaration
storage_class_specifier
static "static"
type_identifier "ngx_int_t"
function_declarator
identifier "ngx_ssl_try_early_data"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_connection_t"
pointer_declarator
* "*"
identifier "c"
) ")"
; ";"
#endif "#endif"
preproc_if (+23 nodes collapsed)
declaration
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "ngx_ssl_handshake_handler"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_event_t"
pointer_declarator
* "*"
identifier "ev"
) ")"
; ";"
preproc_ifdef (+29 nodes collapsed)
declaration
storage_class_specifier
static "static"
type_identifier "ngx_int_t"
function_declarator
identifier "ngx_ssl_handle_recv"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_connection_t"
pointer_declarator
* "*"
identifier "c"
, ","
parameter_declaration
primitive_type "int"
identifier "n"
) ")"
; ";"
declaration
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "ngx_ssl_write_handler"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_event_t"
pointer_declarator
* "*"
identifier "wev"
) ")"
; ";"
preproc_ifdef (+29 nodes collapsed)
declaration
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "ngx_ssl_read_handler"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_event_t"
pointer_declarator
* "*"
identifier "rev"
) ")"
; ";"
declaration
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "ngx_ssl_shutdown_handler"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_event_t"
pointer_declarator
* "*"
identifier "ev"
) ")"
; ";"
declaration (+29 nodes collapsed)
declaration
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "ngx_ssl_clear_error"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_log_t"
pointer_declarator
* "*"
identifier "log"
) ")"
; ";"
declaration (+27 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+43 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+25 nodes collapsed)
declaration (+27 nodes collapsed)
preproc_ifdef (+66 nodes collapsed)
preproc_ifdef (+25 nodes collapsed)
ERROR
storage_class_specifier
static "static"
type_identifier "time_t"
identifier "ngx_ssl_parse_time"
( "("
preproc_if
#if "#if"
binary_expression
identifier "OPENSSL_VERSION_NUMBER"
> ">"
number_literal "0x10100000L"
"\n"
ERROR
type_qualifier
const "const"
#endif "#endif"
declaration
type_identifier "ASN1_TIME"
pointer_declarator
* "*"
identifier "asn1time"
, ","
ERROR
identifier "ngx_log_t"
pointer_declarator
* "*"
identifier "log"
ERROR
) ")"
; ";"
declaration
storage_class_specifier
static "static"
primitive_type "void"
pointer_declarator
* "*"
function_declarator
identifier "ngx_openssl_create_conf"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_cycle_t"
pointer_declarator
* "*"
identifier "cycle"
) ")"
; ";"
declaration (+29 nodes collapsed)
declaration
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "ngx_openssl_exit"
parameter_list
( "("
parameter_declaration
type_identifier "ngx_cycle_t"
pointer_declarator
* "*"
identifier "cycle"
) ")"
; ";"
declaration (+45 nodes collapsed)
declaration (+25 nodes collapsed)
declaration (+50 nodes collapsed)
declaration
primitive_type "int"
identifier "ngx_ssl_connection_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_server_conf_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_session_cache_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_session_ticket_keys_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_ocsp_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_certificate_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_next_certificate_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_certificate_name_index"
; ";"
declaration
primitive_type "int"
identifier "ngx_ssl_stapling_index"
; ";"
function_definition (+680 nodes collapsed)
function_definition (+792 nodes collapsed)
function_definition (+139 nodes collapsed)
function_definition (+775 nodes collapsed)
function_definition (+465 nodes collapsed)
function_definition (+621 nodes collapsed)
function_definition (+769 nodes collapsed)
function_definition (+165 nodes collapsed)
function_definition (+151 nodes collapsed)
function_definition (+277 nodes collapsed)
function_definition (+194 nodes collapsed)
function_definition (+272 nodes collapsed)
function_definition (+419 nodes collapsed)
function_definition (+257 nodes collapsed)
function_definition (+104 nodes collapsed)
function_definition (+808 nodes collapsed)
function_definition (+333 nodes collapsed)
function_definition (+92 nodes collapsed)
function_definition
type_identifier "ngx_int_t"
function_declarator (+22 nodes collapsed)
compound_statement
{ "{"
declaration
type_identifier "DH"
pointer_declarator
* "*"
identifier "dh"
; ";"
declaration
type_identifier "BIO"
pointer_declarator
* "*"
identifier "bio"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
field_expression
identifier "file"
-> "->"
field_identifier "len"
== "=="
number_literal "0"
) ")"
compound_statement
{ "{"
return_statement
return "return"
identifier "NGX_OK"
; ";"
} "}"
if_statement (+28 nodes collapsed)
expression_statement (+26 nodes collapsed)
if_statement (+46 nodes collapsed)
expression_statement
assignment_expression
identifier "dh"
= "="
call_expression
identifier "PEM_read_bio_DHparams"
argument_list
( "("
identifier "bio"
, ","
null
NULL "NULL"
, ","
null
NULL "NULL"
, ","
null
NULL "NULL"
) ")"
; ";"
if_statement (+54 nodes collapsed)
expression_statement
call_expression
identifier "SSL_CTX_set_tmp_dh"
argument_list
( "("
field_expression
identifier "ssl"
-> "->"
field_identifier "ctx"
, ","
identifier "dh"
) ")"
; ";"
expression_statement
call_expression
identifier "DH_free"
argument_list
( "("
identifier "dh"
) ")"
; ";"
expression_statement
call_expression
identifier "BIO_free"
argument_list
( "("
identifier "bio"
) ")"
; ";"
return_statement
return "return"
identifier "NGX_OK"
; ";"
} "}"
function_definition (+392 nodes collapsed)
function_definition (+112 nodes collapsed)
function_definition (+504 nodes collapsed)
function_definition (+73 nodes collapsed)
function_definition (+98 nodes collapsed)
function_definition (+367 nodes collapsed)
function_definition (+75 nodes collapsed)
function_definition (+57 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+838 nodes collapsed)
preproc_ifdef (+792 nodes collapsed)
preproc_if (+369 nodes collapsed)
function_definition (+120 nodes collapsed)
function_definition (+316 nodes collapsed)
function_definition (+678 nodes collapsed)
preproc_ifdef (+623 nodes collapsed)
function_definition (+652 nodes collapsed)
function_definition (+69 nodes collapsed)
comment "/*\n * OpenSSL has no SSL_writev() so we copy several bufs in"...
function_definition (+1027 nodes collapsed)
function_definition (+652 nodes collapsed)
preproc_ifdef (+696 nodes collapsed)
function_definition (+69 nodes collapsed)
function_definition (+89 nodes collapsed)
function_definition (+694 nodes collapsed)
function_definition (+117 nodes collapsed)
function_definition (+761 nodes collapsed)
function_definition (+54 nodes collapsed)
function_definition (+412 nodes collapsed)
function_definition (+345 nodes collapsed)
function_definition (+763 nodes collapsed)
function_definition (+304 nodes collapsed)
comment "/*\n * The length of the session id is 16 bytes for SSLv2 ses"...
function_definition (+791 nodes collapsed)
function_definition (+633 nodes collapsed)
function_definition (+41 nodes collapsed)
function_definition (+468 nodes collapsed)
function_definition (+247 nodes collapsed)
function_definition (+276 nodes collapsed)
preproc_ifdef (+2055 nodes collapsed)
function_definition (+97 nodes collapsed)
function_definition (+669 nodes collapsed)
preproc_ifdef (+256 nodes collapsed)
function_definition (+58 nodes collapsed)
function_definition (+58 nodes collapsed)
function_definition (+598 nodes collapsed)
function_definition (+425 nodes collapsed)
function_definition (+180 nodes collapsed)
function_definition (+82 nodes collapsed)
function_definition (+120 nodes collapsed)
function_definition (+159 nodes collapsed)
function_definition (+303 nodes collapsed)
function_definition (+295 nodes collapsed)
function_definition (+198 nodes collapsed)
function_definition (+345 nodes collapsed)
function_definition (+345 nodes collapsed)
function_definition (+307 nodes collapsed)
function_definition (+307 nodes collapsed)
function_definition (+268 nodes collapsed)
function_definition (+236 nodes collapsed)
function_definition (+273 nodes collapsed)
function_definition (+293 nodes collapsed)
function_definition (+293 nodes collapsed)
function_definition (+308 nodes collapsed)
ERROR
storage_class_specifier
static "static"
type_identifier "time_t"
identifier "ngx_ssl_parse_time"
( "("
preproc_if
#if "#if"
binary_expression
identifier "OPENSSL_VERSION_NUMBER"
> ">"
number_literal "0x10100000L"
"\n"
ERROR
type_qualifier
const "const"
#endif "#endif"
declaration
type_identifier "ASN1_TIME"
pointer_declarator
* "*"
identifier "asn1time"
, ","
ERROR
identifier "ngx_log_t"
pointer_declarator
* "*"
identifier "log"
) ")"
{ "{"
identifier "BIO"
pointer_declarator
* "*"
identifier "bio"
; ";"
declaration
primitive_type "char"
pointer_declarator
* "*"
identifier "value"
; ";"
declaration
primitive_type "size_t"
identifier "len"
; ";"
declaration
type_identifier "time_t"
identifier "time"
; ";"
comment "/*\n * OpenSSL doesn't provide a way to convert ASN1_TIME"...
expression_statement
assignment_expression
identifier "bio"
= "="
call_expression
identifier "BIO_new"
argument_list
( "("
call_expression
identifier "BIO_s_mem"
argument_list
( "("
) ")"
) ")"
; ";"
if_statement (+34 nodes collapsed)
comment "/* fake weekday prepended to match C asctime() format */"
expression_statement (+26 nodes collapsed)
expression_statement
call_expression
identifier "ASN1_TIME_print"
argument_list
( "("
identifier "bio"
, ","
identifier "asn1time"
) ")"
; ";"
expression_statement
assignment_expression
identifier "len"
= "="
call_expression
identifier "BIO_get_mem_data"
argument_list
( "("
identifier "bio"
, ","
pointer_expression
& "&"
identifier "value"
) ")"
; ";"
expression_statement
assignment_expression
identifier "time"
= "="
call_expression
identifier "ngx_parse_http_time"
argument_list
( "("
cast_expression
( "("
type_descriptor
type_identifier "u_char"
abstract_pointer_declarator
* "*"
) ")"
identifier "value"
, ","
identifier "len"
) ")"
; ";"
expression_statement
call_expression
identifier "BIO_free"
argument_list
( "("
identifier "bio"
) ")"
; ";"
return_statement
return "return"
identifier "time"
; ";"
ERROR
} "}"
function_definition (+69 nodes collapsed)
function_definition (+254 nodes collapsed)
function_definition (+43 nodes collapsed)