32 if (innerPolicy ==
nullptr) {
33 NDN_THROW(std::invalid_argument(
"Inner policy argument cannot be nullptr"));
71 state.
fail({ValidationError::Code::INVALID_KEY_LOCATOR,
"KeyLocator is missing"});
77 state.
fail({ValidationError::Code::INVALID_KEY_LOCATOR,
"KeyLocator type is not Name"});
113 state.
fail({ValidationError::Code::INVALID_KEY_LOCATOR,
114 "Invalid signed Interest: " + std::string(e.what())});
118 return getKeyLocatorName(si, state);
Block blockFromValue() const
Represents a Data packet.
const SignatureInfo & getSignatureInfo() const noexcept
Get SignatureInfo.
Represents an Interest packet.
const Name & getName() const noexcept
optional< SignatureInfo > getSignatureInfo() const
Get the InterestSignatureInfo.
Represents an absolute name.
PartialName getPrefix(ssize_t nComponents) const
Returns a prefix of the name.
const Component & at(ssize_t i) const
Returns an immutable reference to the component at the specified index, with bounds checking.
size_t size() const
Returns the number of components.
void toUri(std::ostream &os, name::UriFormat format=name::UriFormat::DEFAULT) const
Write URI representation of the name to the output stream.
Represents a SignatureInfo or InterestSignatureInfo TLV element.
int32_t getSignatureType() const noexcept
Get SignatureType.
bool hasKeyLocator() const noexcept
Check if KeyLocator is present.
void wireDecode(const Block &wire, Type type=Type::Data)
Decode from wire format.
const KeyLocator & getKeyLocator() const
Get KeyLocator.
provides a tag type for simple types
shared_ptr< T > getTag() const
get a tag item
static const Name & getDigestSha256Identity()
A localhost identity to indicate that the signature is generated using SHA-256.
static const Name & getHmacIdentity()
A localhost identity to indicate that the signature is generated using an HMAC key.
static const name::Component KEY_COMPONENT
static const ssize_t KEY_COMPONENT_OFFSET
Abstraction that implements validation policy for Data and Interest packets.
ValidationPolicy & getInnerPolicy()
Return the inner policy.
void setValidator(Validator &validator)
Set validator to which the policy is associated.
unique_ptr< ValidationPolicy > m_innerPolicy
void setInnerPolicy(unique_ptr< ValidationPolicy > innerPolicy)
Set inner policy.
virtual void fail(const ValidationError &error)=0
Call the failure callback.
Interface for validating data and interest packets.
represents an error in TLV encoding or decoding
Name extractIdentityNameFromKeyLocator(const Name &keyLocator)
Extract identity name from key, version-less certificate, or certificate name.
@ V03
Sign Interest using Packet Specification v0.3 semantics.
const size_t MIN_SIZE
minimal number of components for Signed Interest
const ssize_t POS_SIG_INFO