summaryrefslogtreecommitdiff
path: root/plugins/Quotes/src/Base64.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Quotes/src/Base64.cpp')
-rw-r--r--plugins/Quotes/src/Base64.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/plugins/Quotes/src/Base64.cpp b/plugins/Quotes/src/Base64.cpp
new file mode 100644
index 0000000000..1854fb42fd
--- /dev/null
+++ b/plugins/Quotes/src/Base64.cpp
@@ -0,0 +1,43 @@
+#include "StdAfx.h"
+#include "Base64.h"
+
+bool base64::encode(const BYTE* in, size_t inlen,std::vector<char>& out)
+{
+ int nOutLength = Base64EncodeGetRequiredLength((int)inlen);
+ out.resize(nOutLength);
+ char* p = &*out.begin();
+ bool bResult = (TRUE == Base64Encode(in,(int)inlen,p,&nOutLength));
+ if(false == bResult)
+ {
+ out.resize(nOutLength);
+ p = &*out.begin();
+ bResult = (TRUE == Base64Encode(in,(int)inlen,p,&nOutLength));
+ }
+ if(bResult)
+ {
+ out.resize(nOutLength);
+ }
+
+ return bResult;
+}
+
+
+bool base64::decode(const char* in, size_t inlen,std::vector<BYTE>& out)
+{
+ int nOutLength = (int)inlen;
+ out.resize(nOutLength);
+ BYTE* p = &*out.begin();
+ bool bResult = TRUE == Base64Decode(in,(int)inlen,p,&nOutLength);
+ if(false == bResult)
+ {
+ out.resize(nOutLength);
+ p = &*out.begin();
+ bResult = TRUE == Base64Decode(in,(int)inlen,p,&nOutLength);
+ }
+ if(bResult)
+ {
+ out.resize(nOutLength);
+ }
+
+ return true;
+}