version 1.40, 2020/07/27 12:19:51 |
version 1.41, 2020/07/27 12:29:51 |
|
|
static int www_body(char *hostname, int s, unsigned char *context); |
static int www_body(char *hostname, int s, unsigned char *context); |
static void close_accept_socket(void); |
static void close_accept_socket(void); |
static void sv_usage(void); |
static void sv_usage(void); |
static int init_ssl_connection(SSL * s); |
static int init_ssl_connection(SSL *s); |
static void print_stats(BIO * bp, SSL_CTX * ctx); |
static void print_stats(BIO *bp, SSL_CTX *ctx); |
static int |
static int |
generate_session_id(const SSL * ssl, unsigned char *id, |
generate_session_id(const SSL *ssl, unsigned char *id, |
unsigned int *id_len); |
unsigned int *id_len); |
#ifndef OPENSSL_NO_DH |
#ifndef OPENSSL_NO_DH |
static DH *load_dh_param(const char *dhfile); |
static DH *load_dh_param(const char *dhfile); |
|
|
static char **local_argv; |
static char **local_argv; |
|
|
static int |
static int |
ssl_servername_cb(SSL * s, int *ad, void *arg) |
ssl_servername_cb(SSL *s, int *ad, void *arg) |
{ |
{ |
tlsextctx *p = (tlsextctx *) arg; |
tlsextctx *p = (tlsextctx *) arg; |
const char *servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name); |
const char *servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name); |
|
|
*/ |
*/ |
|
|
static int |
static int |
cert_status_cb(SSL * s, void *arg) |
cert_status_cb(SSL *s, void *arg) |
{ |
{ |
tlsextstatusctx *srctx = arg; |
tlsextstatusctx *srctx = arg; |
BIO *err = srctx->err; |
BIO *err = srctx->err; |
|
|
int use_ssl; |
int use_ssl; |
unsigned char *rspder = NULL; |
unsigned char *rspder = NULL; |
int rspderlen; |
int rspderlen; |
STACK_OF(OPENSSL_STRING) * aia = NULL; |
STACK_OF(OPENSSL_STRING) *aia = NULL; |
X509 *x = NULL; |
X509 *x = NULL; |
X509_STORE_CTX inctx; |
X509_STORE_CTX inctx; |
X509_OBJECT obj; |
X509_OBJECT obj; |
OCSP_REQUEST *req = NULL; |
OCSP_REQUEST *req = NULL; |
OCSP_RESPONSE *resp = NULL; |
OCSP_RESPONSE *resp = NULL; |
OCSP_CERTID *id = NULL; |
OCSP_CERTID *id = NULL; |
STACK_OF(X509_EXTENSION) * exts; |
STACK_OF(X509_EXTENSION) *exts; |
int ret = SSL_TLSEXT_ERR_NOACK; |
int ret = SSL_TLSEXT_ERR_NOACK; |
int i; |
int i; |
|
|
|
|
} |
} |
|
|
static void |
static void |
print_stats(BIO * bio, SSL_CTX * ssl_ctx) |
print_stats(BIO *bio, SSL_CTX *ssl_ctx) |
{ |
{ |
BIO_printf(bio, "%4ld items in the session cache\n", |
BIO_printf(bio, "%4ld items in the session cache\n", |
SSL_CTX_sess_number(ssl_ctx)); |
SSL_CTX_sess_number(ssl_ctx)); |
|
|
} |
} |
|
|
static int |
static int |
init_ssl_connection(SSL * con) |
init_ssl_connection(SSL *con) |
{ |
{ |
int i; |
int i; |
const char *str; |
const char *str; |
|
|
((s_server_config.www == 2) && (strncmp("GET /stats ", buf, 11) == 0))) { |
((s_server_config.www == 2) && (strncmp("GET /stats ", buf, 11) == 0))) { |
char *p; |
char *p; |
X509 *peer; |
X509 *peer; |
STACK_OF(SSL_CIPHER) * sk; |
STACK_OF(SSL_CIPHER) *sk; |
static const char *space = " "; |
static const char *space = " "; |
|
|
BIO_puts(io, "HTTP/1.0 200 ok\r\nContent-type: text/html\r\n\r\n"); |
BIO_puts(io, "HTTP/1.0 200 ok\r\nContent-type: text/html\r\n\r\n"); |
|
|
|
|
#define MAX_SESSION_ID_ATTEMPTS 10 |
#define MAX_SESSION_ID_ATTEMPTS 10 |
static int |
static int |
generate_session_id(const SSL * ssl, unsigned char *id, |
generate_session_id(const SSL *ssl, unsigned char *id, |
unsigned int *id_len) |
unsigned int *id_len) |
{ |
{ |
unsigned int count = 0; |
unsigned int count = 0; |