My Project 3.2.0
C++ Distributed Hash Table
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
dht::crypto::Certificate Struct Reference
Collaboration diagram for dht::crypto::Certificate:
Collaboration graph
[legend]

Public Member Functions

 Certificate (gnutls_x509_crt_t crt) noexcept
 
 Certificate (Certificate &&o) noexcept
 
 Certificate (const Blob &crt)
 
 Certificate (const uint8_t *dat, size_t dat_size)
 
 Certificate (std::string_view pem)
 
template<typename Iterator >
 Certificate (const Iterator &begin, const Iterator &end)
 
template<typename Iterator >
 Certificate (const std::vector< std::pair< Iterator, Iterator > > &certs)
 
Certificateoperator= (Certificate &&o) noexcept
 
void pack (Blob &b) const
 
void unpack (const uint8_t *dat, size_t dat_size)
 
Blob getPacked () const
 
template<typename Iterator >
void unpack (const Iterator &begin, const Iterator &end)
 
template<typename Iterator >
void unpack (const std::vector< std::pair< Iterator, Iterator > > &certs)
 
template<typename Packer >
void msgpack_pack (Packer &p) const
 
void msgpack_unpack (const msgpack::object &o)
 
 operator bool () const
 
const PublicKeygetPublicKey () const
 
const std::shared_ptr< PublicKey > & getSharedPublicKey () const
 
const InfoHashgetId () const
 
const PkIdgetLongId () const
 
Blob getSerialNumber () const
 
std::string getName () const
 
std::string getUID () const
 
std::string getIssuerName () const
 
std::string getIssuerUID () const
 
std::vector< std::pair< NameType, std::string > > getAltNames () const
 
std::chrono::system_clock::time_point getActivation () const
 
std::chrono::system_clock::time_point getExpiration () const
 
bool isCA () const
 
std::string toString (bool chain=true) const
 
std::string print () const
 
void revoke (const PrivateKey &, const Certificate &)
 
std::vector< std::shared_ptr< RevocationList > > getRevocationLists () const
 
void addRevocationList (RevocationList &&)
 
void addRevocationList (std::shared_ptr< RevocationList >)
 
gnutls_x509_crt_t getCopy () const
 
std::vector< gnutls_x509_crt_t > getChain (bool copy=false) const
 
std::pair< std::vector< gnutls_x509_crt_t >, std::vector< gnutls_x509_crl_t > > getChainWithRevocations (bool copy=false) const
 
gnutls_digest_algorithm_t getPreferredDigest () const
 
std::pair< std::string, BlobgenerateOcspRequest (gnutls_x509_crt_t &issuer)
 
void setValidity (const Identity &ca, int64_t validity)
 
void setValidity (const PrivateKey &key, int64_t validity)
 

Static Public Member Functions

static Certificate generate (const PrivateKey &key, const std::string &name="dhtnode", const Identity &ca={}, bool is_ca=false, int64_t validity=0)
 
static Certificate generate (const CertificateRequest &request, const Identity &ca, int64_t validity=0)
 

Public Attributes

gnutls_x509_crt_t cert {nullptr}
 
std::shared_ptr< Certificateissuer {}
 
std::shared_ptr< OcspResponseocspResponse
 

Detailed Description

Definition at line 385 of file crypto.h.

Constructor & Destructor Documentation

◆ Certificate() [1/8]

dht::crypto::Certificate::Certificate ( )
inlinenoexcept

Definition at line 386 of file crypto.h.

◆ Certificate() [2/8]

dht::crypto::Certificate::Certificate ( gnutls_x509_crt_t crt)
inlinenoexcept

Take ownership of existing gnutls structure

Definition at line 391 of file crypto.h.

◆ Certificate() [3/8]

dht::crypto::Certificate::Certificate ( Certificate && o)
inlinenoexcept

Definition at line 393 of file crypto.h.

◆ Certificate() [4/8]

dht::crypto::Certificate::Certificate ( const Blob & crt)

Import certificate (PEM or DER) or certificate chain (PEM), ordered from subject to issuer

◆ Certificate() [5/8]

dht::crypto::Certificate::Certificate ( const uint8_t * dat,
size_t dat_size )
inline

Definition at line 404 of file crypto.h.

◆ Certificate() [6/8]

dht::crypto::Certificate::Certificate ( std::string_view pem)
inline

Definition at line 407 of file crypto.h.

◆ Certificate() [7/8]

template<typename Iterator >
dht::crypto::Certificate::Certificate ( const Iterator & begin,
const Iterator & end )
inline

Import certificate chain (PEM or DER), ordered from subject to issuer

Definition at line 414 of file crypto.h.

◆ Certificate() [8/8]

template<typename Iterator >
dht::crypto::Certificate::Certificate ( const std::vector< std::pair< Iterator, Iterator > > & certs)
inline

Import certificate chain (PEM or DER), ordered from subject to issuer

Definition at line 423 of file crypto.h.

Member Function Documentation

◆ addRevocationList()

void dht::crypto::Certificate::addRevocationList ( RevocationList && )

Attach existing revocation list.

◆ getAltNames()

std::vector< std::pair< NameType, std::string > > dht::crypto::Certificate::getAltNames ( ) const

Read certificate alternative names

◆ getChain()

std::vector< gnutls_x509_crt_t > dht::crypto::Certificate::getChain ( bool copy = false) const
inline

Definition at line 577 of file crypto.h.

◆ getChainWithRevocations()

std::pair< std::vector< gnutls_x509_crt_t >, std::vector< gnutls_x509_crl_t > > dht::crypto::Certificate::getChainWithRevocations ( bool copy = false) const
inline

Definition at line 591 of file crypto.h.

◆ getCopy()

gnutls_x509_crt_t dht::crypto::Certificate::getCopy ( ) const
inline

Definition at line 567 of file crypto.h.

◆ getId()

const InfoHash & dht::crypto::Certificate::getId ( ) const

Same as getPublicKey().getId()

◆ getIssuerName()

std::string dht::crypto::Certificate::getIssuerName ( ) const

Read certificate issuer Common Name (CN)

◆ getIssuerUID()

std::string dht::crypto::Certificate::getIssuerUID ( ) const

Read certificate issuer User ID (UID)

◆ getLongId()

const PkId & dht::crypto::Certificate::getLongId ( ) const

Same as getPublicKey().getLongId()

◆ getName()

std::string dht::crypto::Certificate::getName ( ) const

Read certificate Common Name (CN)

◆ getPacked()

Blob dht::crypto::Certificate::getPacked ( ) const
inline

Definition at line 432 of file crypto.h.

◆ getRevocationLists()

std::vector< std::shared_ptr< RevocationList > > dht::crypto::Certificate::getRevocationLists ( ) const

Get the list of certificates revoked as as CA.

◆ getUID()

std::string dht::crypto::Certificate::getUID ( ) const

Read certificate User ID (UID)

◆ isCA()

bool dht::crypto::Certificate::isCA ( ) const

Returns true if the certificate is marked as a Certificate Authority and has necessary key usage flags to sign certificates.

◆ msgpack_pack()

template<typename Packer >
void dht::crypto::Certificate::msgpack_pack ( Packer & p) const
inline

Definition at line 494 of file crypto.h.

◆ operator bool()

dht::crypto::Certificate::operator bool ( ) const
inlineexplicit

Definition at line 504 of file crypto.h.

◆ revoke()

void dht::crypto::Certificate::revoke ( const PrivateKey & ,
const Certificate &  )

As a CA, revoke a certificate, adding it to the attached Certificate Revocation List (CRL)

◆ setValidity()

void dht::crypto::Certificate::setValidity ( const Identity & ca,
int64_t validity )

Change certificate's expiration

◆ toString()

std::string dht::crypto::Certificate::toString ( bool chain = true) const

PEM encoded certificate. If chain is true, the issuer chain will be included (default).

◆ unpack() [1/2]

template<typename Iterator >
void dht::crypto::Certificate::unpack ( const Iterator & begin,
const Iterator & end )
inline

Import certificate chain (PEM or DER). Certificates are not checked during import.

Iterator is the type of an iterator or pointer to gnutls_x509_crt_t or Blob instances to import, that should be ordered from subject to issuer.

Definition at line 447 of file crypto.h.

◆ unpack() [2/2]

template<typename Iterator >
void dht::crypto::Certificate::unpack ( const std::vector< std::pair< Iterator, Iterator > > & certs)
inline

Import certificate chain (PEM or DER). Certificates are not checked during import.

Iterator is the type of an iterator or pointer to the bytes of the certificates to import.

Parameters
certslist of (begin, end) iterator pairs, pointing to the PEM or DER certificate data to import, that should be ordered from subject to issuer.

Definition at line 474 of file crypto.h.

Member Data Documentation

◆ cert

gnutls_x509_crt_t dht::crypto::Certificate::cert {nullptr}

Definition at line 621 of file crypto.h.

◆ issuer

std::shared_ptr<Certificate> dht::crypto::Certificate::issuer {}

Definition at line 622 of file crypto.h.

◆ ocspResponse

std::shared_ptr<OcspResponse> dht::crypto::Certificate::ocspResponse

Definition at line 623 of file crypto.h.


The documentation for this struct was generated from the following file: