103 switch (
parms->type) {
127 *
parms->data =
"PeerExtList";
202 else if (
strcEQ(
var,
"HTTP_PROXY_CONNECTION"))
219 else if (
strcEQ(
var,
"REQUEST_FILENAME"))
303#define MKTIMESTR(format, tmfield) \
304 apr_time_exp_lt(&tm, apr_time_now()); \
305 result = apr_psprintf(p, format, tm.tmfield); \
328 "%02d%02d%02d%02d%02d%02d%02d", (
tm.
tm_year / 100) + 19,
370#ifdef OPENSSL_NO_SSL_INTERN
390 else if (ssl !=
NULL && strlen(
var) > 18 &&
strcEQn(
var,
"CLIENT_CERT_CHAIN_", 18)) {
394 else if (ssl !=
NULL &&
strcEQ(
var,
"CLIENT_CERT_RFC4523_CEA")) {
425#ifdef SSL_get_secure_renegotiation_support
505 else if (*
var ==
'I')
515 else if (*
var ==
'I')
527#if MODSSL_USE_OPENSSL_PRE_1_1_API
539#if OPENSSL_VERSION_NUMBER < 0x10100000L
596 if (ptr && ptr >
var &&
strcmp(ptr + 1,
"RAW") == 0) {
603 if (ptr !=
NULL &&
strspn(ptr + 1,
"0123456789") == strlen(ptr + 1)) {
655 onf =
"id-on-dnsSRV";
686#define DIGIT2NUM(x) (((x)[0] - '0') * 10 + (x)[1] - '0')
780 ", issuer rdnSequence:\"",
887 else if (
strEQ(
var,
"LIBRARY_INTERFACE")) {
982 for (
i = 0;
i < entries->
nelts;
i++) {
1031 const unsigned char *
pp =
str->data;
1083 for (j = 0; j <
count; j++) {
1104 "Found an extension '%s', but failed to "
1111 if (array->
nelts == 0)
1127#ifndef OPENSSL_NO_COMP
1131#ifdef OPENSSL_NO_SSL_INTERN
1165#include "../../modules/loggers/mod_log_config.h"
1201 else if (
strEQ(
a,
"cipher"))
1203 else if (
strEQ(
a,
"subjectdn") ||
strEQ(
a,
"clientcert"))
1207 else if (
strEQ(
a,
"errcode"))
1209 else if (
strEQ(
a,
"errstr"))
#define AP_EXPR_FUNC_LIST
#define AP_EXPR_FUNC_STRING
#define AP_SERVER_BASEREVISION
#define ap_http_scheme(r)
const char * ap_get_server_banner(void)
apr_port_t ap_get_server_port(const request_rec *r)
const char * ap_document_root(request_rec *r)
const char * ap_get_remote_logname(request_rec *r)
const char * ap_get_server_name_for_url(request_rec *r)
const unsigned char * buf
#define MODULE_MAGIC_NUMBER_MAJOR
void ap_hook_ssl_conn_is_ssl(ap_HOOK_ssl_conn_is_ssl_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
apr_brigade_flush void * ctx
apr_bucket apr_bucket_brigade * a
const char apr_ssize_t int flags
#define APR_RETRIEVE_OPTIONAL_FN(name)
#define APR_OPTIONAL_FN_TYPE(name)
#define APR_REGISTER_OPTIONAL_FN(name)
void ap_hook_expr_lookup(ap_HOOK_expr_lookup_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define X509_get_notAfter
void ssl_var_log_config_register(apr_pool_t *p)
char * ssl_var_lookup(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, char *var)
#define MODSSL_SSL_CIPHER_CONST
#define X509_get_notBefore
apr_array_header_t * ssl_ext_list(apr_pool_t *p, conn_rec *c, int peer, const char *extension)
#define SSL_OPT_LEGACYDNFORMAT
void modssl_var_extract_dns(apr_table_t *t, SSL *ssl, apr_pool_t *p)
void ssl_var_register(apr_pool_t *p)
void modssl_var_extract_san_entries(apr_table_t *t, SSL *ssl, apr_pool_t *p)
#define MODSSL_SESSION_ID_STRING_LEN
#define MODSSL_LIBRARY_DYNTEXT
#define MODSSL_LIBRARY_TEXT
char * modssl_X509_NAME_to_string(apr_pool_t *p, X509_NAME *dn, int maxlen)
char * modssl_bio_free_read(apr_pool_t *p, BIO *bio)
unsigned int modssl_X509_getSAN(apr_pool_t *p, X509 *x509, int type, const char *onf, int idx, apr_array_header_t **entries)
char * modssl_X509_NAME_ENTRY_to_string(apr_pool_t *p, X509_NAME_ENTRY *xsne, int raw)
#define ap_strrchr_c(s, c)
#define ap_strchr_c(s, c)
const char apr_int32_t flag
apr_array_header_t ** result
apr_vformatter_buff_t * c
const char apr_uint32_t * id
#define apr_pcalloc(p, size)
#define APR_ARRAY_IDX(ary, i, type)
apr_size_t apr_size_t const char apr_time_exp_t * tm
#define apr_time_sec(time)
const char * ap_get_useragent_host(request_rec *req, int type, int *str_is_ip)
static void ap_register_log_handler(apr_pool_t *p, char *tag, ap_log_handler_fn_t *handler, int def)
#define strEQn(s1, s2, n)
#define strcEQn(s1, s2, n)
SSL extension module for Apache.
static void extract_san_array(apr_table_t *t, const char *pfx, apr_array_header_t *entries, apr_pool_t *p)
static char * ssl_var_lookup_ssl(apr_pool_t *p, SSLConnRec *sslconn, request_rec *r, char *var)
static void extract_dn(apr_table_t *t, apr_hash_t *nids, const char *pfx, X509_NAME *xn, apr_pool_t *p)
static char * ssl_var_lookup_ssl_compress_meth(SSL *ssl)
static int ssl_expr_lookup(ap_expr_lookup_parms *parms)
static char * ssl_var_lookup_ssl_cert_verify(apr_pool_t *p, SSLConnRec *sslconn)
static SSLConnRec * ssl_get_effective_config(conn_rec *c)
static const char * expr_var_fn(ap_expr_eval_ctx_t *ctx, const void *data)
static char * ssl_var_lookup_ssl_cipher(apr_pool_t *p, SSLConnRec *sslconn, char *var)
static char * ssl_var_lookup_ssl_cert_chain(apr_pool_t *p, STACK_OF(X509) *sk, char *var)
static const char * expr_func_fn(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static apr_array_header_t * expr_peer_ext_list_fn(ap_expr_eval_ctx_t *ctx, const void *dummy, const char *arg)
#define MKTIMESTR(format, tmfield)
static char * ssl_var_lookup_ssl_cert_valid(apr_pool_t *p, ASN1_TIME *tm)
static char * ssl_var_lookup_ssl_cert(apr_pool_t *p, request_rec *r, X509 *xs, char *var)
static char * ssl_var_lookup_ssl_cert_dn_oneline(apr_pool_t *p, request_rec *r, X509_NAME *xsname)
static const char * ssl_var_log_handler_x(request_rec *r, char *a)
static char * ssl_var_lookup_ssl_cert_remain(apr_pool_t *p, ASN1_TIME *tm)
static char * ssl_var_lookup_ssl_version(apr_pool_t *p, char *var)
static char * ssl_var_lookup_ssl_cert_san(apr_pool_t *p, X509 *xs, char *var)
static const char var_interface[]
static char * ssl_var_lookup_ssl_cert_serial(apr_pool_t *p, X509 *xs)
static const struct @40 ssl_var_lookup_ssl_cert_dn_rec[]
static char var_library_interface[]
static int dump_extn_value(BIO *bio, ASN1_OCTET_STRING *str)
static void ssl_var_lookup_ssl_cipher_bits(SSL *ssl, int *usekeysize, int *algkeysize)
static const char * ssl_var_log_handler_c(request_rec *r, char *a)
static char * ssl_var_lookup_ssl_cert_PEM(apr_pool_t *p, X509 *xs)
static char * ssl_var_lookup_ssl_cert_rfc4523_cea(apr_pool_t *p, SSL *ssl)
static char * ssl_var_lookup_ssl_cert_dn(apr_pool_t *p, X509_NAME *xsname, const char *var)
static char * var_library
static int ssl_conn_is_ssl(conn_rec *c)
Internal interfaces private to mod_ssl.
char * modssl_SSL_SESSION_id2sz(unsigned char *id, int idlen, char *str, int strsize)
Structure to store things which are per connection.
A structure that represents the current request.
apr_table_t * subprocess_env
A structure to store information for each virtual server.