]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
report checkKey errors upwards in makeFromISCFile exception 7516/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Sun, 24 Feb 2019 10:32:12 +0000 (11:32 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 28 Feb 2019 09:26:21 +0000 (10:26 +0100)
pdns/dnssecinfra.cc

index 8d9f9da625ad46adaa2e0e333d884f5c9ec00899..233b228b12cff44b102d995a26850f41b51f37d1 100644 (file)
@@ -63,8 +63,14 @@ shared_ptr<DNSCryptoKeyEngine> DNSCryptoKeyEngine::makeFromISCFile(DNSKEYRecordC
   fp.reset();
 
   shared_ptr<DNSCryptoKeyEngine> dke = makeFromISCString(drc, isc);
-  if(!dke->checkKey()) {
-    throw runtime_error("Invalid DNS Private Key in file '"+string(fname));
+  vector<string> checkKeyErrors;
+
+  if(!dke->checkKey(&checkKeyErrors)) {
+    string reason;
+    if(checkKeyErrors.size()) {
+      reason = " ("+boost::algorithm::join(checkKeyErrors, ", ")+")";
+    }
+    throw runtime_error("Invalid DNS Private Key in file '"+string(fname)+"'"+reason);
   }
   return dke;
 }