37 #ifndef VIRGIL_CRYPTO_VIRGIL_SYMMETRIC_CIPHER_H 38 #define VIRGIL_CRYPTO_VIRGIL_SYMMETRIC_CIPHER_H 40 #include <virgil/crypto/VirgilByteArray.h> 44 namespace virgil {
namespace crypto {
inline namespace primitive {
69 return self_->doGetKeySize();
77 return self_->doGetNonceSize();
93 return self_->doEncrypt(plainText, key, nonce, authData);
109 return self_->doDecrypt(cipherText, key, nonce, authData);
119 virtual size_t doGetKeySize()
const = 0;
121 virtual size_t doGetNonceSize()
const = 0;
133 struct Model : Concept {
135 explicit Model(Impl impl) : impl_(std::move(impl)) {}
137 size_t doGetKeySize()
const override {
138 return impl_.getKeySize();
141 size_t doGetNonceSize()
const override {
142 return impl_.getNonceSize();
148 return impl_.encrypt(plainText, key, nonce, authData);
154 return impl_.decrypt(plainText, key, nonce, authData);
162 std::shared_ptr<const Concept> self_;
167 #endif //VIRGIL_CRYPTO_VIRGIL_SYMMETRIC_CIPHER_H static VirgilOperationCipher getDefault()
Return default implementation.
Define proxy interface for the Symmetric Cipher functionality.
Definition: VirgilOperationCipher.h:51
Definition: VirgilHash.h:265
VirgilByteArray decrypt(const VirgilByteArray &cipherText, const VirgilByteArray &key, const VirgilByteArray &nonce, const VirgilByteArray &authData=VirgilByteArray()) const
Decrypt given cipher text.
Definition: VirgilOperationCipher.h:105
VirgilByteArray encrypt(const VirgilByteArray &plainText, const VirgilByteArray &key, const VirgilByteArray &nonce, const VirgilByteArray &authData=VirgilByteArray()) const
Encrypt given plain text.
Definition: VirgilOperationCipher.h:89
Root namespace for all Virgil Security libraries.
Definition: VirgilAsn1Compatible.h:46
size_t getNonceSize() const
Return size of the nonce.
Definition: VirgilOperationCipher.h:76
std::vector< unsigned char > VirgilByteArray
This type represents a sequence of bytes.
Definition: VirgilByteArray.h:54
size_t getKeySize() const
Return size of the encryption/decryption key.
Definition: VirgilOperationCipher.h:68
VirgilOperationCipher(Impl impl)
Captures implementation object.
Definition: VirgilOperationCipher.h:62