tools: Properly sign command interests after switching to v2 Keychain
Add use of CommandInterestSigner, which is now required to create
command interests.
Change-Id: I33f3c4bde565c1c2c44c55af228eb53b60177d8d
Refs: #4377
diff --git a/tools/ndnputfile.cpp b/tools/ndnputfile.cpp
index 908a885..6b34376 100644
--- a/tools/ndnputfile.cpp
+++ b/tools/ndnputfile.cpp
@@ -21,6 +21,7 @@
#include "../src/repo-command-response.hpp"
#include <ndn-cxx/face.hpp>
+#include <ndn-cxx/security/command-interest-signer.hpp>
#include <ndn-cxx/security/key-chain.hpp>
#include <ndn-cxx/security/signing-helpers.hpp>
#include <ndn-cxx/util/scheduler.hpp>
@@ -83,6 +84,7 @@
, m_checkPeriod(DEFAULT_CHECK_PERIOD)
, m_currentSegmentNo(0)
, m_isFinished(false)
+ , m_cmdSigner(m_keyChain)
{
}
@@ -161,6 +163,7 @@
typedef std::map<uint64_t, shared_ptr<ndn::Data> > DataContainer;
DataContainer m_data;
+ ndn::security::CommandInterestSigner m_cmdSigner;
};
void
@@ -433,17 +436,19 @@
NdnPutFile::generateCommandInterest(const ndn::Name& commandPrefix, const std::string& command,
const RepoCommandParameter& commandParameter)
{
- ndn::Interest interest(ndn::Name(commandPrefix)
- .append(command)
- .append(commandParameter.wireEncode()));
- interest.setInterestLifetime(interestLifetime);
+ Name cmd = commandPrefix;
+ cmd
+ .append(command)
+ .append(commandParameter.wireEncode());
+ ndn::Interest interest;
if (identityForCommand.empty())
- m_keyChain.sign(interest);
+ interest = m_cmdSigner.makeCommandInterest(cmd);
else {
- m_keyChain.sign(interest, ndn::signingByIdentity(identityForCommand));
+ interest = m_cmdSigner.makeCommandInterest(cmd, ndn::signingByIdentity(identityForCommand));
}
+ interest.setInterestLifetime(interestLifetime);
return interest;
}
diff --git a/tools/ndnrepowatch.cpp b/tools/ndnrepowatch.cpp
index 63a26ca..16be915 100644
--- a/tools/ndnrepowatch.cpp
+++ b/tools/ndnrepowatch.cpp
@@ -21,6 +21,7 @@
#include "../src/repo-command-response.hpp"
#include <ndn-cxx/face.hpp>
+#include <ndn-cxx/security/command-interest-signer.hpp>
#include <ndn-cxx/security/key-chain.hpp>
#include <ndn-cxx/security/signing-helpers.hpp>
#include <ndn-cxx/util/scheduler.hpp>
@@ -76,9 +77,9 @@
, maxInterestNum(0)
, status(START)
, isVerbose(false)
-
, m_scheduler(m_face.getIoService())
, m_checkPeriod(DEFAULT_CHECK_PERIOD)
+ , m_cmdSigner(m_keyChain)
{
}
@@ -140,6 +141,7 @@
ndn::Name m_dataPrefix;
ndn::KeyChain m_keyChain;
typedef std::map<uint64_t, shared_ptr<ndn::Data> > DataContainer;
+ ndn::security::CommandInterestSigner m_cmdSigner;
};
void
@@ -283,17 +285,19 @@
NdnRepoWatch::generateCommandInterest(const ndn::Name& commandPrefix, const std::string& command,
const RepoCommandParameter& commandParameter)
{
- ndn::Interest interest(ndn::Name(commandPrefix)
- .append(command)
- .append(commandParameter.wireEncode()));
- interest.setInterestLifetime(interestLifetime);
+ Name cmd = commandPrefix;
+ cmd
+ .append(command)
+ .append(commandParameter.wireEncode());
+ ndn::Interest interest;
if (identityForCommand.empty())
- m_keyChain.sign(interest);
+ interest = m_cmdSigner.makeCommandInterest(cmd);
else {
- m_keyChain.sign(interest, ndn::signingByIdentity(identityForCommand));
+ interest = m_cmdSigner.makeCommandInterest(cmd, ndn::signingByIdentity(identityForCommand));
}
+ interest.setInterestLifetime(interestLifetime);
return interest;
}