Contains the ndn-cxx security framework. More...
Namespaces | |
| detail | |
| pib | |
| tpm | |
| transform | |
| validator_config | |
Classes | |
| class | AdditionalDescription |
| Represents an AdditionalDescription TLV element. More... | |
| class | CertContainerInterface |
| class | Certificate |
| Represents an NDN certificate. More... | |
| class | CertificateBundleFetcher |
| Fetch certificate bundle from the network. More... | |
| class | CertificateCache |
| Represents a container for verified certificates. More... | |
| class | CertificateFetcher |
| Interface used by the validator to fetch missing certificates. More... | |
| class | CertificateFetcherDirectFetch |
| Extends CertificateFetcherFromNetwork to fetch certificates from the incoming face of the packet. More... | |
| class | CertificateFetcherFromNetwork |
| Fetch missing keys from the network. More... | |
| class | CertificateFetcherOffline |
| Certificate fetcher realization that does not fetch keys (always offline) More... | |
| class | CertificateRequest |
| Request for a certificate, associated with the number of attempts. More... | |
| class | CertificateStorage |
| Storage for trusted anchors, verified certificate cache, and unverified certificate cache. More... | |
| class | DataValidationState |
| Validation state for a data packet. More... | |
| class | DynamicTrustAnchorGroup |
| Dynamic trust anchor group. More... | |
| class | InterestSigner |
| Helper class to create signed Interests. More... | |
| class | InterestValidationState |
| Validation state for an interest packet. More... | |
| class | KeyChain |
| The main interface for signing key management. More... | |
| struct | MakeCertificateOptions |
| Options to KeyChain::makeCertificate(). More... | |
| class | SafeBag |
| A secured container for sensitive information (certificate, private key) More... | |
| class | SigningInfo |
| Signing parameters passed to KeyChain. More... | |
| class | StaticTrustAnchorGroup |
| Static trust anchor group. More... | |
| class | TrustAnchorContainer |
| A container for trust anchors. More... | |
| class | TrustAnchorGroup |
| A group of trust anchors. More... | |
| class | ValidationError |
| Validation error code and optional detailed error message. More... | |
| class | ValidationPolicy |
| Abstraction that implements a validation policy for Interest and Data packets. More... | |
| class | ValidationPolicyAcceptAll |
| A validator policy that accepts any signature of data and interest packets. More... | |
| class | ValidationPolicyCommandInterest |
| Validation policy for stop-and-wait command Interests. More... | |
| class | ValidationPolicySignedInterest |
| Validation policy for signed Interests. More... | |
| class | ValidationPolicySimpleHierarchy |
| Validation policy for a simple hierarchical trust model. More... | |
| class | ValidationState |
| Validation state. More... | |
| class | Validator |
| Interface for validating data and interest packets. More... | |
| class | ValidatorConfig |
| Helper for validator that uses SignedInterest + CommandInterest + Config policy and NetworkFetcher. More... | |
| class | ValidatorNull |
| Validator with "accept-all" policy and offline certificate fetcher. More... | |
| class | ValidityPeriod |
| Represents a ValidityPeriod TLV element. More... | |
Typedefs | |
| using | BundleNameTag = SimpleTag< Name, 1000 > |
| using | DataValidationFailureCallback = std::function< void(const Data &, const ValidationError &)> |
| Callback to report a failed Data validation. More... | |
| using | DataValidationSuccessCallback = std::function< void(const Data &)> |
| Callback to report a successful Data validation. More... | |
| using | FinalBlockIdTag = SimpleTag< name::Component, 1001 > |
| using | InterestValidationFailureCallback = std::function< void(const Interest &, const ValidationError &)> |
| Callback to report a failed Interest validation. More... | |
| using | InterestValidationSuccessCallback = std::function< void(const Interest &)> |
| Callback to report a successful Interest validation. More... | |
| using | SignedInterestFormatTag = SimpleTag< SignedInterestFormat, 1002 > |
Enumerations | |
| enum class | SignedInterestFormat { V03 , V02 } |
Functions | |
| template size_t | AdditionalDescription ::wireEncode<::ndn::encoding::EncoderTag > (::ndn::EncodingBuffer &) const |
| template size_t | AdditionalDescription ::wireEncode<::ndn::encoding::EstimatorTag > (::ndn::EncodingEstimator &) const |
| Name | constructKeyName (const Name &identity, const name::Component &keyId) |
| Construct key name based on the appropriate naming conventions. More... | |
| Name | extractIdentityFromCertName (const Name &certName) |
Extract identity namespace from the certificate name certName. More... | |
| Name | extractIdentityFromKeyName (const Name &keyName) |
Extract identity namespace from the key name keyName. More... | |
| Name | extractIdentityNameFromKeyLocator (const Name &keyLocator) |
| Extract identity name from key, version-less certificate, or certificate name. More... | |
| Name | extractKeyNameFromCertName (const Name &certName) |
Extract key name from the certificate name certName. More... | |
| Validator & | getAcceptAllValidator () |
| Name | getKeyLocatorName (const SignatureInfo &sigInfo, ValidationState &state) |
| Extract the KeyLocator name from a SignatureInfo element. More... | |
| SignatureInfo | getSignatureInfo (const Interest &interest, ValidationState &state) |
| Extract SignatureInfo from a signed Interest. More... | |
| bool | isValidKeyName (const Name &keyName) |
Check if keyName follow the naming conventions for the key name. More... | |
| std::ostream & | operator<< (std::ostream &os, const AdditionalDescription &desc) |
| std::ostream & | operator<< (std::ostream &os, const Certificate &cert) |
| std::ostream & | operator<< (std::ostream &os, const SignedInterestFormat &format) |
| std::ostream & | operator<< (std::ostream &os, const SigningInfo &si) |
| std::ostream & | operator<< (std::ostream &os, const ValidityPeriod &period) |
| std::ostream & | operator<< (std::ostream &os, ValidationError::Code code) |
| template size_t | SafeBag ::wireEncode<::ndn::encoding::EncoderTag > (::ndn::EncodingBuffer &) const |
| template size_t | SafeBag ::wireEncode<::ndn::encoding::EstimatorTag > (::ndn::EncodingEstimator &) const |
| SigningInfo | signingByCertificate (const Certificate &cert) |
| Return a SigningInfo for signing with a certificate. More... | |
| SigningInfo | signingByCertificate (const Name &certName) |
| Return a SigningInfo for signing with a certificate. More... | |
| SigningInfo | signingByIdentity (const Identity &identity) |
| Return a SigningInfo for signing with an identity. More... | |
| SigningInfo | signingByIdentity (const Name &identityName) |
| Return a SigningInfo for signing with an identity. More... | |
| SigningInfo | signingByKey (const Key &key) |
| Return a SigningInfo for signing with a key. More... | |
| SigningInfo | signingByKey (const Name &keyName) |
| Return a SigningInfo for signing with a key. More... | |
| SigningInfo | signingWithSha256 () |
| Return a SigningInfo for signing with a SHA-256 digest. More... | |
| template size_t | ValidityPeriod ::wireEncode<::ndn::encoding::EncoderTag > (::ndn::EncodingBuffer &) const |
| template size_t | ValidityPeriod ::wireEncode<::ndn::encoding::EstimatorTag > (::ndn::EncodingEstimator &) const |
| bool | verifySignature (const Data &data, const pib::Key &key) |
Verify data using key. More... | |
| bool | verifySignature (const Data &data, const std::optional< Certificate > &cert) |
Verify data using cert. More... | |
| bool | verifySignature (const Data &data, const tpm::Tpm &tpm, const Name &keyName, DigestAlgorithm digestAlgorithm) |
Verify data using tpm and keyName with the digestAlgorithm. More... | |
| bool | verifySignature (const Data &data, const transform::PublicKey &key) |
Verify data using key. More... | |
| bool | verifySignature (const Data &data, span< const uint8_t > key) |
Verify data using key. More... | |
| bool | verifySignature (const InputBuffers &blobs, span< const uint8_t > sig, const transform::PublicKey &key) |
Verify blobs using key against sig. More... | |
| bool | verifySignature (const InputBuffers &blobs, span< const uint8_t > sig, span< const uint8_t > key) |
Verify blobs using key against sig. More... | |
| bool | verifySignature (const Interest &interest, const pib::Key &key) |
Verify interest using key. More... | |
| bool | verifySignature (const Interest &interest, const std::optional< Certificate > &cert) |
Verify interest using cert. More... | |
| bool | verifySignature (const Interest &interest, const tpm::Tpm &tpm, const Name &keyName, DigestAlgorithm digestAlgorithm) |
Verify interest using tpm and keyName with the digestAlgorithm. More... | |
| bool | verifySignature (const Interest &interest, const transform::PublicKey &key) |
Verify interest using key. More... | |
| bool | verifySignature (const Interest &interest, span< const uint8_t > key) |
Verify interest using key. More... | |
Variables | |
| constexpr size_t | ISO_DATETIME_SIZE = 15 |
| constexpr size_t | KEY_OFFSET = 0 |
| constexpr size_t | NOT_AFTER_OFFSET = 1 |
| constexpr size_t | NOT_BEFORE_OFFSET = 0 |
| const name::Component | SELF {"self"} |
| constexpr size_t | VALUE_OFFSET = 1 |
Contains the ndn-cxx security framework.
| using ndn::security::BundleNameTag = typedef SimpleTag<Name, 1000> |
Definition at line 36 of file certificate-bundle-fetcher.cpp.
| using ndn::security::DataValidationFailureCallback = typedef std::function<void(const Data&, const ValidationError&)> |
Callback to report a failed Data validation.
Definition at line 39 of file validation-callback.hpp.
| using ndn::security::DataValidationSuccessCallback = typedef std::function<void(const Data&)> |
Callback to report a successful Data validation.
Definition at line 34 of file validation-callback.hpp.
| using ndn::security::FinalBlockIdTag = typedef SimpleTag<name::Component, 1001> |
Definition at line 37 of file certificate-bundle-fetcher.cpp.
| using ndn::security::InterestValidationFailureCallback = typedef std::function<void(const Interest&, const ValidationError&)> |
Callback to report a failed Interest validation.
Definition at line 49 of file validation-callback.hpp.
| using ndn::security::InterestValidationSuccessCallback = typedef std::function<void(const Interest&)> |
Callback to report a successful Interest validation.
Definition at line 44 of file validation-callback.hpp.
| using ndn::security::SignedInterestFormatTag = typedef SimpleTag<SignedInterestFormat, 1002> |
Definition at line 255 of file validation-state.hpp.
|
strong |
| Enumerator | |
|---|---|
| V03 | Sign Interest using Packet Specification v0.3 semantics. |
| V02 | Sign Interest using Packet Specification v0.2 semantics. |
Definition at line 38 of file signing-info.hpp.
| template size_t ndn::security::AdditionalDescription ::wireEncode<::ndn::encoding::EncoderTag > | ( | ::ndn::EncodingBuffer & | ) | const |
| template size_t ndn::security::AdditionalDescription ::wireEncode<::ndn::encoding::EstimatorTag > | ( | ::ndn::EncodingEstimator & | ) | const |
| Name ndn::security::constructKeyName | ( | const Name & | identity, |
| const name::Component & | keyId | ||
| ) |
Extract identity namespace from the certificate name certName.
Definition at line 187 of file certificate.cpp.
Extract identity name from key, version-less certificate, or certificate name.
| KeyLocator::Error | If keyLocator does not follow the naming conventions |
Definition at line 112 of file validation-policy.cpp.
Extract key name from the certificate name certName.
Definition at line 198 of file certificate.cpp.
| Validator & ndn::security::getAcceptAllValidator | ( | ) |
Definition at line 34 of file validator-null.cpp.
| Name ndn::security::getKeyLocatorName | ( | const SignatureInfo & | sigInfo, |
| ValidationState & | state | ||
| ) |
Extract the KeyLocator name from a SignatureInfo element.
sigInfo must contain a KeyLocator of Name type. Otherwise, ValidationState::fail() is invoked on state with a ValidationError::INVALID_KEY_LOCATOR error code.
Definition at line 62 of file validation-policy.cpp.
| SignatureInfo ndn::security::getSignatureInfo | ( | const Interest & | interest, |
| ValidationState & | state | ||
| ) |
Extract SignatureInfo from a signed Interest.
Signed Interests according to Packet Specification v0.3+, as identified by the SignedInterestFormatTag inside state, must have an InterestSignatureInfo element. Legacy signed Interests must contain a (Data)SignatureInfo name component. In both cases, if any TLV parsing errors are encountered, ValidationState::fail() is invoked on state with a ValidationError::MALFORMED_SIGNATURE error code.
state must contain a SignedInterestFormatTag to indicate whether the Interest is signed according to Packet Specification v0.3+ or a previous specification. Definition at line 83 of file validation-policy.cpp.
| bool ndn::security::isValidKeyName | ( | const Name & | keyName | ) |
| std::ostream & ndn::security::operator<< | ( | std::ostream & | os, |
| const AdditionalDescription & | desc | ||
| ) |
Definition at line 156 of file additional-description.cpp.
| std::ostream & ndn::security::operator<< | ( | std::ostream & | os, |
| const Certificate & | cert | ||
| ) |
Definition at line 119 of file certificate.cpp.
| std::ostream & ndn::security::operator<< | ( | std::ostream & | os, |
| const SignedInterestFormat & | format | ||
| ) |
Definition at line 205 of file signing-info.cpp.
| std::ostream & ndn::security::operator<< | ( | std::ostream & | os, |
| const SigningInfo & | si | ||
| ) |
Definition at line 185 of file signing-info.cpp.
| std::ostream & ndn::security::operator<< | ( | std::ostream & | os, |
| const ValidityPeriod & | period | ||
| ) |
Definition at line 181 of file validity-period.cpp.
| std::ostream & ndn::security::operator<< | ( | std::ostream & | os, |
| ValidationError::Code | code | ||
| ) |
Definition at line 29 of file validation-error.cpp.
| template size_t ndn::security::SafeBag ::wireEncode<::ndn::encoding::EncoderTag > | ( | ::ndn::EncodingBuffer & | ) | const |
| template size_t ndn::security::SafeBag ::wireEncode<::ndn::encoding::EstimatorTag > | ( | ::ndn::EncodingEstimator & | ) | const |
| SigningInfo ndn::security::signingByCertificate | ( | const Certificate & | cert | ) |
Return a SigningInfo for signing with a certificate.
Definition at line 57 of file signing-helpers.cpp.
| SigningInfo ndn::security::signingByCertificate | ( | const Name & | certName | ) |
Return a SigningInfo for signing with a certificate.
Definition at line 51 of file signing-helpers.cpp.
| SigningInfo ndn::security::signingByIdentity | ( | const Identity & | identity | ) |
Return a SigningInfo for signing with an identity.
Definition at line 33 of file signing-helpers.cpp.
| SigningInfo ndn::security::signingByIdentity | ( | const Name & | identityName | ) |
Return a SigningInfo for signing with an identity.
Definition at line 27 of file signing-helpers.cpp.
| SigningInfo ndn::security::signingByKey | ( | const Key & | key | ) |
Return a SigningInfo for signing with a key.
Definition at line 45 of file signing-helpers.cpp.
| SigningInfo ndn::security::signingByKey | ( | const Name & | keyName | ) |
Return a SigningInfo for signing with a key.
Definition at line 39 of file signing-helpers.cpp.
| SigningInfo ndn::security::signingWithSha256 | ( | ) |
Return a SigningInfo for signing with a SHA-256 digest.
Definition at line 63 of file signing-helpers.cpp.
| template size_t ndn::security::ValidityPeriod ::wireEncode<::ndn::encoding::EncoderTag > | ( | ::ndn::EncodingBuffer & | ) | const |
| template size_t ndn::security::ValidityPeriod ::wireEncode<::ndn::encoding::EstimatorTag > | ( | ::ndn::EncodingEstimator & | ) | const |
Verify data using key.
Definition at line 206 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Data & | data, |
| const std::optional< Certificate > & | cert | ||
| ) |
Verify data using cert.
If cert is nullopt, data assumed to be self-verifiable (with digest or attributes)
Definition at line 218 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Data & | data, |
| const tpm::Tpm & | tpm, | ||
| const Name & | keyName, | ||
| DigestAlgorithm | digestAlgorithm | ||
| ) |
Verify data using tpm and keyName with the digestAlgorithm.
Definition at line 250 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Data & | data, |
| const transform::PublicKey & | key | ||
| ) |
Verify data using key.
Definition at line 194 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Data & | data, |
| span< const uint8_t > | key | ||
| ) |
Verify data using key.
key must be a public key in PKCS #8 format. Definition at line 182 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const InputBuffers & | blobs, |
| span< const uint8_t > | sig, | ||
| const transform::PublicKey & | key | ||
| ) |
Verify blobs using key against sig.
Definition at line 64 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const InputBuffers & | blobs, |
| span< const uint8_t > | sig, | ||
| span< const uint8_t > | key | ||
| ) |
Verify blobs using key against sig.
key must be a public key in PKCS #8 format. Definition at line 80 of file verification-helpers.cpp.
Verify interest using key.
Definition at line 212 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Interest & | interest, |
| const std::optional< Certificate > & | cert | ||
| ) |
Verify interest using cert.
If cert is nullptr, interest assumed to be self-verifiable (with digest or attributes)
Definition at line 234 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Interest & | interest, |
| const tpm::Tpm & | tpm, | ||
| const Name & | keyName, | ||
| DigestAlgorithm | digestAlgorithm | ||
| ) |
Verify interest using tpm and keyName with the digestAlgorithm.
Definition at line 257 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Interest & | interest, |
| const transform::PublicKey & | key | ||
| ) |
Verify interest using key.
Definition at line 200 of file verification-helpers.cpp.
| bool ndn::security::verifySignature | ( | const Interest & | interest, |
| span< const uint8_t > | key | ||
| ) |
Verify interest using key.
key must be a public key in PKCS #8 format. Definition at line 188 of file verification-helpers.cpp.
|
constexpr |
Definition at line 29 of file validity-period.cpp.
|
constexpr |
Definition at line 28 of file additional-description.cpp.
|
constexpr |
Definition at line 31 of file validity-period.cpp.
|
constexpr |
Definition at line 30 of file validity-period.cpp.
| const name::Component ndn::security::SELF {"self"} |
Definition at line 70 of file key-chain.cpp.
|
constexpr |
Definition at line 29 of file additional-description.cpp.