Lines Matching full:rp
499 struct fido_credman_single_rp *rp = arg; in credman_parse_rp() local
509 return (cbor_decode_rp_entity(val, &rp->rp_entity)); in credman_parse_rp()
511 return (fido_blob_decode(val, &rp->rp_id_hash)); in credman_parse_rp()
519 credman_reset_rp(fido_credman_rp_t *rp) in credman_reset_rp() argument
521 for (size_t i = 0; i < rp->n_alloc; i++) { in credman_reset_rp()
522 free(rp->ptr[i].rp_entity.id); in credman_reset_rp()
523 free(rp->ptr[i].rp_entity.name); in credman_reset_rp()
524 rp->ptr[i].rp_entity.id = NULL; in credman_reset_rp()
525 rp->ptr[i].rp_entity.name = NULL; in credman_reset_rp()
526 fido_blob_reset(&rp->ptr[i].rp_id_hash); in credman_reset_rp()
529 free(rp->ptr); in credman_reset_rp()
530 rp->ptr = NULL; in credman_reset_rp()
531 memset(rp, 0, sizeof(*rp)); in credman_reset_rp()
538 fido_credman_rp_t *rp = arg; in credman_parse_rp_count() local
554 if (credman_grow_array((void **)&rp->ptr, &rp->n_alloc, &rp->n_rx, in credman_parse_rp_count()
555 (size_t)n, sizeof(*rp->ptr)) < 0) { in credman_parse_rp_count()
564 credman_rx_rp(fido_dev_t *dev, fido_credman_rp_t *rp, int *ms) in credman_rx_rp() argument
570 credman_reset_rp(rp); in credman_rx_rp()
584 if ((r = cbor_parse_reply(msg, (size_t)msglen, rp, in credman_rx_rp()
590 if (rp->n_alloc == 0) { in credman_rx_rp()
596 /* parse the first rp */ in credman_rx_rp()
597 if ((r = cbor_parse_reply(msg, (size_t)msglen, &rp->ptr[0], in credman_rx_rp()
602 rp->n_rx = 1; in credman_rx_rp()
612 credman_rx_next_rp(fido_dev_t *dev, fido_credman_rp_t *rp, int *ms) in credman_rx_next_rp() argument
630 if (rp->n_rx >= rp->n_alloc) { in credman_rx_next_rp()
631 fido_log_debug("%s: n_rx=%zu, n_alloc=%zu", __func__, rp->n_rx, in credman_rx_next_rp()
632 rp->n_alloc); in credman_rx_next_rp()
637 if ((r = cbor_parse_reply(msg, (size_t)msglen, &rp->ptr[rp->n_rx], in credman_rx_next_rp()
651 credman_get_rp_wait(fido_dev_t *dev, fido_credman_rp_t *rp, const char *pin, in credman_get_rp_wait() argument
658 (r = credman_rx_rp(dev, rp, ms)) != FIDO_OK) in credman_get_rp_wait()
661 while (rp->n_rx < rp->n_alloc) { in credman_get_rp_wait()
664 (r = credman_rx_next_rp(dev, rp, ms)) != FIDO_OK) in credman_get_rp_wait()
666 rp->n_rx++; in credman_get_rp_wait()
673 fido_credman_get_dev_rp(fido_dev_t *dev, fido_credman_rp_t *rp, const char *pin) in fido_credman_get_dev_rp() argument
677 return (credman_get_rp_wait(dev, rp, pin, &ms)); in fido_credman_get_dev_rp()
775 fido_credman_rp_t *rp; in fido_credman_rp_free() local
777 if (rp_p == NULL || (rp = *rp_p) == NULL) in fido_credman_rp_free()
780 credman_reset_rp(rp); in fido_credman_rp_free()
781 free(rp); in fido_credman_rp_free()
786 fido_credman_rp_count(const fido_credman_rp_t *rp) in fido_credman_rp_count() argument
788 return (rp->n_rx); in fido_credman_rp_count()
792 fido_credman_rp_id(const fido_credman_rp_t *rp, size_t idx) in fido_credman_rp_id() argument
794 if (idx >= rp->n_alloc) in fido_credman_rp_id()
797 return (rp->ptr[idx].rp_entity.id); in fido_credman_rp_id()
801 fido_credman_rp_name(const fido_credman_rp_t *rp, size_t idx) in fido_credman_rp_name() argument
803 if (idx >= rp->n_alloc) in fido_credman_rp_name()
806 return (rp->ptr[idx].rp_entity.name); in fido_credman_rp_name()
810 fido_credman_rp_id_hash_len(const fido_credman_rp_t *rp, size_t idx) in fido_credman_rp_id_hash_len() argument
812 if (idx >= rp->n_alloc) in fido_credman_rp_id_hash_len()
815 return (rp->ptr[idx].rp_id_hash.len); in fido_credman_rp_id_hash_len()
819 fido_credman_rp_id_hash_ptr(const fido_credman_rp_t *rp, size_t idx) in fido_credman_rp_id_hash_ptr() argument
821 if (idx >= rp->n_alloc) in fido_credman_rp_id_hash_ptr()
824 return (rp->ptr[idx].rp_id_hash.ptr); in fido_credman_rp_id_hash_ptr()