My Project: dht::crypto::Certificate Struct Reference

My Project 3.7.7 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:
[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)
Certificate & | operator= (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 PublicKey & | getPublicKey () const
const std::shared_ptr< PublicKey > & | getSharedPublicKey () const
const InfoHash & | getId () const
const PkId & | getLongId () const
Blob | getSerialNumber () const
std::string | getDN () const
std::string | getName () const
std::string | getUID () const
std::string | getIssuerDN () 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, Blob > | generateOcspRequest (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< Certificate > | issuer {}
std::shared_ptr< OcspResponse > | ocspResponse

## Detailed Description

Definition at line 411 of file crypto.h.

## Constructor & Destructor Documentation

## ◆ Certificate() [1/8]

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

Definition at line 413 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 418 of file crypto.h.

## ◆ Certificate() [3/8]

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

Definition at line 422 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 435 of file crypto.h.

## ◆ Certificate() [6/8]

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

Definition at line 440 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 449 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 459 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 625 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 635 of file crypto.h.

## ◆ getCopy()

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

Definition at line 615 of file crypto.h.

## ◆ getDN()

std::string dht::crypto::Certificate::getDN | ( |  | ) | const

Read certificate full DN as described in RFC4514

## ◆ getId()

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

Same as getPublicKey().getId()

## ◆ getIssuerDN()

std::string dht::crypto::Certificate::getIssuerDN | ( |  | ) | const

Read certificate issuer DN as described in RFC4514

## ◆ 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 469 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 532 of file crypto.h.

## ◆ operator bool()

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

Definition at line 542 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 485 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

  certs | list 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 512 of file crypto.h.

## Member Data Documentation

## ◆ cert

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

Definition at line 666 of file crypto.h.

## ◆ issuer

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

Definition at line 667 of file crypto.h.

## ◆ ocspResponse

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

Definition at line 668 of file crypto.h.

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

- /home/noptrix/ba/blackarch/packages/opendht-c/src/opendht/include/opendht/crypto.h