52 for (
i = 0;
i <= 1;
i++) {
55 "Second Application Data for SSL",
134 for (
i = 0;
i < 4 ;
i++) {
170 if (
bc->pathlen !=
NULL) {
220#define asn1_string_to_utf8(p, a) asn1_string_convert(p, a, 0)
247 if (maxlen > 0 && maxlen <
len) {
280 }
else if (
strEQ(
onf,
"id-on-dnsSRV") &&
324 if (((
idx == -1) || (
n ==
idx)) &&
332 if (((
idx == -1) || (
n ==
idx))) {
409 char **
id = (
char **)
ids->
elts;
412 for (
i = 0;
i <
ids->nelts;
i++) {
437 "[%s] modssl_X509_match_name: expecting name '%s', "
438 "%smatched by ID '%s'",
440 matched ==
TRUE ?
"" :
"NOT ",
id[
i]);
443 if (matched ==
TRUE) {
452 APLOGNO(02412)
"[%s] Cert %s for name '%s'",
454 matched ==
TRUE ?
"matches" :
"does not match",
467#if OPENSSL_VERSION_NUMBER < 0x30000000L
503#if OPENSSL_VERSION_NUMBER < 0x30000000L
545 const char *cert_pem,
const char *
key_pem,
618#ifdef SSL_OP_NO_RENEGOTIATION
const char apr_size_t len
#define ap_xlate_proto_from_ascii(x, y)
const char apr_ssize_t int flags
DH * modssl_dh_from_file(const char *file)
void modssl_set_reneg_state(SSLConnRec *sslconn, modssl_reneg_state state)
apr_status_t modssl_read_cert(apr_pool_t *p, const char *cert_pem, const char *key_pem, pem_password_cb *cb, void *ud, X509 **pcert, EVP_PKEY **pkey)
void modssl_init_app_data2_idx(void)
unsigned int modssl_X509_getBC(X509 *cert, int *ca, int *pathlen)
void modssl_set_app_data2(SSL *ssl, void *arg)
apr_status_t modssl_cert_get_pem(apr_pool_t *p, X509 *cert1, X509 *cert2, const char **ppem)
char * modssl_X509_NAME_to_string(apr_pool_t *p, X509_NAME *dn, int maxlen)
int modssl_smart_shutdown(SSL *ssl)
EVP_PKEY * modssl_read_privatekey(const char *filename, pem_password_cb *cb, void *s)
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)
void * modssl_get_app_data2(SSL *ssl)
void ap_bin2hex(const void *src, apr_size_t srclen, char *dest)
#define ap_strchr_c(s, c)
const char apr_file_t * file
void const char apr_status_t(* cleanup)(void *))
apr_array_header_t ** result
int strcasecmp(const char *a, const char *b)
apr_size_t const char * filename
#define APR_ARRAY_PUSH(ary, type)
void ssl_log_xerror(const char *file, int line, int level, apr_status_t rv, apr_pool_t *ptemp, server_rec *s, X509 *cert, const char *fmt,...)
Internal interfaces private to mod_ssl.
static char * asn1_string_convert(apr_pool_t *p, ASN1_STRING *asn1str, int raw)
#define asn1_string_to_utf8(p, a)
unsigned int modssl_X509_match_name(apr_pool_t *p, X509 *x509, const char *name, unsigned int allow_wildcard, server_rec *s)
static unsigned int getIDs(apr_pool_t *p, X509 *x509, apr_array_header_t **ids)
char * modssl_SSL_SESSION_id2sz(unsigned char *id, int idlen, char *str, int strsize)
static void parse_otherName_value(apr_pool_t *p, ASN1_TYPE *value, const char *onf, apr_array_header_t **entries)
A structure to store information for each virtual server.