return meta=="1";
}
+bool DNSSECKeeper::isSignalingZone(const ZoneName& name, bool useCache)
+{
+ string meta;
+ if (useCache) {
+ getFromMeta(name, "SIGNALING-ZONE", meta);
+ }
+ else {
+ getFromMetaNoCache(name, "SIGNALING-ZONE", meta);
+ }
+ return meta=="1";
+}
bool DNSSECKeeper::addKey(const ZoneName& name, bool setSEPBit, int algorithm, int64_t& keyId, int bits, bool active, bool published)
{
bool isPresigned(const ZoneName& zname, bool useCache=true);
bool setPresigned(const ZoneName& zname);
bool unsetPresigned(const ZoneName& zname);
+ bool isSignalingZone(const ZoneName& zname, bool useCache=true);
bool setPublishCDNSKEY(const ZoneName& zname, bool deleteAlg);
void getPublishCDNSKEY(const ZoneName& zname, std::string& value);
bool unsetPublishCDNSKEY(const ZoneName& zname);
bool PacketHandler::tryAuthSignal(DNSPacket& p, std::unique_ptr<DNSPacket>& r, DNSName &target) {
DLOG(g_log<<Logger::Warning<<"Let's try authenticated DNSSEC bootstrapping (RFC 9615) ..."<<endl);
+ if(d_sd.zonename.operator const DNSName&().getRawLabel(0) != "_signal" || !d_dk.isSignalingZone(d_sd.zonename)) {
+ return false;
+ }
// Check that we're doing online signing in narrow mode (as we don't know next owner names)
if(!d_dk.isSecuredZone(d_sd.zonename) || d_dk.isPresigned(d_sd.zonename)) {
{"PRESIGNED", true},
{"PUBLISH-CDNSKEY", false},
{"PUBLISH-CDS", false},
+ {"SIGNALING-ZONE", false},
{"SLAVE-RENOTIFY", false},
{"SOA-EDIT", true},
{"SOA-EDIT-DNSUPDATE", false},