security: Introduce unsetKeyLocator method into SignatureInfo and Signature
Some specific signature types also provide an advisory (non-virtual)
override for unsetKeyLocator that disables reset and throws an
Exception. As before, if an application really wants, it still can
unset the KeyLocator by setting a new SignatureInfo without the
KeyLocator.
Change-Id: Ibefd5f9ffbcb91f8a83e76db8704cba1b984f914
Refs: #1750
diff --git a/src/security/signature-sha256-with-ecdsa.cpp b/src/security/signature-sha256-with-ecdsa.cpp
index 1f67425..91b4a29 100644
--- a/src/security/signature-sha256-with-ecdsa.cpp
+++ b/src/security/signature-sha256-with-ecdsa.cpp
@@ -39,4 +39,10 @@
}
}
+void
+SignatureSha256WithEcdsa::unsetKeyLocator()
+{
+ throw Error("KeyLocator cannot be reset for SignatureSha256WithEcdsa");
+}
+
} // namespace ndn
diff --git a/src/security/signature-sha256-with-ecdsa.hpp b/src/security/signature-sha256-with-ecdsa.hpp
index a20e6b0..4b0eb7f 100644
--- a/src/security/signature-sha256-with-ecdsa.hpp
+++ b/src/security/signature-sha256-with-ecdsa.hpp
@@ -48,6 +48,9 @@
explicit
SignatureSha256WithEcdsa(const Signature& signature);
+private:
+ void
+ unsetKeyLocator();
};
} // namespace ndn
diff --git a/src/security/signature-sha256-with-rsa.cpp b/src/security/signature-sha256-with-rsa.cpp
index bc4fe65..3c84b54 100644
--- a/src/security/signature-sha256-with-rsa.cpp
+++ b/src/security/signature-sha256-with-rsa.cpp
@@ -39,4 +39,10 @@
}
}
+void
+SignatureSha256WithRsa::unsetKeyLocator()
+{
+ throw Error("KeyLocator cannot be reset for SignatureSha256WithRsa");
+}
+
} // namespace ndn
diff --git a/src/security/signature-sha256-with-rsa.hpp b/src/security/signature-sha256-with-rsa.hpp
index 94f9e30..937794b 100644
--- a/src/security/signature-sha256-with-rsa.hpp
+++ b/src/security/signature-sha256-with-rsa.hpp
@@ -47,6 +47,10 @@
explicit
SignatureSha256WithRsa(const Signature& signature);
+
+private:
+ void
+ unsetKeyLocator();
};
} // namespace ndn