Lines Matching defs:cps
307 struct lws_cose_key_parse_state *cps =
322 if (cps->ck)
326 if (cps->pkey_set && ctx->pst[ctx->pst_sp].ppos == 2) {
328 cps->ck = lws_zalloc(sizeof(*cps->ck), __func__);
329 if (!cps->ck)
331 cps->cose_state = 0;
332 cps->meta_idx = -1;
333 cps->gencrypto_eidx = -1;
334 cps->seen_count = 0;
336 if (cps->pkey_set)
337 lws_dll2_add_tail(&cps->ck->list, cps->pkey_set);
341 if (cps->pkey_set && ctx->pst[ctx->pst_sp].ppos == 2) {
342 if (cps->per_key_cb)
343 cps->per_key_cb(cps->ck, cps->user);
366 switch (cps->cose_state) {
368 assert(cps->ck);
369 cps->ck->kty = (int)ctx->item.u.u64;
374 cps->ck->gencrypto_kty =
380 cps->ck->gencrypto_kty =
385 cps->ck->gencrypto_kty =
390 cps->ck->gencrypto_kty =
402 ke = &cps->ck->meta[COSEKEY_META_KTY];
413 cps->ck->cose_alg = (int)ctx->item.u.u64;
416 if (!cps->pkey_set &&
423 if (cps->pkey_set &&
432 cps->ck->cose_curve = (int)ctx->item.u.u64;
433 p = lws_cose_curve_id_to_name(cps->ck->cose_curve);
435 ke = &cps->ck->e[LWS_GENCRYPTO_EC_KEYEL_CRV];
446 __func__, cps->cose_state);
451 cps->cose_state = 0;
460 cps->cose_state = (int)ctx->item.u.u64;
461 for (n = 0 ; n < cps->seen_count; n++)
462 if (cps->seen[n] == cps->cose_state) {
465 __func__, cps->cose_state);
469 if (cps->seen_count >= (int)LWS_ARRAY_SIZE(cps->seen))
471 cps->seen[cps->seen_count++] = cps->cose_state;
473 cps->meta_idx = -1;
476 cps->meta_idx = COSEKEY_META_KTY;
479 cps->meta_idx = COSEKEY_META_KID;
482 cps->meta_idx = COSEKEY_META_ALG;
485 cps->meta_idx = COSEKEY_META_KEY_OPS;
488 cps->meta_idx = COSEKEY_META_BASE_IV;
492 cps->gencrypto_eidx = -1;
494 switch (cps->ck->kty) {
498 cps->cose_state = LWSCOSE_WKOKP_CRV;
501 cps->gencrypto_eidx =
505 cps->gencrypto_eidx =
515 cps->cose_state = LWSCOSE_WKOKP_CRV;
518 cps->gencrypto_eidx =
522 cps->gencrypto_eidx =
526 cps->gencrypto_eidx =
536 cps->gencrypto_eidx =
540 cps->gencrypto_eidx =
544 cps->gencrypto_eidx =
548 cps->gencrypto_eidx =
552 cps->gencrypto_eidx =
556 cps->gencrypto_eidx =
560 cps->gencrypto_eidx =
564 cps->gencrypto_eidx =
568 cps->gencrypto_eidx =
572 cps->gencrypto_eidx =
576 cps->gencrypto_eidx =
580 cps->gencrypto_eidx =
592 cps->gencrypto_eidx = LWS_GENCRYPTO_OCT_KEYEL_K;
608 if (cps->cose_state == COSEKEY_META_KID)
613 * the temp buf in cps and then alloc and copy it into the
617 cps->pos = 0;
618 if (cps->gencrypto_eidx >= 0) {
619 if (cps->ck->e[cps->gencrypto_eidx].buf) {
621 cps->gencrypto_eidx,
622 cps->ck->e[cps->gencrypto_eidx].len);
628 if (cps->meta_idx >= 0)
635 if (cps->pos + ctx->npos > sizeof(cps->buf)) {
639 memcpy(cps->buf + cps->pos, ctx->buf, ctx->npos);
640 cps->pos += ctx->npos;
646 if (cps->gencrypto_eidx >= 0) {
648 if (cps->ck->e[cps->gencrypto_eidx].buf)
651 lws_ck_set_el(&cps->ck->e[cps->gencrypto_eidx],
652 (char *)cps->buf, cps->pos);
653 cps->gencrypto_eidx = -1;
658 if (cps->meta_idx >= 0) {
659 lws_ck_set_el(&cps->ck->meta[cps->meta_idx],
660 (char *)cps->buf, cps->pos);
661 cps->meta_idx = -1;
663 cps->pos = 0;
666 if (cps->cose_state == LWSCOSE_WKOKP_CRV) {
667 cps->ck->cose_curve = lws_cose_curve_name_to_id(ctx->buf);
668 ke = &cps->ck->e[LWS_GENCRYPTO_EC_KEYEL_CRV];
677 cps->cose_state == LWSCOSE_WKK_ALG) {
683 cps->ck->cose_alg = wk_alg_indexes[n];
692 ke = &cps->ck->meta[COSEKEY_META_ALG];
707 lws_cose_key_destroy(&cps->ck);
709 if (cps->pkey_set) {
710 lws_cose_key_set_destroy(cps->pkey_set);
711 cps->pkey_set = NULL;
911 struct lws_cose_key_parse_state cps;
915 memset(&cps, 0, sizeof(cps));
917 cps.per_key_cb = cb;
918 cps.user = user;
919 cps.pkey_set = pkey_set;
920 cps.gencrypto_eidx = -1;
922 lecp_construct(&ctx, cb_cose_key, &cps, NULL, 0);
928 if (cps.pkey_set)
929 lws_cose_key_set_destroy(cps.pkey_set);
934 switch (cps.ck->gencrypto_kty) {
942 return cps.ck;
945 lws_cose_key_destroy(&cps.ck);