From f937279230a65d681645413016442b5d8d7d5fe4 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Tue, 3 May 2016 14:41:23 +0200 Subject: [PATCH] Add key check on `pdnsutils hsm assign` --- pdns/pdnsutil.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pdns/pdnsutil.cc b/pdns/pdnsutil.cc index 96c32eef1..cd6952e40 100644 --- a/pdns/pdnsutil.cc +++ b/pdns/pdnsutil.cc @@ -2949,8 +2949,14 @@ loadMainConfig(g_vm["config-dir"].as()); DNSKEYRecordContent drc; DNSSECPrivateKey dpk; dpk.d_flags = (keyOrZone ? 257 : 256); - dpk.setKey(shared_ptr(DNSCryptoKeyEngine::makeFromISCString(drc, iscString.str()))); - + + shared_ptr dke(DNSCryptoKeyEngine::makeFromISCString(drc, iscString.str())); + if(!dke->checkKey()) { + cerr << "Invalid DNS Private Key in engine " << module << " slot " << slot << std::endl; + return 1; + } + dpk.setKey(dke); + // make sure this key isn't being reused. B.getDomainKeys(zone, 0, keys); id = -1; -- 2.49.0