Lines Matching refs:csr

64 static int x509_csr_parse_extensions(mbedtls_x509_csr *csr,  in x509_csr_parse_extensions()  argument
123 ret = cb(p_ctx, csr, &extn_oid, is_critical, *p, end_ext_octet); in x509_csr_parse_extensions()
143 if ((csr->ext_types & ext_type) != 0) { in x509_csr_parse_extensions()
148 csr->ext_types |= ext_type; in x509_csr_parse_extensions()
154 &csr->key_usage)) != 0) { in x509_csr_parse_extensions()
162 &csr->subject_alt_names)) != 0) { in x509_csr_parse_extensions()
170 &csr->ns_cert_type)) != 0) { in x509_csr_parse_extensions()
199 static int x509_csr_parse_attributes(mbedtls_x509_csr *csr, in x509_csr_parse_attributes() argument
241 if ((ret = x509_csr_parse_extensions(csr, p, *p + len, cb, p_ctx)) != 0) { in x509_csr_parse_attributes()
265 static int mbedtls_x509_csr_parse_der_internal(mbedtls_x509_csr *csr, in mbedtls_x509_csr_parse_der_internal() argument
280 if (csr == NULL || buf == NULL || buflen == 0) { in mbedtls_x509_csr_parse_der_internal()
284 mbedtls_x509_csr_init(csr); in mbedtls_x509_csr_parse_der_internal()
297 csr->raw.p = p; in mbedtls_x509_csr_parse_der_internal()
298 csr->raw.len = len; in mbedtls_x509_csr_parse_der_internal()
310 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
315 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
323 csr->cri.p = p; in mbedtls_x509_csr_parse_der_internal()
327 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
332 csr->cri.len = (size_t) (end - csr->cri.p); in mbedtls_x509_csr_parse_der_internal()
337 if ((ret = x509_csr_get_version(&p, end, &csr->version)) != 0) { in mbedtls_x509_csr_parse_der_internal()
338 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
342 if (csr->version != 0) { in mbedtls_x509_csr_parse_der_internal()
343 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
347 csr->version++; in mbedtls_x509_csr_parse_der_internal()
352 csr->subject_raw.p = p; in mbedtls_x509_csr_parse_der_internal()
356 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
360 if ((ret = mbedtls_x509_get_name(&p, p + len, &csr->subject)) != 0) { in mbedtls_x509_csr_parse_der_internal()
361 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
365 csr->subject_raw.len = (size_t) (p - csr->subject_raw.p); in mbedtls_x509_csr_parse_der_internal()
370 if ((ret = mbedtls_pk_parse_subpubkey(&p, end, &csr->pk)) != 0) { in mbedtls_x509_csr_parse_der_internal()
371 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
388 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
392 if ((ret = x509_csr_parse_attributes(csr, p, p + len, cb, p_ctx)) != 0) { in mbedtls_x509_csr_parse_der_internal()
393 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
399 end = csr->raw.p + csr->raw.len; in mbedtls_x509_csr_parse_der_internal()
405 if ((ret = mbedtls_x509_get_alg(&p, end, &csr->sig_oid, &sig_params)) != 0) { in mbedtls_x509_csr_parse_der_internal()
406 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
410 if ((ret = mbedtls_x509_get_sig_alg(&csr->sig_oid, &sig_params, in mbedtls_x509_csr_parse_der_internal()
411 &csr->sig_md, &csr->sig_pk, in mbedtls_x509_csr_parse_der_internal()
412 &csr->sig_opts)) != 0) { in mbedtls_x509_csr_parse_der_internal()
413 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
417 if ((ret = mbedtls_x509_get_sig(&p, end, &csr->sig)) != 0) { in mbedtls_x509_csr_parse_der_internal()
418 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
423 mbedtls_x509_csr_free(csr); in mbedtls_x509_csr_parse_der_internal()
434 int mbedtls_x509_csr_parse_der(mbedtls_x509_csr *csr, in mbedtls_x509_csr_parse_der() argument
437 return mbedtls_x509_csr_parse_der_internal(csr, buf, buflen, NULL, NULL); in mbedtls_x509_csr_parse_der()
443 int mbedtls_x509_csr_parse_der_with_ext_cb(mbedtls_x509_csr *csr, in mbedtls_x509_csr_parse_der_with_ext_cb() argument
448 return mbedtls_x509_csr_parse_der_internal(csr, buf, buflen, cb, p_ctx); in mbedtls_x509_csr_parse_der_with_ext_cb()
454 int mbedtls_x509_csr_parse(mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen) in mbedtls_x509_csr_parse() argument
465 if (csr == NULL || buf == NULL || buflen == 0) { in mbedtls_x509_csr_parse()
488 ret = mbedtls_x509_csr_parse_der(csr, pem.buf, pem.buflen); in mbedtls_x509_csr_parse()
497 return mbedtls_x509_csr_parse_der(csr, buf, buflen); in mbedtls_x509_csr_parse()
504 int mbedtls_x509_csr_parse_file(mbedtls_x509_csr *csr, const char *path) in mbedtls_x509_csr_parse_file() argument
514 ret = mbedtls_x509_csr_parse(csr, buf, n); in mbedtls_x509_csr_parse_file()
529 const mbedtls_x509_csr *csr) in mbedtls_x509_csr_info() argument
540 prefix, csr->version); in mbedtls_x509_csr_info()
545 ret = mbedtls_x509_dn_gets(p, n, &csr->subject); in mbedtls_x509_csr_info()
551 ret = mbedtls_x509_sig_alg_gets(p, n, &csr->sig_oid, csr->sig_pk, csr->sig_md, in mbedtls_x509_csr_info()
552 csr->sig_opts); in mbedtls_x509_csr_info()
556 mbedtls_pk_get_name(&csr->pk))) != 0) { in mbedtls_x509_csr_info()
561 (int) mbedtls_pk_get_bitlen(&csr->pk)); in mbedtls_x509_csr_info()
568 if (csr->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME) { in mbedtls_x509_csr_info()
573 &csr->subject_alt_names, in mbedtls_x509_csr_info()
579 if (csr->ext_types & MBEDTLS_X509_EXT_NS_CERT_TYPE) { in mbedtls_x509_csr_info()
583 if ((ret = mbedtls_x509_info_cert_type(&p, &n, csr->ns_cert_type)) != 0) { in mbedtls_x509_csr_info()
588 if (csr->ext_types & MBEDTLS_X509_EXT_KEY_USAGE) { in mbedtls_x509_csr_info()
592 if ((ret = mbedtls_x509_info_key_usage(&p, &n, csr->key_usage)) != 0) { in mbedtls_x509_csr_info()
597 if (csr->ext_types != 0) { in mbedtls_x509_csr_info()
609 void mbedtls_x509_csr_init(mbedtls_x509_csr *csr) in mbedtls_x509_csr_init() argument
611 memset(csr, 0, sizeof(mbedtls_x509_csr)); in mbedtls_x509_csr_init()
617 void mbedtls_x509_csr_free(mbedtls_x509_csr *csr) in mbedtls_x509_csr_free() argument
619 if (csr == NULL) { in mbedtls_x509_csr_free()
623 mbedtls_pk_free(&csr->pk); in mbedtls_x509_csr_free()
626 mbedtls_free(csr->sig_opts); in mbedtls_x509_csr_free()
629 mbedtls_asn1_free_named_data_list_shallow(csr->subject.next); in mbedtls_x509_csr_free()
630 mbedtls_asn1_sequence_free(csr->subject_alt_names.next); in mbedtls_x509_csr_free()
632 if (csr->raw.p != NULL) { in mbedtls_x509_csr_free()
633 mbedtls_zeroize_and_free(csr->raw.p, csr->raw.len); in mbedtls_x509_csr_free()
636 mbedtls_platform_zeroize(csr, sizeof(mbedtls_x509_csr)); in mbedtls_x509_csr_free()