resolved-dns-trust-anchor.h revision 8e54f5d90a6b9dd1ff672fb97ea98de66c49e332
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder#pragma once
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder/***
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder This file is part of systemd.
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder Copyright 2015 Lennart Poettering
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder systemd is free software; you can redistribute it and/or modify it
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder under the terms of the GNU Lesser General Public License as published by
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder the Free Software Foundation; either version 2.1 of the License, or
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder (at your option) any later version.
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder systemd is distributed in the hope that it will be useful, but
a84fcef461d6ef423fa3bdefc29d745bd34cb331Christian Maeder WITHOUT ANY WARRANTY; without even the implied warranty of
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder Lesser General Public License for more details.
a84fcef461d6ef423fa3bdefc29d745bd34cb331Christian Maeder
a84fcef461d6ef423fa3bdefc29d745bd34cb331Christian Maeder You should have received a copy of the GNU Lesser General Public License
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder along with systemd; If not, see <http://www.gnu.org/licenses/>.
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder***/
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maedertypedef struct DnsTrustAnchor DnsTrustAnchor;
a84fcef461d6ef423fa3bdefc29d745bd34cb331Christian Maeder
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder#include "hashmap.h"
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder#include "resolved-dns-answer.h"
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder#include "resolved-dns-rr.h"
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder/* This contains a fixed database mapping domain names to DS or DNSKEY records. */
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maederstruct DnsTrustAnchor {
806fd9e08b8b68eeeb0eccfd8892046a2985e594Christian Maeder Hashmap *positive_by_key;
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder Set *negative_by_name;
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder};
11ad38296d4182aac74ce6d5bef27911fbc9690dChristian Maeder
int dns_trust_anchor_load(DnsTrustAnchor *d);
void dns_trust_anchor_flush(DnsTrustAnchor *d);
int dns_trust_anchor_lookup_positive(DnsTrustAnchor *d, const DnsResourceKey* key, DnsAnswer **answer);
int dns_trust_anchor_lookup_negative(DnsTrustAnchor *d, const char *name);