| 630 | } |
| 631 | |
| 632 | static char *ssl_var_lookup_ssl_cert_san(apr_pool_t *p, X509 *xs, char *var) |
| 633 | { |
| 634 | int type; |
| 635 | apr_size_t numlen; |
| 636 | const char *onf = NULL; |
| 637 | apr_array_header_t *entries; |
| 638 | |
| 639 | if (strcEQn(var, "Email_", 6)) { |
| 640 | type = GEN_EMAIL; |
| 641 | var += 6; |
| 642 | } |
| 643 | else if (strcEQn(var, "DNS_", 4)) { |
| 644 | type = GEN_DNS; |
| 645 | var += 4; |
| 646 | } |
| 647 | else if (strcEQn(var, "OTHER_", 6)) { |
| 648 | type = GEN_OTHERNAME; |
| 649 | var += 6; |
| 650 | if (strEQn(var, "msUPN_", 6)) { |
| 651 | var += 6; |
| 652 | onf = "msUPN"; |
| 653 | } |
| 654 | else if (strEQn(var, "dnsSRV_", 7)) { |
| 655 | var += 7; |
| 656 | onf = "id-on-dnsSRV"; |
| 657 | } |
| 658 | else |
| 659 | return NULL; |
| 660 | } |
| 661 | else |
| 662 | return NULL; |
| 663 | |
| 664 | /* sanity check: number must be between 1 and 4 digits */ |
| 665 | numlen = strspn(var, "0123456789"); |
| 666 | if ((numlen < 1) || (numlen > 4) || (numlen != strlen(var))) |
| 667 | return NULL; |
| 668 | |
| 669 | if (modssl_X509_getSAN(p, xs, type, onf, atoi(var), &entries)) |
| 670 | /* return the first entry from this 1-element array */ |
| 671 | return APR_ARRAY_IDX(entries, 0, char *); |
| 672 | else |
| 673 | return NULL; |
| 674 | } |
| 675 | |
| 676 | static char *ssl_var_lookup_ssl_cert_valid(apr_pool_t *p, const ASN1_TIME *tm) |
| 677 | { |
no test coverage detected