Lines Matching defs:hostkeys

65 struct hostkeys {
222 struct hostkeys *
225 struct hostkeys *ret = xcalloc(1, sizeof(*ret));
234 struct hostkeys *hostkeys;
241 struct hostkeys *hostkeys = ctx->hostkeys;
245 error("%s:%ld: parse error in hostkeys file",
254 if ((tmp = reallocarray(hostkeys->entries,
255 hostkeys->num_entries + 1, sizeof(*hostkeys->entries))) == NULL)
257 hostkeys->entries = tmp;
258 hostkeys->entries[hostkeys->num_entries].host = xstrdup(ctx->host);
259 hostkeys->entries[hostkeys->num_entries].file = xstrdup(l->path);
260 hostkeys->entries[hostkeys->num_entries].line = l->linenum;
261 hostkeys->entries[hostkeys->num_entries].key = l->key;
263 hostkeys->entries[hostkeys->num_entries].marker = l->marker;
264 hostkeys->num_entries++;
271 load_hostkeys(struct hostkeys *hostkeys, const char *host, const char *path)
278 ctx.hostkeys = hostkeys;
292 free_hostkeys(struct hostkeys *hostkeys)
296 for (i = 0; i < hostkeys->num_entries; i++) {
297 free(hostkeys->entries[i].host);
298 free(hostkeys->entries[i].file);
299 sshkey_free(hostkeys->entries[i].key);
300 explicit_bzero(hostkeys->entries + i, sizeof(*hostkeys->entries));
302 free(hostkeys->entries);
303 explicit_bzero(hostkeys, sizeof(*hostkeys));
304 free(hostkeys);
308 check_key_not_revoked(struct hostkeys *hostkeys, struct sshkey *k)
313 for (i = 0; i < hostkeys->num_entries; i++) {
314 if (hostkeys->entries[i].marker != MRK_REVOKE)
316 if (sshkey_equal_public(k, hostkeys->entries[i].key))
320 hostkeys->entries[i].key))
342 check_hostkeys_by_key_or_type(struct hostkeys *hostkeys,
354 for (i = 0; i < hostkeys->num_entries; i++) {
355 if (proto == 1 && hostkeys->entries[i].key->type != KEY_RSA1)
357 if (proto == 2 && hostkeys->entries[i].key->type == KEY_RSA1)
359 if (hostkeys->entries[i].marker != want_marker)
362 if (hostkeys->entries[i].key->type != keytype)
366 *found = hostkeys->entries + i;
367 k = hostkeys->entries[i].key;
372 hostkeys->entries[i].key)) {
376 *found = hostkeys->entries + i;
380 if (sshkey_equal(k, hostkeys->entries[i].key)) {
383 *found = hostkeys->entries + i;
389 *found = hostkeys->entries + i;
392 if (check_key_not_revoked(hostkeys, k) != 0) {
401 check_key_in_hostkeys(struct hostkeys *hostkeys, struct sshkey *key,
406 return check_hostkeys_by_key_or_type(hostkeys, key, 0, found);
410 lookup_key_in_hostkeys_by_type(struct hostkeys *hostkeys, int keytype,
413 return (check_hostkeys_by_key_or_type(hostkeys, NULL, keytype,