MCPcopy Create free account
hub / github.com/apache/httpd / ssl_var_lookup_ssl_cert

Function ssl_var_lookup_ssl_cert

modules/ssl/ssl_engine_vars.c:474–557  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

472}
473
474static char *ssl_var_lookup_ssl_cert(apr_pool_t *p, request_rec *r, X509 *xs,
475 char *var)
476{
477 char *result;
478 BOOL resdup;
479 const X509_NAME *xsname;
480 int nid;
481
482 result = NULL;
483 resdup = TRUE;
484
485 if (strcEQ(var, "M_VERSION")) {
486 result = apr_psprintf(p, "%lu", X509_get_version(xs)+1);
487 resdup = FALSE;
488 }
489 else if (strcEQ(var, "M_SERIAL")) {
490 result = ssl_var_lookup_ssl_cert_serial(p, xs);
491 }
492 else if (strcEQ(var, "V_START")) {
493 result = ssl_var_lookup_ssl_cert_valid(p, X509_get0_notBefore(xs));
494 }
495 else if (strcEQ(var, "V_END")) {
496 result = ssl_var_lookup_ssl_cert_valid(p, X509_get0_notAfter(xs));
497 }
498 else if (strcEQ(var, "V_REMAIN")) {
499 result = ssl_var_lookup_ssl_cert_remain(p, X509_get0_notAfter(xs));
500 resdup = FALSE;
501 }
502 else if (*var && strcEQ(var+1, "_DN")) {
503 if (*var == 'S')
504 xsname = X509_get_subject_name(xs);
505 else if (*var == 'I')
506 xsname = X509_get_issuer_name(xs);
507 else
508 return NULL;
509 result = ssl_var_lookup_ssl_cert_dn_oneline(p, r, xsname);
510 resdup = FALSE;
511 }
512 else if (strlen(var) > 5 && strcEQn(var+1, "_DN_", 4)) {
513 if (*var == 'S')
514 xsname = X509_get_subject_name(xs);
515 else if (*var == 'I')
516 xsname = X509_get_issuer_name(xs);
517 else
518 return NULL;
519 result = ssl_var_lookup_ssl_cert_dn(p, xsname, var+5);
520 resdup = FALSE;
521 }
522 else if (strlen(var) > 4 && strcEQn(var, "SAN_", 4)) {
523 result = ssl_var_lookup_ssl_cert_san(p, xs, var+4);
524 resdup = FALSE;
525 }
526 else if (strcEQ(var, "A_SIG")) {
527#if MODSSL_USE_OPENSSL_PRE_1_1_API
528 nid = OBJ_obj2nid((ASN1_OBJECT *)(xs->cert_info->signature->algorithm));
529#else
530 const ASN1_OBJECT *paobj;
531 X509_ALGOR_get0(&paobj, NULL, NULL, X509_get0_tbs_sigalg(xs));

Callers 1

ssl_var_lookup_sslFunction · 0.85

Tested by

no test coverage detected