4#ifndef _Stroika_Foundation_Cryptography_AES_h_
5#define _Stroika_Foundation_Cryptography_AES_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "Stroika/Foundation/Common/Common.h"
24namespace Stroika::Foundation::Cryptography::Encoding::Algorithm {
28 enum class AESOptions {
53#if qStroika_HasComponent_OpenSSL
56 Streams::InputStream::Ptr<byte> DecodeAES (
const Providers::OpenSSL::DerivedKey& key,
const Streams::InputStream::Ptr<byte>& in,
57 AESOptions options = AESOptions::eDEFAULT);
58 Memory::BLOB DecodeAES (
const Providers::OpenSSL::DerivedKey& key,
const Memory::BLOB& in, AESOptions options = AESOptions::eDEFAULT);
61#if qStroika_HasComponent_OpenSSL
64 Streams::InputStream::Ptr<byte> EncodeAES (
const Providers::OpenSSL::DerivedKey& key,
const Streams::InputStream::Ptr<byte>& in,
65 AESOptions options = AESOptions::eDEFAULT);
66 Memory::BLOB EncodeAES (
const Providers::OpenSSL::DerivedKey& key,
const Memory::BLOB& in, AESOptions options = AESOptions::eDEFAULT);
69#if qStroika_HasComponent_OpenSSL
74 Streams::OutputStream::Ptr<byte> AESDecoder (
const Providers::OpenSSL::DerivedKey& key,
const Streams::OutputStream::Ptr<byte>& out,
75 AESOptions options = AESOptions::eDEFAULT);
78#if qStroika_HasComponent_OpenSSL
83 Streams::OutputStream::Ptr<byte> AESEncoder (
const Providers::OpenSSL::DerivedKey& key,
const Streams::OutputStream::Ptr<byte>& out,
84 AESOptions options = AESOptions::eDEFAULT);
#define Stroika_Define_Enum_Bounds(FIRST_ITEM, LAST_ITEM)