6#include <aws/cal/symmetric_cipher.h>
10struct aws_symmetric_cipher;
23 Ready = AWS_SYMMETRIC_CIPHER_READY,
25 Error = AWS_SYMMETRIC_CIPHER_ERROR,
77 operator
bool() const noexcept;
88 inline
int LastError() const noexcept {
return m_lastError; }
108 bool FinalizeEncryption(
ByteBuf &out)
noexcept;
126 bool FinalizeDecryption(
ByteBuf &out)
noexcept;
131 bool Reset() noexcept;
Definition SymmetricCipher.h:29
SymmetricCipher(const SymmetricCipher &)=delete
static SymmetricCipher CreateAES_256_KeyWrap_Cipher(const Optional< ByteCursor > &key=Optional< ByteCursor >(), Allocator *allocator=ApiAllocator()) noexcept
Definition SymmetricCipher.cpp:175
int LastError() const noexcept
Definition SymmetricCipher.h:88
static SymmetricCipher CreateAES_256_GCM_Cipher(const Optional< ByteCursor > &key=Optional< ByteCursor >(), const Optional< ByteCursor > &iv=Optional< ByteCursor >(), const Optional< ByteCursor > &aad=Optional< ByteCursor >(), Allocator *allocator=ApiAllocator()) noexcept
Definition SymmetricCipher.cpp:162
SymmetricCipher & operator=(const SymmetricCipher &)=delete
SymmetricCipherState GetState() const noexcept
Definition SymmetricCipher.cpp:28
static SymmetricCipher CreateAES_256_CTR_Cipher(const Optional< ByteCursor > &key=Optional< ByteCursor >(), const Optional< ByteCursor > &iv=Optional< ByteCursor >(), Allocator *allocator=ApiAllocator()) noexcept
Definition SymmetricCipher.cpp:153
static SymmetricCipher CreateAES_256_CBC_Cipher(const Optional< ByteCursor > &key=Optional< ByteCursor >(), const Optional< ByteCursor > &iv=Optional< ByteCursor >(), Allocator *allocator=ApiAllocator()) noexcept
Definition SymmetricCipher.cpp:144
SymmetricCipher(SymmetricCipher &&) noexcept=default
#define AWS_CRT_CPP_API
Definition Exports.h:36
static const size_t AES_256_CIPHER_BLOCK_SIZE
Definition SymmetricCipher.h:18
SymmetricCipherState
Definition SymmetricCipher.h:22
@ Finalized
Definition SymmetricCipher.h:24
@ Error
Definition SymmetricCipher.h:25
@ Ready
Definition SymmetricCipher.h:23
static const size_t AES_256_KEY_SIZE_BYTES
Definition SymmetricCipher.h:19
Definition Allocator.h:13
std::unique_ptr< T, std::function< void(T *)> > ScopedResource
Definition Types.h:163
aws_byte_cursor ByteCursor
Definition Types.h:31
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition Allocator.cpp:24
aws_allocator Allocator
Definition Allocator.h:14
aws_byte_buf ByteBuf
Definition Types.h:30
Definition Allocator.h:11