Lines Matching refs:hcert
478 static void add_logo(struct http_ctx *ctx, struct http_cert *hcert, in DEFINE_STACK_OF()
492 n = os_realloc_array(hcert->logo, hcert->num_logo + 1, in DEFINE_STACK_OF()
496 hcert->logo = n; in DEFINE_STACK_OF()
497 n = &hcert->logo[hcert->num_logo]; in DEFINE_STACK_OF()
522 hcert->num_logo++; in DEFINE_STACK_OF()
526 static void add_logo_direct(struct http_ctx *ctx, struct http_cert *hcert, in add_logo_direct() argument
577 add_logo(ctx, hcert, found_hash, uri); in add_logo_direct()
583 static void add_logo_indirect(struct http_ctx *ctx, struct http_cert *hcert, in add_logo_indirect() argument
601 add_logo(ctx, hcert, hash, uri); in add_logo_indirect()
799 static void add_logotype_ext(struct http_ctx *ctx, struct http_cert *hcert, in add_logotype_ext() argument
858 add_logo_direct(ctx, hcert, info->d.direct); in add_logotype_ext()
861 add_logo_indirect(ctx, hcert, info->d.indirect); in add_logotype_ext()
870 static void parse_cert(struct http_ctx *ctx, struct http_cert *hcert, in parse_cert() argument
873 os_memset(hcert, 0, sizeof(*hcert)); in parse_cert()
877 add_alt_names(ctx, hcert, *names); in parse_cert()
879 add_logotype_ext(ctx, hcert, cert); in parse_cert()
883 static void parse_cert_free(struct http_cert *hcert, GENERAL_NAMES *names) in parse_cert_free() argument
887 for (i = 0; i < hcert->num_dnsname; i++) in parse_cert_free()
888 OPENSSL_free(hcert->dnsname[i]); in parse_cert_free()
889 os_free(hcert->dnsname); in parse_cert_free()
891 for (i = 0; i < hcert->num_othername; i++) in parse_cert_free()
892 os_free(hcert->othername[i].oid); in parse_cert_free()
893 os_free(hcert->othername); in parse_cert_free()
895 for (i = 0; i < hcert->num_logo; i++) { in parse_cert_free()
896 os_free(hcert->logo[i].alg_oid); in parse_cert_free()
897 os_free(hcert->logo[i].hash); in parse_cert_free()
898 os_free(hcert->logo[i].uri); in parse_cert_free()
900 os_free(hcert->logo); in parse_cert_free()
909 struct http_cert hcert; in validate_server_cert() local
924 parse_cert(ctx, &hcert, cert, &names); in validate_server_cert()
925 ret = ctx->cert_cb(ctx->cert_cb_ctx, &hcert); in validate_server_cert()
926 parse_cert_free(&hcert, names); in validate_server_cert()
937 struct http_cert hcert; in http_parse_x509_certificate() local
962 parse_cert(ctx, &hcert, cert, &names); in http_parse_x509_certificate()
963 for (i = 0; i < hcert.num_othername; i++) { in http_parse_x509_certificate()
964 if (os_strcmp(hcert.othername[i].oid, in http_parse_x509_certificate()
966 char *name = os_zalloc(hcert.othername[i].len + 1); in http_parse_x509_certificate()
968 os_memcpy(name, hcert.othername[i].data, in http_parse_x509_certificate()
969 hcert.othername[i].len); in http_parse_x509_certificate()
977 hcert.othername[i].data, in http_parse_x509_certificate()
978 hcert.othername[i].len); in http_parse_x509_certificate()
981 hcert.othername[i].oid); in http_parse_x509_certificate()
983 hcert.othername[i].data, in http_parse_x509_certificate()
984 hcert.othername[i].len); in http_parse_x509_certificate()
987 parse_cert_free(&hcert, names); in http_parse_x509_certificate()