Lines Matching refs:csr

3233 static void crypto_csr_init_type(struct crypto_csr *csr, enum cert_type type,  in crypto_csr_init_type()  argument
3238 if (csr->type == type) in crypto_csr_init_type()
3241 switch (csr->type) { in crypto_csr_init_type()
3243 wc_FreeDecodedCert(&csr->req.dc); in crypto_csr_init_type()
3247 wc_SetCert_Free(&csr->req.c); in crypto_csr_init_type()
3256 wc_InitDecodedCert(&csr->req.dc, source, in_sz, NULL); in crypto_csr_init_type()
3259 err = wc_InitCert(&csr->req.c); in crypto_csr_init_type()
3267 csr->type = type; in crypto_csr_init_type()
3288 void crypto_csr_deinit(struct crypto_csr *csr) in crypto_csr_deinit() argument
3290 if (csr) { in crypto_csr_deinit()
3291 crypto_csr_init_type(csr, cert_type_none, NULL, 0); in crypto_csr_deinit()
3292 crypto_ec_key_deinit(csr->pubkey); in crypto_csr_deinit()
3293 os_free(csr); in crypto_csr_deinit()
3298 int crypto_csr_set_ec_public_key(struct crypto_csr *csr, in crypto_csr_set_ec_public_key() argument
3303 if (!csr || !key || !key->eckey) { in crypto_csr_set_ec_public_key()
3308 if (csr->pubkey) { in crypto_csr_set_ec_public_key()
3309 crypto_ec_key_deinit(csr->pubkey); in crypto_csr_set_ec_public_key()
3310 csr->pubkey = NULL; in crypto_csr_set_ec_public_key()
3320 csr->pubkey = crypto_ec_key_parse_pub(wpabuf_head(der), in crypto_csr_set_ec_public_key()
3323 if (!csr->pubkey) { in crypto_csr_set_ec_public_key()
3332 int crypto_csr_set_name(struct crypto_csr *csr, enum crypto_csr_name type, in crypto_csr_set_name() argument
3338 if (!csr || !name) { in crypto_csr_set_name()
3343 if (csr->type != cert_type_cert) { in crypto_csr_set_name()
3344 LOG_WOLF_ERROR_VA("csr is incorrect type (%d)", csr->type); in crypto_csr_set_name()
3356 dest = csr->req.c.subject.commonName; in crypto_csr_set_name()
3359 dest = csr->req.c.subject.sur; in crypto_csr_set_name()
3362 dest = csr->req.c.subject.country; in crypto_csr_set_name()
3365 dest = csr->req.c.subject.org; in crypto_csr_set_name()
3368 dest = csr->req.c.subject.unit; in crypto_csr_set_name()
3382 int crypto_csr_set_attribute(struct crypto_csr *csr, enum crypto_csr_attr attr, in crypto_csr_set_attribute() argument
3385 if (!csr || attr_type != ASN1_TAG_UTF8STRING || !value || in crypto_csr_set_attribute()
3391 if (csr->type != cert_type_cert) { in crypto_csr_set_attribute()
3392 LOG_WOLF_ERROR_VA("csr is incorrect type (%d)", csr->type); in crypto_csr_set_attribute()
3398 os_memcpy(csr->req.c.challengePw, value, len); in crypto_csr_set_attribute()
3399 csr->req.c.challengePw[len] = '\0'; in crypto_csr_set_attribute()
3409 const u8 * crypto_csr_get_attribute(struct crypto_csr *csr, in crypto_csr_get_attribute() argument
3413 if (!csr || !len || !type) { in crypto_csr_get_attribute()
3420 switch (csr->type) { in crypto_csr_get_attribute()
3423 *len = csr->req.dc.cPwdLen; in crypto_csr_get_attribute()
3424 return (const u8 *) csr->req.dc.cPwd; in crypto_csr_get_attribute()
3427 *len = os_strlen(csr->req.c.challengePw); in crypto_csr_get_attribute()
3428 return (const u8 *) csr->req.c.challengePw; in crypto_csr_get_attribute()
3438 struct wpabuf * crypto_csr_sign(struct crypto_csr *csr, in crypto_csr_sign() argument
3448 if (!csr || !key || !key->eckey) { in crypto_csr_sign()
3453 if (csr->type != cert_type_cert) { in crypto_csr_sign()
3454 LOG_WOLF_ERROR_VA("csr is incorrect type (%d)", csr->type); in crypto_csr_sign()
3465 csr->req.c.sigType = CTC_SHA256wECDSA; in crypto_csr_sign()
3468 csr->req.c.sigType = CTC_SHA384wECDSA; in crypto_csr_sign()
3471 csr->req.c.sigType = CTC_SHA512wECDSA; in crypto_csr_sign()
3480 err = wc_MakeCertReq(&csr->req.c, NULL, 100000, NULL, in crypto_csr_sign()
3481 csr->pubkey->eckey); in crypto_csr_sign()
3495 err = wc_MakeCertReq(&csr->req.c, buf, buf_len, NULL, in crypto_csr_sign()
3496 csr->pubkey->eckey); in crypto_csr_sign()
3503 err = wc_SignCert(len, csr->req.c.sigType, buf, buf_len, NULL, in crypto_csr_sign()
3525 struct crypto_csr *csr = NULL; in crypto_csr_verify() local
3533 csr = crypto_csr_init(); in crypto_csr_verify()
3534 if (!csr) { in crypto_csr_verify()
3539 crypto_csr_init_type(csr, cert_type_decoded_cert, in crypto_csr_verify()
3541 err = wc_ParseCert(&csr->req.dc, CERTREQ_TYPE, VERIFY, NULL); in crypto_csr_verify()
3547 return csr; in crypto_csr_verify()
3549 crypto_csr_deinit(csr); in crypto_csr_verify()