aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlloyd <[email protected]>2015-01-11 03:09:52 +0000
committerlloyd <[email protected]>2015-01-11 03:09:52 +0000
commitac5aae3fa32b51ac38cbbeb0f09116c1f258b9e1 (patch)
treeffb418e0eae4bc64c94030ef612356f8cecf4210
parente330e8d66faa0faa0c427acbb7ce42eefe06bd08 (diff)
Clean up base64 handling. Github pull 40 from webmaster128
-rw-r--r--src/lib/codec/base64/base64.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/lib/codec/base64/base64.cpp b/src/lib/codec/base64/base64.cpp
index 9e463e680..aaf04d9d2 100644
--- a/src/lib/codec/base64/base64.cpp
+++ b/src/lib/codec/base64/base64.cpp
@@ -78,10 +78,9 @@ size_t base64_encode(char out[],
std::string base64_encode(const byte input[],
size_t input_length)
{
- if(input_length == 0)
- return "";
-
- const size_t output_length = (round_up<size_t>(input_length, 3) / 3) * 4;
+ const size_t output_length = (input_length == 0)
+ ? 0
+ : (round_up<size_t>(input_length, 3) / 3) * 4;
std::string output(output_length, 0);
size_t consumed = 0;
@@ -221,17 +220,17 @@ size_t base64_decode(byte output[],
const std::string& input,
bool ignore_ws)
{
- return base64_decode(output, &input[0], input.length(), ignore_ws);
+ return base64_decode(output, input.data(), input.length(), ignore_ws);
}
secure_vector<byte> base64_decode(const char input[],
size_t input_length,
bool ignore_ws)
- {
- if(input_length == 0)
- return secure_vector<byte>();
-
- secure_vector<byte> bin((round_up<size_t>(input_length, 4) * 3) / 4);
+ {
+ const size_t output_length = (input_length == 0)
+ ? 0
+ : (round_up<size_t>(input_length, 4) * 3) / 4;
+ secure_vector<byte> bin(output_length);
size_t written = base64_decode(&bin[0],
input,
@@ -245,7 +244,7 @@ secure_vector<byte> base64_decode(const char input[],
secure_vector<byte> base64_decode(const std::string& input,
bool ignore_ws)
{
- return base64_decode(&input[0], input.size(), ignore_ws);
+ return base64_decode(input.data(), input.size(), ignore_ws);
}