#pragma once /* * Encrypts/decrypts data using xchacha20 */ #include namespace odhtdb { const int NONCE_BYTE_SIZE = 24; struct EncryptedData { char nonce[NONCE_BYTE_SIZE]; std::string data; }; using EncryptionKey = char[32]; // Stores randomly generated encryption key in @output void generateEncryptionKey(EncryptionKey *output); // Returns 0 on success, storing encrypted data in @output int encrypt(EncryptedData *output, const EncryptionKey *key, const void *data, size_t dataSize); // Returns 0 on success, storing decrypted data in @output int decrypt(std::string *output, const EncryptionKey *key, const EncryptedData *encryptedData); }