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
}
 

Public Member Functions

 SigningInfo (SignerType signerType=SIGNER_TYPE_NULL, const Name &signerName=getEmptyName(), const SignatureInfo &signatureInfo=getEmptySignatureInfo())
 Constructor. More...
 
 SigningInfo (const Identity &identity)
 Create a signingInfo using pib identity;. More...
 
 SigningInfo (const Key &key)
 Create a signingInfo using pib key;. More...
 
 SigningInfo (const std::string &signingStr)
 Construct SigningInfo from its string representation. More...
 
DigestAlgorithm getDigestAlgorithm () const
 
const Identity & getPibIdentity () const
 
const Key & getPibKey () const
 
const SignatureInfogetSignatureInfo () const
 
const NamegetSignerName () const
 
SignerType getSignerType () const
 
bool operator!= (const SigningInfo &rhs) const
 
bool operator== (const SigningInfo &rhs) const
 
SigningInfosetDigestAlgorithm (const DigestAlgorithm &algorithm)
 Set the digest algorithm for public key operations. 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...
 
SigningInfosetSha256Signing ()
 Set Sha256 as the signing method. More...
 
SigningInfosetSignatureInfo (const SignatureInfo &signatureInfo)
 Set a semi-prepared SignatureInfo;. More...
 
SigningInfosetSigningCertName (const Name &certificateName)
 Set signer as a certificate with name certificateName. 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...
 

Static Public Member Functions

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

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 40 of file signing-info.hpp.

Member Enumeration Documentation

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 sha256 digest, no signer needs to be specified

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

Constructor & Destructor Documentation

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 48 of file signing-info.cpp.

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

Create a signingInfo using pib identity;.

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

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

Create a signingInfo using pib key;.

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

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

Construct SigningInfo from its string representation.

Parameters
signingStrThe representative signing string for SigningInfo signing method

Structure of the representative string is as follows:

  • default signing: "" (empty string)
  • signing with a default certificate of a default key for the identity: id:/my-identity
  • signing with a default certificate of the key: key:/my-identity/ksk-1
  • signing with the certificate: cert:/my-identity/KEY/ksk-1/ID-CERT/FD%01
  • signing with sha256 digest: id:/localhost/identity/digest-sha256

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

Member Function Documentation

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

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

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

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

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

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

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

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

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

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 174 of file signing-info.hpp.

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 185 of file signing-info.hpp.

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

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

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

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

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

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

bool ndn::security::SigningInfo::operator!= ( const SigningInfo rhs) const
inline

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

bool ndn::security::SigningInfo::operator== ( const SigningInfo rhs) const

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

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

Set the digest algorithm for public key operations.

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

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 144 of file signing-info.cpp.

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 153 of file signing-info.cpp.

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

Set Sha256 as the signing method.

Postcondition
Reset signerName, also change the signerType to SIGNER_TYPE_SHA256

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

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

Set a semi-prepared SignatureInfo;.

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

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 128 of file signing-info.cpp.

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 110 of file signing-info.cpp.

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 119 of file signing-info.cpp.