My Project 3.2.0
C++ Distributed Hash Table
Loading...
Searching...
No Matches
dht::crypto::PrivateKey Struct Reference

#include <crypto.h>

Public Member Functions

 PrivateKey (gnutls_x509_privkey_t k)
 
 PrivateKey (PrivateKey &&o) noexcept
 
PrivateKeyoperator= (PrivateKey &&o) noexcept
 
 PrivateKey (const uint8_t *src, size_t src_size, const char *password=nullptr)
 
 PrivateKey (const Blob &src, const std::string &password={})
 
 PrivateKey (std::string_view src, const std::string &password={})
 
 operator bool () const
 
const PublicKeygetPublicKey () const
 
const std::shared_ptr< PublicKey > & getSharedPublicKey () const
 
int serialize (uint8_t *out, size_t *out_len, const std::string &password={}) const
 
Blob serialize (const std::string &password={}) const
 
Blob sign (const uint8_t *data, size_t data_len) const
 
Blob sign (std::string_view dat) const
 
Blob sign (const Blob &dat) const
 
Blob decrypt (const uint8_t *cypher, size_t cypher_len) const
 
Blob decrypt (const Blob &cypher) const
 

Static Public Member Functions

static PrivateKey generate (unsigned key_length=4096)
 
static PrivateKey generateEC ()
 

Public Attributes

gnutls_privkey_t key {}
 
gnutls_x509_privkey_t x509_key {}
 

Detailed Description

A private key, including the corresponding public key.

Definition at line 160 of file crypto.h.

Constructor & Destructor Documentation

◆ PrivateKey() [1/3]

dht::crypto::PrivateKey::PrivateKey ( gnutls_x509_privkey_t k)

Takes ownership of an existing gnutls_x509_privkey.

◆ PrivateKey() [2/3]

dht::crypto::PrivateKey::PrivateKey ( const Blob & src,
const std::string & password = {} )
inline

Definition at line 174 of file crypto.h.

◆ PrivateKey() [3/3]

dht::crypto::PrivateKey::PrivateKey ( std::string_view src,
const std::string & password = {} )
inline

Definition at line 175 of file crypto.h.

Member Function Documentation

◆ decrypt() [1/2]

Blob dht::crypto::PrivateKey::decrypt ( const Blob & cypher) const
inline

Definition at line 200 of file crypto.h.

◆ decrypt() [2/2]

Blob dht::crypto::PrivateKey::decrypt ( const uint8_t * cypher,
size_t cypher_len ) const

Try to decrypt the provided cypher text. In case of failure a CryptoException is thrown.

Returns
the decrypted data.

◆ generate()

static PrivateKey dht::crypto::PrivateKey::generate ( unsigned key_length = 4096)
static

Generate a new RSA key pair

Parameters
key_length: size of the modulus in bits Minimim value: 2048 Recommended values: 4096, 8192

◆ operator bool()

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

Definition at line 178 of file crypto.h.

◆ sign() [1/3]

Blob dht::crypto::PrivateKey::sign ( const Blob & dat) const
inline

Definition at line 192 of file crypto.h.

◆ sign() [2/3]

Blob dht::crypto::PrivateKey::sign ( const uint8_t * data,
size_t data_len ) const

Sign the provided binary object.

Returns
the signature data.

◆ sign() [3/3]

Blob dht::crypto::PrivateKey::sign ( std::string_view dat) const
inline

Definition at line 191 of file crypto.h.

Member Data Documentation

◆ key

gnutls_privkey_t dht::crypto::PrivateKey::key {}

Definition at line 211 of file crypto.h.

◆ x509_key

gnutls_x509_privkey_t dht::crypto::PrivateKey::x509_key {}

Definition at line 212 of file crypto.h.


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