signature: deprecate Signature in favor of SignatureInfo
The Signature in Data packets and Certificates
has been deprecated in favor of separate objects
representing the Signature info and value.
Also deprecate type-specific Signature helpers.
refs #4804
Change-Id: Iab5b5c618e75cc11d31801d86a89a550a6add7a0
diff --git a/tests/unit/security/digest-sha256.t.cpp b/tests/unit/security/digest-sha256.t.cpp
index d3fcf4a..8b5e11d 100644
--- a/tests/unit/security/digest-sha256.t.cpp
+++ b/tests/unit/security/digest-sha256.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2020 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -53,7 +53,7 @@
testData.setContent(reinterpret_cast<uint8_t*>(content), 5);
m_keyChain.sign(testData, security::SigningInfo(security::SigningInfo::SIGNER_TYPE_SHA256));
- BOOST_CHECK_THROW(testData.getSignature().getKeyLocator(), ndn::SignatureInfo::Error);
+ BOOST_CHECK_THROW(testData.getSignatureInfo().getKeyLocator(), ndn::SignatureInfo::Error);
verifyDigest(testData, DigestAlgorithm::SHA256);
}
diff --git a/tests/unit/security/pib/pib-data-fixture.cpp b/tests/unit/security/pib/pib-data-fixture.cpp
index d2ddd10..0d12fd5 100644
--- a/tests/unit/security/pib/pib-data-fixture.cpp
+++ b/tests/unit/security/pib/pib-data-fixture.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2020 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -60,7 +60,7 @@
// info.setKeyLocator(KeyLocator(keyName));
// info.setValidityPeriod(ValidityPeriod(time::fromIsoString("20170102T000000"),
// time::fromIsoString("20180102T000000")));
-// cert.setSignature(Signature(info, Block()));
+// cert.setSignatureInfo(info);
// EncodingBuffer buf;
// cert.wireEncode(buf, true);
diff --git a/tests/unit/security/pib/pib-impl.t.cpp b/tests/unit/security/pib/pib-impl.t.cpp
index 500e5fd..7b13306 100644
--- a/tests/unit/security/pib/pib-impl.t.cpp
+++ b/tests/unit/security/pib/pib-impl.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2013-2019 Regents of the University of California.
+ * Copyright (c) 2013-2020 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -331,7 +331,8 @@
// Create a fake cert with the same name
auto cert2 = this->id1Key2Cert1;
cert2.setName(this->id1Key1Cert1.getName());
- cert2.setSignature(this->id1Key2Cert1.getSignature());
+ cert2.setSignatureInfo(this->id1Key2Cert1.getSignatureInfo());
+ cert2.setSignatureValue(this->id1Key2Cert1.getSignatureValue());
this->pib.addCertificate(cert2);
auto cert3 = this->pib.getCertificate(this->id1Key1Cert1.getName());
diff --git a/tests/unit/security/v2/certificate.t.cpp b/tests/unit/security/v2/certificate.t.cpp
index 9d04b6d..dc1d8b5 100644
--- a/tests/unit/security/v2/certificate.t.cpp
+++ b/tests/unit/security/v2/certificate.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2020 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -127,24 +127,16 @@
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
-Signature
-generateFakeSignature()
+static void
+generateFakeSignature(Data& data)
{
- Block block1(SIG_INFO, sizeof(SIG_INFO));
- SignatureInfo signatureInfo(block1);
+ SignatureInfo signatureInfo(Block(SIG_INFO, sizeof(SIG_INFO)));
+ signatureInfo.setKeyLocator(KeyLocator(Name("/ndn/site1/KEY/ksk-2516425377094")));
+ signatureInfo.setValidityPeriod(ValidityPeriod(time::fromIsoString("20141111T050000"),
+ time::fromIsoString("20141111T060000")));
- Name keyLocatorName("/ndn/site1/KEY/ksk-2516425377094");
- KeyLocator keyLocator(keyLocatorName);
- signatureInfo.setKeyLocator(keyLocator);
-
- ValidityPeriod period(time::fromIsoString("20141111T050000"), time::fromIsoString("20141111T060000"));
- signatureInfo.setValidityPeriod(period);
-
- Signature signature(signatureInfo);
- Block block2(SIG_VALUE, sizeof(SIG_VALUE));
- signature.setValue(block2);
-
- return signature;
+ data.setSignatureInfo(signatureInfo);
+ data.setSignatureValue(Block(SIG_VALUE, sizeof(SIG_VALUE)));
}
BOOST_AUTO_TEST_CASE(Construction)
@@ -157,7 +149,7 @@
BOOST_CHECK_EQUAL(certificate.getIdentity(), "/ndn/site1");
BOOST_CHECK_EQUAL(certificate.getIssuerId(), name::Component("0123"));
BOOST_CHECK_EQUAL(certificate.getKeyId(), name::Component("ksk-1416425377094"));
- BOOST_CHECK_EQUAL(certificate.getSignature().getKeyLocator().getName(), "/ndn/site1/KEY/ksk-2516425377094");
+ BOOST_CHECK_EQUAL(certificate.getSignatureInfo().getKeyLocator().getName(), "/ndn/site1/KEY/ksk-2516425377094");
BOOST_CHECK_EQUAL(boost::lexical_cast<std::string>(certificate.getValidityPeriod()), "(20150814T223739, 20150818T223738)");
BOOST_CHECK_THROW(certificate.getExtension(12345), ndn::SignatureInfo::Error);
@@ -174,14 +166,14 @@
certificate.setName("/ndn/site1/KEY/ksk-1416425377094/0123/%FD%00%00%01I%C9%8B");
certificate.setFreshnessPeriod(1_h);
certificate.setContent(PUBLIC_KEY, sizeof(PUBLIC_KEY));
- certificate.setSignature(generateFakeSignature());
+ generateFakeSignature(certificate);
BOOST_CHECK_EQUAL(certificate.getName(), "/ndn/site1/KEY/ksk-1416425377094/0123/%FD%00%00%01I%C9%8B");
BOOST_CHECK_EQUAL(certificate.getKeyName(), "/ndn/site1/KEY/ksk-1416425377094");
BOOST_CHECK_EQUAL(certificate.getIdentity(), "/ndn/site1");
BOOST_CHECK_EQUAL(certificate.getIssuerId(), name::Component("0123"));
BOOST_CHECK_EQUAL(certificate.getKeyId(), name::Component("ksk-1416425377094"));
- BOOST_CHECK_EQUAL(certificate.getSignature().getKeyLocator().getName(), "/ndn/site1/KEY/ksk-2516425377094");
+ BOOST_CHECK_EQUAL(certificate.getSignatureInfo().getKeyLocator().getName(), "/ndn/site1/KEY/ksk-2516425377094");
BOOST_CHECK_EQUAL(boost::lexical_cast<std::string>(certificate.getValidityPeriod()), "(20141111T050000, 20141111T060000)");
BOOST_CHECK_THROW(certificate.getExtension(12345), ndn::SignatureInfo::Error);
@@ -194,7 +186,7 @@
certificate.setName("/ndn/site1/KEY/ksk-1416425377094/0123/%FD%00%00%01I%C9%8B");
certificate.setFreshnessPeriod(1_h);
certificate.setContent(PUBLIC_KEY, sizeof(PUBLIC_KEY));
- certificate.setSignature(generateFakeSignature());
+ generateFakeSignature(certificate);
BOOST_CHECK_EQUAL(certificate.isValid(), true);
BOOST_CHECK_EQUAL(certificate.isValid(time::fromIsoString("20141111T045959")), false);
@@ -213,7 +205,7 @@
BOOST_CHECK_NO_THROW((Certificate(certBase)));
m_certBase = Data(certBase);
- m_certBase.setSignature(generateFakeSignature());
+ generateFakeSignature(m_certBase);
BOOST_CHECK_NO_THROW((Certificate(m_certBase)));
}
@@ -226,7 +218,7 @@
{
Data data(m_certBase);
data.setName("/ndn/site1/ksk-1416425377094/0123/%FD%00%00%01I%C9%8B");
- data.setSignature(generateFakeSignature());
+ generateFakeSignature(data);
BOOST_CHECK_THROW((Certificate(data)), Certificate::Error);
BOOST_CHECK_THROW((Certificate(std::move(data))), Certificate::Error);
@@ -236,7 +228,7 @@
{
Data data(m_certBase);
data.setContentType(tlv::ContentType_Blob);
- data.setSignature(generateFakeSignature());
+ generateFakeSignature(data);
BOOST_CHECK_THROW((Certificate(data)), Certificate::Error);
BOOST_CHECK_THROW((Certificate(std::move(data))), Certificate::Error);
@@ -246,14 +238,14 @@
{
Data data(m_certBase);
data.setContent(nullptr, 0);
- data.setSignature(generateFakeSignature());
+ generateFakeSignature(data);
BOOST_CHECK_THROW((Certificate(data)), Certificate::Error);
BOOST_CHECK_THROW((Certificate(std::move(data))), Certificate::Error);
Certificate cert(m_certBase);
cert.setContent(nullptr, 0);
- cert.setSignature(generateFakeSignature());
+ generateFakeSignature(cert);
BOOST_CHECK_THROW(cert.getPublicKey(), Certificate::Error);
}
diff --git a/tests/unit/security/v2/key-chain.t.cpp b/tests/unit/security/v2/key-chain.t.cpp
index 1d25e59..b065fb2 100644
--- a/tests/unit/security/v2/key-chain.t.cpp
+++ b/tests/unit/security/v2/key-chain.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2013-2019 Regents of the University of California.
+ * Copyright (c) 2013-2020 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -355,7 +355,7 @@
Signature interestSignature(interest.getName()[-2].blockFromValue(), interest.getName()[-1].blockFromValue());
if (signingInfo.getSignerType() == SigningInfo::SIGNER_TYPE_SHA256) {
- BOOST_CHECK_EQUAL(data.getSignature().getType(), tlv::DigestSha256);
+ BOOST_CHECK_EQUAL(data.getSignatureInfo().getSignatureType(), tlv::DigestSha256);
BOOST_CHECK_EQUAL(interestSignature.getType(), tlv::DigestSha256);
BOOST_CHECK(verifyDigest(data, DigestAlgorithm::SHA256));
@@ -363,17 +363,17 @@
}
else if (signingInfo.getSignerType() == SigningInfo::SIGNER_TYPE_HMAC) {
Name keyName = signingInfo.getSignerName();
- BOOST_CHECK_EQUAL(data.getSignature().getType(), tlv::SignatureHmacWithSha256);
+ BOOST_CHECK_EQUAL(data.getSignatureInfo().getSignatureType(), tlv::SignatureHmacWithSha256);
BOOST_CHECK_EQUAL(interestSignature.getType(), tlv::SignatureHmacWithSha256);
BOOST_CHECK(bool(verifySignature(data, tpm, keyName, DigestAlgorithm::SHA256)));
BOOST_CHECK(bool(verifySignature(interest, tpm, keyName, DigestAlgorithm::SHA256)));
}
else {
- BOOST_CHECK_EQUAL(data.getSignature().getType(), tlv::SignatureSha256WithEcdsa);
+ BOOST_CHECK_EQUAL(data.getSignatureInfo().getSignatureType(), tlv::SignatureSha256WithEcdsa);
BOOST_CHECK_EQUAL(interestSignature.getType(), tlv::SignatureSha256WithEcdsa);
- BOOST_CHECK_EQUAL(data.getSignature().getKeyLocator().getName(), cert.getName().getPrefix(-2));
+ BOOST_CHECK_EQUAL(data.getSignatureInfo().getKeyLocator().getName(), cert.getName().getPrefix(-2));
BOOST_CHECK_EQUAL(interestSignature.getKeyLocator().getName(), cert.getName().getPrefix(-2));
BOOST_CHECK(verifySignature(data, key));
@@ -392,16 +392,16 @@
// Create identity with EC key and the corresponding self-signed certificate
Identity id = addIdentity("/ndn/test/ec", EcKeyParams());
BOOST_CHECK_NO_THROW(m_keyChain.sign(data, signingByIdentity(id.getName())));
- BOOST_CHECK_EQUAL(data.getSignature().getType(),
+ BOOST_CHECK_EQUAL(data.getSignatureInfo().getSignatureType(),
KeyChain::getSignatureType(EcKeyParams().getKeyType(), DigestAlgorithm::SHA256));
- BOOST_CHECK(id.getName().isPrefixOf(data.getSignature().getKeyLocator().getName()));
+ BOOST_CHECK(id.getName().isPrefixOf(data.getSignatureInfo().getKeyLocator().getName()));
// Create identity with RSA key and the corresponding self-signed certificate
id = addIdentity("/ndn/test/rsa", RsaKeyParams());
BOOST_CHECK_NO_THROW(m_keyChain.sign(data, signingByIdentity(id.getName())));
- BOOST_CHECK_EQUAL(data.getSignature().getType(),
+ BOOST_CHECK_EQUAL(data.getSignatureInfo().getSignatureType(),
KeyChain::getSignatureType(RsaKeyParams().getKeyType(), DigestAlgorithm::SHA256));
- BOOST_CHECK(id.getName().isPrefixOf(data.getSignature().getKeyLocator().getName()));
+ BOOST_CHECK(id.getName().isPrefixOf(data.getSignatureInfo().getKeyLocator().getName()));
}
BOOST_FIXTURE_TEST_CASE(ImportPrivateKey, IdentityManagementFixture)