diff options
-rw-r--r-- | src/lib/codec/base64/base64.cpp | 13 | ||||
-rw-r--r-- | src/lib/codec/base64/base64.h | 2 | ||||
-rw-r--r-- | src/lib/codec/hex/hex.cpp | 12 | ||||
-rw-r--r-- | src/lib/codec/hex/hex.h | 2 |
4 files changed, 17 insertions, 12 deletions
diff --git a/src/lib/codec/base64/base64.cpp b/src/lib/codec/base64/base64.cpp index aaf04d9d2..1b1767aa1 100644 --- a/src/lib/codec/base64/base64.cpp +++ b/src/lib/codec/base64/base64.cpp @@ -84,9 +84,14 @@ std::string base64_encode(const byte input[], std::string output(output_length, 0); size_t consumed = 0; - size_t produced = base64_encode(&output[0], - input, input_length, - consumed, true); + size_t produced = 0; + + if (output_length > 0) + { + produced = base64_encode(&output.front(), + input, input_length, + consumed, true); + } BOTAN_ASSERT_EQUAL(consumed, input_length, "Consumed the entire input"); BOTAN_ASSERT_EQUAL(produced, output.size(), "Produced expected size"); @@ -232,7 +237,7 @@ secure_vector<byte> base64_decode(const char input[], : (round_up<size_t>(input_length, 4) * 3) / 4; secure_vector<byte> bin(output_length); - size_t written = base64_decode(&bin[0], + size_t written = base64_decode(bin.data(), input, input_length, ignore_ws); diff --git a/src/lib/codec/base64/base64.h b/src/lib/codec/base64/base64.h index ab7bb5a1c..92c4dc627 100644 --- a/src/lib/codec/base64/base64.h +++ b/src/lib/codec/base64/base64.h @@ -49,7 +49,7 @@ std::string BOTAN_DLL base64_encode(const byte input[], template<typename Alloc> std::string base64_encode(const std::vector<byte, Alloc>& input) { - return base64_encode(&input[0], input.size()); + return base64_encode(input.data(), input.size()); } /** diff --git a/src/lib/codec/hex/hex.cpp b/src/lib/codec/hex/hex.cpp index 21c5a5a03..4da719320 100644 --- a/src/lib/codec/hex/hex.cpp +++ b/src/lib/codec/hex/hex.cpp @@ -41,7 +41,7 @@ std::string hex_encode(const byte input[], std::string output(2 * input_length, 0); if(input_length) - hex_encode(&output[0], input, input_length, uppercase); + hex_encode(&output.front(), input, input_length, uppercase); return output; } @@ -156,7 +156,7 @@ size_t hex_decode(byte output[], const std::string& input, bool ignore_ws) { - return hex_decode(output, &input[0], input.length(), ignore_ws); + return hex_decode(output, input.data(), input.length(), ignore_ws); } secure_vector<byte> hex_decode_locked(const char input[], @@ -165,7 +165,7 @@ secure_vector<byte> hex_decode_locked(const char input[], { secure_vector<byte> bin(1 + input_length / 2); - size_t written = hex_decode(&bin[0], + size_t written = hex_decode(bin.data(), input, input_length, ignore_ws); @@ -177,7 +177,7 @@ secure_vector<byte> hex_decode_locked(const char input[], secure_vector<byte> hex_decode_locked(const std::string& input, bool ignore_ws) { - return hex_decode_locked(&input[0], input.size(), ignore_ws); + return hex_decode_locked(input.data(), input.size(), ignore_ws); } std::vector<byte> hex_decode(const char input[], @@ -186,7 +186,7 @@ std::vector<byte> hex_decode(const char input[], { std::vector<byte> bin(1 + input_length / 2); - size_t written = hex_decode(&bin[0], + size_t written = hex_decode(bin.data(), input, input_length, ignore_ws); @@ -198,7 +198,7 @@ std::vector<byte> hex_decode(const char input[], std::vector<byte> hex_decode(const std::string& input, bool ignore_ws) { - return hex_decode(&input[0], input.size(), ignore_ws); + return hex_decode(input.data(), input.size(), ignore_ws); } } diff --git a/src/lib/codec/hex/hex.h b/src/lib/codec/hex/hex.h index bd57ec88e..b524c43f0 100644 --- a/src/lib/codec/hex/hex.h +++ b/src/lib/codec/hex/hex.h @@ -46,7 +46,7 @@ template<typename Alloc> std::string hex_encode(const std::vector<byte, Alloc>& input, bool uppercase = true) { - return hex_encode(&input[0], input.size(), uppercase); + return hex_encode(input.data(), input.size(), uppercase); } /** |