16 #ifndef ACSDK_CRYPTOINTERFACES_KEYSTOREINTERFACE_H_ 17 #define ACSDK_CRYPTOINTERFACES_KEYSTOREINTERFACE_H_ 26 namespace cryptoInterfaces {
53 typedef std::vector<unsigned char>
IV;
60 typedef std::vector<unsigned char>
Tag;
87 const DataBlock& plaintext,
88 KeyChecksum& checksum,
89 DataBlock& ciphertext) noexcept = 0;
122 const DataBlock& aad,
123 const DataBlock& plaintext,
124 KeyChecksum& checksum,
125 DataBlock& ciphertext,
126 Tag& tag) noexcept = 0;
150 const KeyChecksum& checksum,
152 const DataBlock& ciphertext,
153 DataBlock& plaintext) noexcept = 0;
185 const KeyChecksum& checksum,
187 const DataBlock& aad,
188 const DataBlock& ciphertext,
190 DataBlock& plaintext) noexcept = 0;
211 #endif // ACSDK_CRYPTOINTERFACES_KEYSTOREINTERFACE_H_ virtual bool encryptAE(const std::string &keyAlias, AlgorithmType type, const IV &iv, const DataBlock &aad, const DataBlock &plaintext, KeyChecksum &checksum, DataBlock &ciphertext, Tag &tag) noexcept=0
Encrypts data block using authenticated encryption algorithm.
std::vector< unsigned char > Tag
Data type for tag. Tag (known as Message Authentication Code) is used with AEAD mode of operation lik...
Definition: KeyStoreInterface.h:60
Definition: CapabilityConfiguration.h:190
std::vector< unsigned char > KeyChecksum
Data type for key checksum.
Definition: KeyStoreInterface.h:56
virtual bool getDefaultKeyAlias(std::string &keyAlias) noexcept=0
Returns default key alias.
virtual ~KeyStoreInterface() noexcept=default
Default destructor.
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
Key Store Interface.
Definition: KeyStoreInterface.h:47
virtual bool decryptAD(const std::string &keyAlias, AlgorithmType type, const KeyChecksum &checksum, const IV &iv, const DataBlock &aad, const DataBlock &ciphertext, const Tag &tag, DataBlock &plaintext) noexcept=0
Decrypts data block using authenticated decryption algorithm.
type
Definition: upload.py:443
const
Definition: upload.py:398
virtual bool decrypt(const std::string &keyAlias, AlgorithmType type, const KeyChecksum &checksum, const IV &iv, const DataBlock &ciphertext, DataBlock &plaintext) noexcept=0
Decrypts data block.
AlgorithmType
Enumeration of all supported encryption protocols.
Definition: AlgorithmType.h:31
std::vector< unsigned char > DataBlock
Data type for data block (encrypted or unencrypted).
Definition: KeyStoreInterface.h:50
std::vector< unsigned char > IV
Data type for initialization vector data.
Definition: KeyStoreInterface.h:53
default
Definition: upload.py:394
virtual bool encrypt(const std::string &keyAlias, AlgorithmType type, const IV &iv, const DataBlock &plaintext, KeyChecksum &checksum, DataBlock &ciphertext) noexcept=0
Encrypts data block.