X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=pdns%2Fdnssecinfra.cc;h=233b228b12cff44b102d995a26850f41b51f37d1;hb=7a86189e73f9af20eb704534b290945956505ddf;hp=8d9f9da625ad46adaa2e0e333d884f5c9ec00899;hpb=8be1e797cdb21071af78194be41e82c01cd11a2f;p=thirdparty%2Fpdns.git diff --git a/pdns/dnssecinfra.cc b/pdns/dnssecinfra.cc index 8d9f9da625..233b228b12 100644 --- a/pdns/dnssecinfra.cc +++ b/pdns/dnssecinfra.cc @@ -63,8 +63,14 @@ shared_ptr DNSCryptoKeyEngine::makeFromISCFile(DNSKEYRecordC fp.reset(); shared_ptr dke = makeFromISCString(drc, isc); - if(!dke->checkKey()) { - throw runtime_error("Invalid DNS Private Key in file '"+string(fname)); + vector 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; }