Revert "Remove functions which return strings"

We need these functions for the logging_enabled branch.

This reverts commit acae4e8438.
This commit is contained in:
Richard van der Hoff 2016-06-28 14:27:08 +01:00
parent 4a74fd9297
commit 0d041f08fe
3 changed files with 26 additions and 0 deletions

View file

@ -17,6 +17,7 @@
#include <cstdint>
#include <cstddef>
#include <string>
namespace olm {
@ -26,6 +27,7 @@ static const std::size_t IV_LENGTH = 16;
struct Curve25519PublicKey {
std::uint8_t public_key[KEY_LENGTH];
std::string to_string() const;
};

View file

@ -87,4 +87,23 @@ std::uint8_t * store_array(
return destination + sizeof(T);
}
/** convert an array of bytes to a string representation */
template<typename T>
std::string bytes_to_string(T start, T end) {
std::ostringstream ss;
ss << std::hex << std::setfill('0');
while (start != end) {
ss << std::setw(2) << static_cast<int>(*start++);
if (start != end) {
ss << ":";
}
}
return ss.str();
}
template<typename T>
std::string bytes_to_string(T start, size_t len) {
return bytes_to_string(start, start+len);
}
} // namespace olm

View file

@ -101,6 +101,11 @@ inline static void hmac_sha256_final(
} // namespace
std::string olm::Curve25519PublicKey::to_string() const {
return olm::bytes_to_string(std::begin(public_key),
std::end(public_key));
};
void olm::curve25519_generate_key(
std::uint8_t const * random_32_bytes,
olm::Curve25519KeyPair & key_pair