Go to the documentation of this file.
17 #ifndef USGOV_d849d1a13db50de2445a34619f728b452c00b4067ae57c05409fe800ef621994
18 #define USGOV_d849d1a13db50de2445a34619f728b452c00b4067ae57c05409fe800ef621994
25 #include <crypto++/gcm.h>
26 #include <crypto++/aes.h>
27 #include <crypto++/osrng.h>
29 namespace us {
namespace gov {
33 using CryptoPP::AutoSeededRandomPool;
39 typedef unsigned char byte;
44 ko encrypt(
const vector<unsigned char>& src, vector<unsigned char>& dest);
45 ko decrypt(
const unsigned char* p,
size_t sz, vector<unsigned char>& dest);
46 ko decrypt(
const vector<unsigned char>& ciphertext, vector<unsigned char>& clear);
51 static constexpr
size_t key_size = 16;
52 static constexpr
size_t iv_size = 12;
53 static constexpr
int tag_size = 16;
62 GCM<AES>::Encryption
enc;
63 GCM<AES>::Decryption
dec;
GCM< AES >::Decryption dec
Definition: symmetric_encryption.h:63
static bool is_ko(const std::string &s)
Definition: ko.h:30
#define unlikely(x)
Definition: likely.h:30
ko init(const keys::priv_t &sk, const keys::pub_t &pub_other)
static int encmsg_ratio(const size_t plaintext_sz)
ko decrypt(const unsigned char *p, size_t sz, vector< unsigned char > &dest)
static ec instance
Definition: ec.h:143
GCM< AES >::Encryption enc
Definition: symmetric_encryption.h:62
ko generate_shared_key(unsigned char *, size_t, const keys::priv_t &, const keys::pub_t &)
peer::daemon::pub_t pub_t
Definition: auth_app.h:53
AutoSeededRandomPool prng_
Definition: symmetric_encryption.h:54
Definition: symmetric_encryption.h:37
ko encrypt(const vector< unsigned char > &src, vector< unsigned char > &dest)
const ko_t * ko
Definition: ko.h:27
us::gov::crypto::symmetric_encryption c
Definition: symmetric_encryption.cpp:37
static constexpr ko ok
Definition: ko.h:28
static size_t encmsg_max_sz(const size_t plaintext_sz)
ko decrypt(const vector< unsigned char > &ciphertext, vector< unsigned char > &clear)
Definition: base58.cpp:19
ec::keys keys
Definition: symmetric_encryption.h:38
unsigned char byte
Definition: symmetric_encryption.h:39
#define log
Definition: gov.h:83