Lines Matching defs:dch
221 free_dest_constraint_hop(struct dest_constraint_hop *dch)
225 if (dch == NULL)
227 free(dch->user);
228 free(dch->hostname);
229 for (i = 0; i < dch->nkeys; i++)
230 sshkey_free(dch->keys[i]);
231 free(dch->keys);
232 free(dch->key_is_ca);
249 dup_dest_constraint_hop(const struct dest_constraint_hop *dch,
255 out->user = dch->user == NULL ? NULL : xstrdup(dch->user);
256 out->hostname = dch->hostname == NULL ? NULL : xstrdup(dch->hostname);
257 out->is_ca = dch->is_ca;
258 out->nkeys = dch->nkeys;
263 for (i = 0; i < dch->nkeys; i++) {
264 if (dch->keys[i] != NULL &&
265 (r = sshkey_from_private(dch->keys[i],
268 out->key_is_ca[i] = dch->key_is_ca[i];
291 dump_dest_constraint_hop(const struct dest_constraint_hop *dch)
297 dch->user == NULL ? "(null)" : dch->user,
298 dch->hostname == NULL ? "(null)" : dch->hostname,
299 dch->is_ca, dch->nkeys);
300 for (i = 0; i < dch->nkeys; i++) {
302 if (dch->keys[i] != NULL &&
303 (fp = sshkey_fingerprint(dch->keys[i],
306 debug_f("key %u/%u: %s%s%s key_is_ca %d", i, dch->nkeys,
307 dch->keys[i] == NULL ? "" : sshkey_ssh_name(dch->keys[i]),
308 dch->keys[i] == NULL ? "" : " ",
309 dch->keys[i] == NULL ? "none" : fp,
310 dch->key_is_ca[i]);
351 const struct dest_constraint_hop *dch)
354 const char *hostname = dch->hostname ? dch->hostname : "(ORIGIN)";
365 tag, hostname, sshkey_type(key), fp, dch->nkeys);
367 for (i = 0; i < dch->nkeys; i++) {
368 if (dch->keys[i] == NULL)
371 if ((fp = sshkey_fingerprint(dch->keys[i], SSH_FP_HASH_DEFAULT,
375 dch->key_is_ca[i] ? "CA " : "",
376 sshkey_type(dch->keys[i]), fp);
380 if (dch->key_is_ca[i] ||
381 !sshkey_equal(key, dch->keys[i]))
386 if (!dch->key_is_ca[i])
390 if (!sshkey_equal(key->cert->signature_key, dch->keys[i]))
1069 parse_dest_constraint_hop(struct sshbuf *b, struct dest_constraint_hop *dch)
1077 memset(dch, '\0', sizeof(*dch));
1078 if ((r = sshbuf_get_cstring(b, &dch->user, NULL)) != 0 ||
1079 (r = sshbuf_get_cstring(b, &dch->hostname, NULL)) != 0 ||
1089 if (*dch->hostname == '\0') {
1090 free(dch->hostname);
1091 dch->hostname = NULL;
1093 if (*dch->user == '\0') {
1094 free(dch->user);
1095 dch->user = NULL;
1098 dch->keys = xrecallocarray(dch->keys, dch->nkeys,
1099 dch->nkeys + 1, sizeof(*dch->keys));
1100 dch->key_is_ca = xrecallocarray(dch->key_is_ca, dch->nkeys,
1101 dch->nkeys + 1, sizeof(*dch->key_is_ca));
1109 dch->user == NULL ? "" : dch->user,
1110 dch->user == NULL ? "" : "@",
1111 dch->hostname, key_is_ca ? "CA " : "", sshkey_type(k), fp);
1113 dch->keys[dch->nkeys] = k;
1114 dch->key_is_ca[dch->nkeys] = key_is_ca != 0;
1115 dch->nkeys++;