return dpk;
}
+std::unique_ptr<DNSCryptoKeyEngine> DNSCryptoKeyEngine::makeFromPEMString(DNSKEYRecordContent& drc, const std::string& raw)
+{
+ for (const makers_t::value_type& maker : getMakers()) {
+ std::unique_ptr<DNSCryptoKeyEngine> ret = nullptr;
+
+ try {
+ ret = maker.second(maker.first);
+ ret->fromPEMString(drc, raw);
+ return ret;
+ }
+ catch (...) {
+ }
+ }
+
+ return nullptr;
+}
+
std::string DNSCryptoKeyEngine::convertToISC() const
{
storvector_t storvector = this->convertToISCVector();
return dpk;
}
-std::unique_ptr<DNSCryptoKeyEngine> DNSCryptoKeyEngine::makeFromPEMString(DNSKEYRecordContent& drc, const std::string& raw)
-{
- for (const makers_t::value_type& val : getMakers()) {
- std::unique_ptr<DNSCryptoKeyEngine> ret = nullptr;
-
- try {
- ret = val.second(val.first);
- ret->fromPEMString(drc, raw);
- return ret;
- }
- catch (...) {
- }
- }
-
- return nullptr;
-}
-
/**
* Returns the string that should be hashed to create/verify the RRSIG content
*
string zone = cmds.at(1);
string fname = cmds.at(2);
- string line;
+
ifstream ifs(fname.c_str());
- string tmp, interim, raw;
+ string line;
+ string interim;
while (getline(ifs, line)) {
if (line[0] == '-') {
continue;
boost::trim(line);
interim += line;
}
+
+ string raw;
B64Decode(interim, raw);
+
DNSSECPrivateKey dpk;
DNSKEYRecordContent drc;
shared_ptr<DNSCryptoKeyEngine> key(DNSCryptoKeyEngine::makeFromPEMString(drc, raw));