NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::security::SigningInfo Class Reference

Signing parameters passed to KeyChain. More...

#include <signing-info.hpp>

Classes

class  Error
 

Public Types

enum  SignerType {
  SIGNER_TYPE_NULL = 0, SIGNER_TYPE_ID = 1, SIGNER_TYPE_KEY = 2, SIGNER_TYPE_CERT = 3,
  SIGNER_TYPE_SHA256 = 4, SIGNER_TYPE_HMAC = 5
}
 

Public Member Functions

 SigningInfo (SignerType signerType=SIGNER_TYPE_NULL, const Name &signerName=getEmptyName(), const SignatureInfo &signatureInfo=getEmptySignatureInfo())
 Constructor. More...
 
 SigningInfo (const Identity &identity)
 Construct from a PIB identity. More...
 
 SigningInfo (const Key &key)
 Construct from a PIB key. More...
 
 SigningInfo (const std::string &signingStr)
 Construct SigningInfo from its string representation. More...
 
SigningInfosetSigningIdentity (const Name &identity)
 Set signer as an identity with name identity. More...
 
SigningInfosetSigningKeyName (const Name &keyName)
 Set signer as a key with name keyName. More...
 
SigningInfosetSigningCertName (const Name &certificateName)
 Set signer as a certificate with name certificateName. More...
 
SigningInfosetSigningHmacKey (const std::string &hmacKey)
 Set signer to a base64-encoded HMAC key. More...
 
SigningInfosetSha256Signing ()
 Set SHA-256 as the signing method. More...
 
SigningInfosetPibIdentity (const Identity &identity)
 Set signer as a PIB identity handler identity. More...
 
SigningInfosetPibKey (const Key &key)
 Set signer as a PIB key handler key. More...
 
SignerType getSignerType () const
 
const NamegetSignerName () const
 
const IdentitygetPibIdentity () const
 
const KeygetPibKey () const
 
shared_ptr< transform::PrivateKeygetHmacKey () const
 
SigningInfosetDigestAlgorithm (const DigestAlgorithm &algorithm)
 Set the digest algorithm for signing operations. More...
 
DigestAlgorithm getDigestAlgorithm () const
 
SigningInfosetSignatureInfo (const SignatureInfo &signatureInfo)
 Set a semi-prepared SignatureInfo;. More...
 
const SignatureInfogetSignatureInfo () const
 

Static Public Member Functions

static const NamegetEmptyName ()
 
static const SignatureInfogetEmptySignatureInfo ()
 
static const NamegetDigestSha256Identity ()
 A localhost identity to indicate that the signature is generated using SHA-256. More...
 
static const NamegetHmacIdentity ()
 A localhost identity to indicate that the signature is generated using an HMAC key. More...
 

Friends

bool operator== (const SigningInfo &lhs, const SigningInfo &rhs)
 
bool operator!= (const SigningInfo &lhs, const SigningInfo &rhs)
 

Detailed Description

Signing parameters passed to KeyChain.

A SigningInfo is invalid if the specified identity/key/certificate does not exist, or the PIB Identity or Key instance is not valid.

Definition at line 41 of file signing-info.hpp.

Member Enumeration Documentation

◆ SignerType

Enumerator
SIGNER_TYPE_NULL 

No signer is specified, use default setting or follow the trust schema.

SIGNER_TYPE_ID 

Signer is an identity, use its default key and default certificate.

SIGNER_TYPE_KEY 

Signer is a key, use its default certificate.

SIGNER_TYPE_CERT 

Signer is a certificate, use it directly.

SIGNER_TYPE_SHA256 

Use a SHA-256 digest only, no signer needs to be specified.

SIGNER_TYPE_HMAC 

Signer is a HMAC key.

Definition at line 50 of file signing-info.hpp.

Constructor & Destructor Documentation

◆ SigningInfo() [1/4]

ndn::security::SigningInfo::SigningInfo ( SignerType  signerType = SIGNER_TYPE_NULL,
const Name signerName = getEmptyName(),
const SignatureInfo signatureInfo = getEmptySignatureInfo() 
)
explicit

Constructor.

Parameters
signerTypeThe type of signer
signerNameThe name of signer; interpretation differs per signerType
signatureInfoA semi-prepared SignatureInfo which contains other information except SignatureType and KeyLocator. If SignatureType and KeyLocator are specified, they may be overwritten by KeyChain.

Definition at line 61 of file signing-info.cpp.

References ndn::SHA256, SIGNER_TYPE_HMAC, and SIGNER_TYPE_NULL.

◆ SigningInfo() [2/4]

ndn::security::SigningInfo::SigningInfo ( const Identity identity)
explicit

Construct from a PIB identity.

Definition at line 72 of file signing-info.cpp.

References setPibIdentity().

◆ SigningInfo() [3/4]

ndn::security::SigningInfo::SigningInfo ( const Key key)
explicit

Construct from a PIB key.

Definition at line 78 of file signing-info.cpp.

References setPibKey().

◆ SigningInfo() [4/4]

ndn::security::SigningInfo::SigningInfo ( const std::string &  signingStr)
explicit

Construct SigningInfo from its string representation.

Parameters
signingStrThe representative signing string for SigningInfo signing method

Syntax of the representative string is as follows:

  • default signing: "" (empty string)
  • sign with the default certificate of the default key of an identity: id:/<my-identity>
  • sign with the default certificate of a specific key: key:/<my-identity>/ksk-1
  • sign with a specific certificate: cert:/<my-identity>/KEY/ksk-1/ID-CERT/FD%01
  • sign with HMAC-SHA-256: hmac-sha256:<base64-encoded-key>
  • sign with SHA-256 (digest only): id:/localhost/identity/digest-sha256

Definition at line 84 of file signing-info.cpp.

References getDigestSha256Identity(), NDN_THROW, setDigestAlgorithm(), setSha256Signing(), setSigningCertName(), setSigningHmacKey(), setSigningIdentity(), setSigningKeyName(), and ndn::SHA256.

Member Function Documentation

◆ setSigningIdentity()

SigningInfo & ndn::security::SigningInfo::setSigningIdentity ( const Name identity)

Set signer as an identity with name identity.

Postcondition
Change the signerType to SIGNER_TYPE_ID

Definition at line 123 of file signing-info.cpp.

References SIGNER_TYPE_ID.

Referenced by SigningInfo().

◆ setSigningKeyName()

SigningInfo & ndn::security::SigningInfo::setSigningKeyName ( const Name keyName)

Set signer as a key with name keyName.

Postcondition
Change the signerType to SIGNER_TYPE_KEY

Definition at line 132 of file signing-info.cpp.

References SIGNER_TYPE_KEY.

Referenced by SigningInfo().

◆ setSigningCertName()

SigningInfo & ndn::security::SigningInfo::setSigningCertName ( const Name certificateName)

Set signer as a certificate with name certificateName.

Postcondition
Change the signerType to SIGNER_TYPE_CERT

Definition at line 141 of file signing-info.cpp.

References SIGNER_TYPE_CERT.

Referenced by SigningInfo().

◆ setSigningHmacKey()

SigningInfo & ndn::security::SigningInfo::setSigningHmacKey ( const std::string &  hmacKey)

Set signer to a base64-encoded HMAC key.

Postcondition
Change the signerType to SIGNER_TYPE_HMAC

Definition at line 149 of file signing-info.cpp.

References ndn::Name::append(), ndn::security::transform::base64Decode(), ndn::OBufferStream::buf(), getHmacIdentity(), ndn::HMAC, ndn::SHA256, SIGNER_TYPE_HMAC, and ndn::security::transform::streamSink().

Referenced by SigningInfo().

◆ setSha256Signing()

SigningInfo & ndn::security::SigningInfo::setSha256Signing ( )

Set SHA-256 as the signing method.

Postcondition
Reset signerName, also change the signerType to SIGNER_TYPE_SHA256

Definition at line 168 of file signing-info.cpp.

References ndn::Name::clear(), and SIGNER_TYPE_SHA256.

Referenced by SigningInfo().

◆ setPibIdentity()

SigningInfo & ndn::security::SigningInfo::setPibIdentity ( const Identity identity)

Set signer as a PIB identity handler identity.

Postcondition
Change the signerType to SIGNER_TYPE_ID

Definition at line 176 of file signing-info.cpp.

References ndn::security::pib::Identity::getName(), ns3::ndn::Name, and SIGNER_TYPE_ID.

Referenced by SigningInfo().

◆ setPibKey()

SigningInfo & ndn::security::SigningInfo::setPibKey ( const Key key)

Set signer as a PIB key handler key.

Postcondition
Change the signerType to SIGNER_TYPE_KEY

Definition at line 185 of file signing-info.cpp.

References ndn::security::pib::Key::getName(), ns3::ndn::Name, and SIGNER_TYPE_KEY.

Referenced by SigningInfo().

◆ getSignerType()

SignerType ndn::security::SigningInfo::getSignerType ( ) const
inline
Returns
Type of the signer

Definition at line 161 of file signing-info.hpp.

Referenced by ndn::security::operator<<().

◆ getSignerName()

const Name& ndn::security::SigningInfo::getSignerName ( ) const
inline
Returns
Name of signer; interpretation differs per signerType

Definition at line 170 of file signing-info.hpp.

Referenced by ndn::security::operator<<().

◆ getPibIdentity()

const Identity& ndn::security::SigningInfo::getPibIdentity ( ) const
inline
Precondition
signerType must be SIGNER_TYPE_ID
Returns
the identity handler of signer, or Identity() if getSignerName() should be used to find the identity

Definition at line 181 of file signing-info.hpp.

References SIGNER_TYPE_ID.

◆ getPibKey()

const Key& ndn::security::SigningInfo::getPibKey ( ) const
inline
Precondition
signerType must be SIGNER_TYPE_KEY
Returns
the key handler of signer, or Key() if getSignerName() should be used to find the key

Definition at line 192 of file signing-info.hpp.

References SIGNER_TYPE_KEY.

◆ getHmacKey()

shared_ptr<transform::PrivateKey> ndn::security::SigningInfo::getHmacKey ( ) const
inline

Definition at line 199 of file signing-info.hpp.

References SIGNER_TYPE_HMAC.

◆ setDigestAlgorithm()

SigningInfo& ndn::security::SigningInfo::setDigestAlgorithm ( const DigestAlgorithm algorithm)
inline

Set the digest algorithm for signing operations.

Definition at line 209 of file signing-info.hpp.

Referenced by SigningInfo().

◆ getDigestAlgorithm()

DigestAlgorithm ndn::security::SigningInfo::getDigestAlgorithm ( ) const
inline
Returns
The digest algorithm for signing operations

Definition at line 219 of file signing-info.hpp.

Referenced by ndn::security::v2::KeyChain::sign().

◆ setSignatureInfo()

SigningInfo & ndn::security::SigningInfo::setSignatureInfo ( const SignatureInfo signatureInfo)

Set a semi-prepared SignatureInfo;.

Definition at line 194 of file signing-info.cpp.

◆ getSignatureInfo()

const SignatureInfo& ndn::security::SigningInfo::getSignatureInfo ( ) const
inline
Returns
Semi-prepared SignatureInfo

Definition at line 234 of file signing-info.hpp.

◆ getEmptyName()

const Name & ndn::security::SigningInfo::getEmptyName ( )
static

Definition at line 34 of file signing-info.cpp.

◆ getEmptySignatureInfo()

const SignatureInfo & ndn::security::SigningInfo::getEmptySignatureInfo ( )
static

Definition at line 41 of file signing-info.cpp.

◆ getDigestSha256Identity()

const Name & ndn::security::SigningInfo::getDigestSha256Identity ( )
static

A localhost identity to indicate that the signature is generated using SHA-256.

Definition at line 48 of file signing-info.cpp.

Referenced by ndn::security::v2::getKeyLocatorName(), ndn::security::operator<<(), and SigningInfo().

◆ getHmacIdentity()

const Name & ndn::security::SigningInfo::getHmacIdentity ( )
static

A localhost identity to indicate that the signature is generated using an HMAC key.

Definition at line 55 of file signing-info.cpp.

Referenced by setSigningHmacKey().

Friends And Related Function Documentation

◆ operator==

bool operator== ( const SigningInfo lhs,
const SigningInfo rhs 
)
friend

Definition at line 263 of file signing-info.hpp.

◆ operator!=

bool operator!= ( const SigningInfo lhs,
const SigningInfo rhs 
)
friend

Definition at line 269 of file signing-info.hpp.


The documentation for this class was generated from the following files: