|
My Project
1.8.1
C++ Distributed Hash Table
|
Classes | |
| class | CryptoException |
| class | DecryptError |
| struct | PublicKey |
| struct | PrivateKey |
| class | RevocationList |
| struct | Certificate |
| struct | TrustList |
| class | secure_vector |
Typedefs | |
| using | Identity = std::pair< std::shared_ptr< PrivateKey >, std::shared_ptr< Certificate > > |
| using | SecureBlob = secure_vector< uint8_t > |
| using | random_device = std::random_device |
Functions | |
| OPENDHT_PUBLIC Identity | generateIdentity (const std::string &name, Identity ca, unsigned key_length, bool is_ca) |
| OPENDHT_PUBLIC Identity | generateIdentity (const std::string &name="dhtnode", Identity ca={}, unsigned key_length=4096) |
| OPENDHT_PUBLIC Identity | generateEcIdentity (const std::string &name, Identity ca, bool is_ca) |
| OPENDHT_PUBLIC Identity | generateEcIdentity (const std::string &name="dhtnode", Identity ca={}) |
| OPENDHT_PUBLIC Blob | hash (const Blob &data, size_t hash_length=512/8) |
| OPENDHT_PUBLIC void | hash (const uint8_t *data, size_t data_length, uint8_t *hash, size_t hash_length) |
| OPENDHT_PUBLIC Blob | stretchKey (const std::string &password, Blob &salt, size_t key_length=512/8) |
| OPENDHT_PUBLIC Blob | aesEncrypt (const Blob &data, const Blob &key) |
| OPENDHT_PUBLIC Blob | aesEncrypt (const Blob &data, const std::string &password) |
| OPENDHT_PUBLIC Blob | aesDecrypt (const Blob &data, const Blob &key) |
| OPENDHT_PUBLIC Blob | aesDecrypt (const Blob &data, const std::string &password) |
| template<class T = std::mt19937, std::size_t N = T::state_size> | |
| auto | getSeededRandomEngine () -> typename std::enable_if<!!N, T >::type |
Contains all crypto primitives
AES-GCM decryption.
AES-GCM encryption. Key must be 128, 192 or 256 bits long (16, 24 or 32 bytes).
| OPENDHT_PUBLIC Identity dht::crypto::generateIdentity | ( | const std::string & | name, |
| Identity | ca, | ||
| unsigned | key_length, | ||
| bool | is_ca | ||
| ) |
Generate an RSA key pair (4096 bits) and a certificate.
| name | the name used in the generated certificate |
| ca | if set, the certificate authority that will sign the generated certificate. If not set, the generated certificate will be a self-signed CA. |
| key_length | stength of the generated private key (bits). |
Performs SHA512, SHA256 or SHA1, depending on hash_length. Attempts to choose an hash function with output size of at least hash_length bytes, Current implementation will use SHA1 for hash_length up to 20 bytes, will use SHA256 for hash_length up to 32 bytes, will use SHA512 for hash_length of 33 bytes and more.
| OPENDHT_PUBLIC Blob dht::crypto::stretchKey | ( | const std::string & | password, |
| Blob & | salt, | ||
| size_t | key_length = 512/8 |
||
| ) |
Generates an encryption key from a text password, making the key longer to bruteforce. The generated key also depends on a unique salt value of any size, that can be transmitted in clear, and will be generated if not provided (32 bytes).