Lines Matching defs:csr

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