4#ifndef _Stroika_Foundation_Cryptography_Base64_h_
5#define _Stroika_Foundation_Cryptography_Base64_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
13#include "Stroika/Foundation/Common/Common.h"
35namespace Stroika::Foundation::Cryptography::Encoding::Algorithm::Base64 {
37 Memory::BLOB Decode (span<const char> s);
38 Memory::BLOB Decode (
const string& s);
39 Memory::BLOB Decode (
const u8string& s);
40 Memory::BLOB Decode (
const Characters::String& s);
41 void Decode (
const string& s,
const Streams::OutputStream::Ptr<byte>& out);
43 enum class LineBreak : uint8_t {
49 LineBreak fLineBreak{LineBreak::eAuto_LB};
55 string Encode (
const Streams::InputStream::Ptr<byte>& from,
const Options& o = {});
56 string Encode (
const Memory::BLOB& from,
const Options& o = {});
60namespace Stroika::Foundation::Cryptography::Encoding::Algorithm {
62 [[deprecated (
"Since Stroika v3.0d5 use Base64::Decode")]]
inline Memory::BLOB DecodeBase64 (span<const char> s)
64 return Base64::Decode (s);
66 [[deprecated (
"Since Stroika v3.0d5 use Base64::Decode")]]
inline Memory::BLOB DecodeBase64 (
const string& s)
68 return Base64::Decode (s);
70 [[deprecated (
"Since Stroika v3.0d5 use Base64::Decode")]]
inline Memory::BLOB DecodeBase64 (
const u8string& s)
72 return Base64::Decode (s);
74 [[deprecated (
"Since Stroika v3.0d5 use Base64::Decode")]]
inline Memory::BLOB DecodeBase64 (
const Characters::String& s)
76 return Base64::Decode (s);
78 [[deprecated (
"Since Stroika v3.0d5 use Base64::Decode")]]
inline void DecodeBase64 (
const string& s,
const Streams::OutputStream::Ptr<byte>& out)
80 Base64::Decode (s, out);
83 using Base64::LineBreak;
84 [[deprecated (
"Since Stroika v3.0d5 use Base64::Encode")]]
inline string EncodeBase64 (
const Streams::InputStream::Ptr<byte>& from,
85 LineBreak lb = LineBreak::eAuto_LB)
87 return Base64::Encode (from, Base64::Options{.fLineBreak = lb});
89 [[deprecated (
"Since Stroika v3.0d5 use Base64::Encode")]]
inline string EncodeBase64 (
const Memory::BLOB& from, LineBreak lb = LineBreak::eAuto_LB)
91 return Base64::Encode (from, Base64::Options{.fLineBreak = lb});
string Encode(const Streams::InputStream::Ptr< byte > &from, const Options &o={})