Lines Matching refs:cert
191 _hx509_get_cert(hx509_cert cert) in _hx509_get_cert() argument
193 return cert->data; in _hx509_get_cert()
220 hx509_cert_init(hx509_context context, const Certificate *c, hx509_cert *cert) in hx509_cert_init() argument
224 *cert = malloc(sizeof(**cert)); in hx509_cert_init()
225 if (*cert == NULL) in hx509_cert_init()
227 (*cert)->ref = 1; in hx509_cert_init()
228 (*cert)->friendlyname = NULL; in hx509_cert_init()
229 (*cert)->attrs.len = 0; in hx509_cert_init()
230 (*cert)->attrs.val = NULL; in hx509_cert_init()
231 (*cert)->private_key = NULL; in hx509_cert_init()
232 (*cert)->basename = NULL; in hx509_cert_init()
233 (*cert)->release = NULL; in hx509_cert_init()
234 (*cert)->ctx = NULL; in hx509_cert_init()
236 (*cert)->data = calloc(1, sizeof(*(*cert)->data)); in hx509_cert_init()
237 if ((*cert)->data == NULL) { in hx509_cert_init()
238 free(*cert); in hx509_cert_init()
241 ret = copy_Certificate(c, (*cert)->data); in hx509_cert_init()
243 free((*cert)->data); in hx509_cert_init()
244 free(*cert); in hx509_cert_init()
245 *cert = NULL; in hx509_cert_init()
274 hx509_cert *cert) in hx509_cert_init_data() argument
292 ret = hx509_cert_init(context, &t, cert); in hx509_cert_init_data()
298 _hx509_cert_set_release(hx509_cert cert, in _hx509_cert_set_release() argument
302 cert->release = release; in _hx509_cert_set_release()
303 cert->ctx = ctx; in _hx509_cert_set_release()
310 _hx509_cert_assign_key(hx509_cert cert, hx509_private_key private_key) in _hx509_cert_assign_key() argument
312 if (cert->private_key) in _hx509_cert_assign_key()
313 hx509_private_key_free(&cert->private_key); in _hx509_cert_assign_key()
314 cert->private_key = _hx509_private_key_ref(private_key); in _hx509_cert_assign_key()
328 hx509_cert_free(hx509_cert cert) in hx509_cert_free() argument
332 if (cert == NULL) in hx509_cert_free()
335 if (cert->ref <= 0) in hx509_cert_free()
337 if (--cert->ref > 0) in hx509_cert_free()
340 if (cert->release) in hx509_cert_free()
341 (cert->release)(cert, cert->ctx); in hx509_cert_free()
343 if (cert->private_key) in hx509_cert_free()
344 hx509_private_key_free(&cert->private_key); in hx509_cert_free()
346 free_Certificate(cert->data); in hx509_cert_free()
347 free(cert->data); in hx509_cert_free()
349 for (i = 0; i < cert->attrs.len; i++) { in hx509_cert_free()
350 der_free_octet_string(&cert->attrs.val[i]->data); in hx509_cert_free()
351 der_free_oid(&cert->attrs.val[i]->oid); in hx509_cert_free()
352 free(cert->attrs.val[i]); in hx509_cert_free()
354 free(cert->attrs.val); in hx509_cert_free()
355 free(cert->friendlyname); in hx509_cert_free()
356 if (cert->basename) in hx509_cert_free()
357 hx509_name_free(&cert->basename); in hx509_cert_free()
358 memset(cert, 0, sizeof(*cert)); in hx509_cert_free()
359 free(cert); in hx509_cert_free()
373 hx509_cert_ref(hx509_cert cert) in hx509_cert_ref() argument
375 if (cert == NULL) in hx509_cert_ref()
377 if (cert->ref <= 0) in hx509_cert_ref()
379 cert->ref++; in hx509_cert_ref()
380 if (cert->ref == 0) in hx509_cert_ref()
382 return cert; in hx509_cert_ref()
587 find_extension(const Certificate *cert, const heim_oid *oid, size_t *idx) in find_extension() argument
589 const TBSCertificate *c = &cert->tbsCertificate; in find_extension()
659 find_extension_subject_alt_name(const Certificate *cert, size_t *i, in find_extension_subject_alt_name() argument
667 e = find_extension(cert, &asn1_oid_id_x509_ce_subjectAltName, i); in find_extension_subject_alt_name()
677 find_extension_eku(const Certificate *cert, ExtKeyUsage *eku) in find_extension_eku() argument
685 e = find_extension(cert, &asn1_oid_id_x509_ce_extKeyUsage, &i); in find_extension_eku()
750 hx509_cert cert, in hx509_cert_find_subjectAltName_otherName() argument
763 ret = find_extension_subject_alt_name(_hx509_get_cert(cert), &i, &sa); in hx509_cert_find_subjectAltName_otherName()
794 check_key_usage(hx509_context context, const Certificate *cert, in check_key_usage() argument
804 if (_hx509_cert_get_version(cert) < 3) in check_key_usage()
807 e = find_extension(cert, &asn1_oid_id_x509_ce_keyUsage, &i); in check_key_usage()
827 _hx509_unparse_Name(&cert->tbsCertificate.subject, &name); in check_key_usage()
844 _hx509_check_key_usage(hx509_context context, hx509_cert cert, in _hx509_check_key_usage() argument
847 return check_key_usage(context, _hx509_get_cert(cert), flags, req_present); in _hx509_check_key_usage()
853 check_basic_constraints(hx509_context context, const Certificate *cert, in check_basic_constraints() argument
862 if (_hx509_cert_get_version(cert) < 3) in check_basic_constraints()
865 e = find_extension(cert, &asn1_oid_id_x509_ce_basicConstraints, &i); in check_basic_constraints()
873 ret = _hx509_unparse_Name(&cert->tbsCertificate.subject, &name); in check_basic_constraints()
1000 const hx509_cert cert) in certificate_is_anchor() argument
1012 q.certificate = _hx509_get_cert(cert); in certificate_is_anchor()
1022 const Certificate *cert, in certificate_is_self_signed() argument
1026 ret = _hx509_name_cmp(&cert->tbsCertificate.subject, in certificate_is_self_signed()
1027 &cert->tbsCertificate.issuer, &diff); in certificate_is_self_signed()
1033 ret = _hx509_self_signed_valid(context, &cert->signatureAlgorithm); in certificate_is_self_signed()
1144 const Certificate *cert, in is_proxy_cert() argument
1156 e = find_extension(cert, &asn1_oid_id_pkix_pe_proxyCertInfo, &i); in is_proxy_cert()
1189 _hx509_path_append(hx509_context context, hx509_path *path, hx509_cert cert) in _hx509_path_append() argument
1199 path->val[path->len] = hx509_cert_ref(cert); in _hx509_path_append()
1240 hx509_cert cert, in _hx509_calculate_path() argument
1250 ret = _hx509_path_append(context, path, cert); in _hx509_calculate_path()
1254 current = hx509_cert_ref(cert); in _hx509_calculate_path()
1519 const heim_bit_string *cert, heim_bit_string *subject) in get_x_unique_id() argument
1523 if (cert == NULL) { in get_x_unique_id()
1528 ret = der_copy_bit_string(cert, subject); in get_x_unique_id()
1975 hx509_cert cert, in hx509_verify_path() argument
2017 cert, pool, &path); in hx509_verify_path()
2197 if (cert->basename) in hx509_verify_path()
2198 hx509_name_free(&cert->basename); in hx509_verify_path()
2200 ret = _hx509_name_from_Name(&proxy_issuer, &cert->basename); in hx509_verify_path()
2453 const hx509_cert cert, in hx509_verify_hostname() argument
2472 ret = find_extension_subject_alt_name(cert->data, &i, &san); in hx509_verify_hostname()
2498 name = &cert->data->tbsCertificate.subject; in hx509_verify_hostname()
2546 hx509_cert cert, in _hx509_set_cert_attribute() argument
2553 if (hx509_cert_get_attribute(cert, oid) != NULL) in _hx509_set_cert_attribute()
2556 d = realloc(cert->attrs.val, in _hx509_set_cert_attribute()
2557 sizeof(cert->attrs.val[0]) * (cert->attrs.len + 1)); in _hx509_set_cert_attribute()
2562 cert->attrs.val = d; in _hx509_set_cert_attribute()
2571 cert->attrs.val[cert->attrs.len] = a; in _hx509_set_cert_attribute()
2572 cert->attrs.len++; in _hx509_set_cert_attribute()
2591 hx509_cert_get_attribute(hx509_cert cert, const heim_oid *oid) in hx509_cert_get_attribute() argument
2594 for (i = 0; i < cert->attrs.len; i++) in hx509_cert_get_attribute()
2595 if (der_heim_oid_cmp(oid, &cert->attrs.val[i]->oid) == 0) in hx509_cert_get_attribute()
2596 return cert->attrs.val[i]; in hx509_cert_get_attribute()
2612 hx509_cert_set_friendly_name(hx509_cert cert, const char *name) in hx509_cert_set_friendly_name() argument
2614 if (cert->friendlyname) in hx509_cert_set_friendly_name()
2615 free(cert->friendlyname); in hx509_cert_set_friendly_name()
2616 cert->friendlyname = strdup(name); in hx509_cert_set_friendly_name()
2617 if (cert->friendlyname == NULL) in hx509_cert_set_friendly_name()
2634 hx509_cert_get_friendly_name(hx509_cert cert) in hx509_cert_get_friendly_name() argument
2642 if (cert->friendlyname) in hx509_cert_get_friendly_name()
2643 return cert->friendlyname; in hx509_cert_get_friendly_name()
2645 a = hx509_cert_get_attribute(cert, &asn1_oid_id_pkcs_9_at_friendlyName); in hx509_cert_get_friendly_name()
2649 ret = hx509_cert_get_subject(cert, &name); in hx509_cert_get_friendly_name()
2652 ret = hx509_name_to_string(name, &cert->friendlyname); in hx509_cert_get_friendly_name()
2656 return cert->friendlyname; in hx509_cert_get_friendly_name()
2668 cert->friendlyname = malloc(n.val[0].length + 1); in hx509_cert_get_friendly_name()
2669 if (cert->friendlyname == NULL) { in hx509_cert_get_friendly_name()
2676 cert->friendlyname[i] = n.val[0].data[i] & 0xff; in hx509_cert_get_friendly_name()
2678 cert->friendlyname[i] = 'X'; in hx509_cert_get_friendly_name()
2680 cert->friendlyname[i] = '\0'; in hx509_cert_get_friendly_name()
2683 return cert->friendlyname; in hx509_cert_get_friendly_name()
2945 _hx509_query_match_cert(hx509_context context, const hx509_query *q, hx509_cert cert) in _hx509_query_match_cert() argument
2947 Certificate *c = _hx509_get_cert(cert); in _hx509_query_match_cert()
2991 _hx509_cert_private_key(cert) == NULL) in _hx509_query_match_cert()
3019 a = hx509_cert_get_attribute(cert, &asn1_oid_id_pkcs_9_at_localKeyId); in _hx509_query_match_cert()
3030 if (hx509_cert_cmp(q->path->val[i], cert) == 0) in _hx509_query_match_cert()
3034 const char *name = hx509_cert_get_friendly_name(cert); in _hx509_query_match_cert()
3041 ret = (*q->cmp_func)(context, cert, q->cmp_func_ctx); in _hx509_query_match_cert()
3074 hx509_cert_check_eku(context, cert, q->eku, 0)) in _hx509_query_match_cert()
3080 ret = _hx509_cert_to_env(context, cert, &env); in _hx509_query_match_cert()
3266 hx509_cert_check_eku(hx509_context context, hx509_cert cert, in hx509_cert_check_eku() argument
3273 ret = find_extension_eku(_hx509_get_cert(cert), &e); in hx509_cert_check_eku()
3303 Certificate *cert; in _hx509_cert_get_keyusage() local
3311 cert = _hx509_get_cert(c); in _hx509_cert_get_keyusage()
3313 if (_hx509_cert_get_version(cert) < 3) in _hx509_cert_get_keyusage()
3316 e = find_extension(cert, &asn1_oid_id_x509_ce_keyUsage, &i); in _hx509_cert_get_keyusage()
3328 hx509_cert cert, in _hx509_cert_get_eku() argument
3335 ret = find_extension_eku(_hx509_get_cert(cert), e); in _hx509_cert_get_eku()
3417 _hx509_cert_to_env(hx509_context context, hx509_cert cert, hx509_env *env) in _hx509_cert_to_env() argument
3428 asprintf(&buf, "%d", _hx509_cert_get_version(_hx509_get_cert(cert))); in _hx509_cert_to_env()
3435 ret = hx509_cert_get_subject(cert, &name); in _hx509_cert_to_env()
3451 ret = hx509_cert_get_issuer(cert, &name); in _hx509_cert_to_env()
3467 ret = _hx509_cert_get_eku(context, cert, &eku); in _hx509_cert_to_env()
3502 Certificate *c = _hx509_get_cert(cert); in _hx509_cert_to_env()
3564 hx509_print_cert(hx509_context context, hx509_cert cert, FILE *out) in hx509_print_cert() argument
3573 ret = hx509_cert_get_issuer(cert, &name); in hx509_print_cert()
3581 ret = hx509_cert_get_subject(cert, &name); in hx509_print_cert()
3592 ret = hx509_cert_get_serialnumber(cert, &serialNumber); in hx509_print_cert()
3604 ret = hx509_cert_keyusage_print(context, cert, &str); in hx509_print_cert()