Lines Matching full:peer
41 * Peer info structures are used togeter with hx509_crypto_select() to
48 * Allocate a new peer info structure an init it to default values.
51 * @param peer return an allocated peer, free with hx509_peer_info_free().
59 hx509_peer_info_alloc(hx509_context context, hx509_peer_info *peer) in hx509_peer_info_alloc() argument
61 *peer = calloc(1, sizeof(**peer)); in hx509_peer_info_alloc()
62 if (*peer == NULL) { in hx509_peer_info_alloc()
71 free_cms_alg(hx509_peer_info peer) in free_cms_alg() argument
73 if (peer->val) { in free_cms_alg()
75 for (i = 0; i < peer->len; i++) in free_cms_alg()
76 free_AlgorithmIdentifier(&peer->val[i]); in free_cms_alg()
77 free(peer->val); in free_cms_alg()
78 peer->val = NULL; in free_cms_alg()
79 peer->len = 0; in free_cms_alg()
84 * Free a peer info structure.
86 * @param peer peer info to be freed.
92 hx509_peer_info_free(hx509_peer_info peer) in hx509_peer_info_free() argument
94 if (peer == NULL) in hx509_peer_info_free()
96 if (peer->cert) in hx509_peer_info_free()
97 hx509_cert_free(peer->cert); in hx509_peer_info_free()
98 free_cms_alg(peer); in hx509_peer_info_free()
99 memset(peer, 0, sizeof(*peer)); in hx509_peer_info_free()
100 free(peer); in hx509_peer_info_free()
104 * Set the certificate that remote peer is using.
106 * @param peer peer info to update
107 * @param cert cerificate of the remote peer.
115 hx509_peer_info_set_cert(hx509_peer_info peer, in hx509_peer_info_set_cert() argument
118 if (peer->cert) in hx509_peer_info_set_cert()
119 hx509_cert_free(peer->cert); in hx509_peer_info_set_cert()
120 peer->cert = hx509_cert_ref(cert); in hx509_peer_info_set_cert()
125 * Add an additional algorithm that the peer supports.
128 * @param peer the peer to set the new algorithms for
138 hx509_peer_info peer, in hx509_peer_info_add_cms_alg() argument
144 ptr = realloc(peer->val, sizeof(peer->val[0]) * (peer->len + 1)); in hx509_peer_info_add_cms_alg()
149 peer->val = ptr; in hx509_peer_info_add_cms_alg()
150 ret = copy_AlgorithmIdentifier(val, &peer->val[peer->len]); in hx509_peer_info_add_cms_alg()
152 peer->len += 1; in hx509_peer_info_add_cms_alg()
159 * Set the algorithms that the peer supports.
162 * @param peer the peer to set the new algorithms for
173 hx509_peer_info peer, in hx509_peer_info_set_cms_algs() argument
179 free_cms_alg(peer); in hx509_peer_info_set_cms_algs()
181 peer->val = calloc(len, sizeof(*peer->val)); in hx509_peer_info_set_cms_algs()
182 if (peer->val == NULL) { in hx509_peer_info_set_cms_algs()
183 peer->len = 0; in hx509_peer_info_set_cms_algs()
187 peer->len = len; in hx509_peer_info_set_cms_algs()
190 ret = copy_AlgorithmIdentifier(&val[i], &peer->val[i]); in hx509_peer_info_set_cms_algs()
193 free_cms_alg(peer); in hx509_peer_info_set_cms_algs()
207 hx509_peer_info_parse_smime(hx509_peer_info peer,
214 hx509_peer_info_unparse_smime(hx509_peer_info peer,
225 hx509_peer_info_parse(hx509_peer_info peer,
232 hx509_peer_info_unparse(hx509_peer_info peer,