diff options
Diffstat (limited to 'include/olm')
-rw-r--r-- | include/olm/base64.hh | 6 | ||||
-rw-r--r-- | include/olm/pickle.hh | 58 | ||||
-rw-r--r-- | include/olm/session.hh | 2 | ||||
-rw-r--r-- | include/olm/utility.hh | 2 |
4 files changed, 19 insertions, 49 deletions
diff --git a/include/olm/base64.hh b/include/olm/base64.hh index da4641d..dfdccd0 100644 --- a/include/olm/base64.hh +++ b/include/olm/base64.hh @@ -23,11 +23,9 @@ namespace olm { /** * The number of bytes of unpadded base64 needed to encode a length of input. */ -static std::size_t encode_base64_length( +std::size_t encode_base64_length( std::size_t input_length -) { - return 4 * ((input_length + 2) / 3) + (input_length + 2) % 3 - 2; -} +); /** * Encode the raw input as unpadded base64. diff --git a/include/olm/pickle.hh b/include/olm/pickle.hh index 27f1f26..13e6b01 100644 --- a/include/olm/pickle.hh +++ b/include/olm/pickle.hh @@ -23,58 +23,38 @@ namespace olm { -static std::size_t pickle_length( +inline std::size_t pickle_length( const std::uint32_t & value ) { return 4; } - -static std::uint8_t * pickle( +std::uint8_t * pickle( std::uint8_t * pos, std::uint32_t value -) { - pos += 4; - for (unsigned i = 4; i--;) { *(--pos) = value; value >>= 8; } - return pos + 4; -} - +); -static std::uint8_t const * unpickle( +std::uint8_t const * unpickle( std::uint8_t const * pos, std::uint8_t const * end, std::uint32_t & value -) { - value = 0; - if (end - pos < 4) return end; - for (unsigned i = 4; i--;) { value <<= 8; value |= *(pos++); } - return pos; -} +); + -static std::size_t pickle_length( +inline std::size_t pickle_length( const bool & value ) { return 1; } - -static std::uint8_t * pickle( +std::uint8_t * pickle( std::uint8_t * pos, bool value -) { - *(pos++) = value ? 1 : 0; - return pos; -} - +); -static std::uint8_t const * unpickle( +std::uint8_t const * unpickle( std::uint8_t const * pos, std::uint8_t const * end, bool & value -) { - if (pos == end) return end; - value = *(pos++); - return pos; -} - +); template<typename T, std::size_t max_size> @@ -117,23 +97,15 @@ std::uint8_t const * unpickle( } -static std::uint8_t * pickle_bytes( +std::uint8_t * pickle_bytes( std::uint8_t * pos, std::uint8_t const * bytes, std::size_t bytes_length -) { - std::memcpy(pos, bytes, bytes_length); - return pos + bytes_length; -} - +); -static std::uint8_t const * unpickle_bytes( +std::uint8_t const * unpickle_bytes( std::uint8_t const * pos, std::uint8_t const * end, std::uint8_t * bytes, std::size_t bytes_length -) { - if (end - pos < bytes_length) return end; - std::memcpy(bytes, pos, bytes_length); - return pos + bytes_length; -} +); std::size_t pickle_length( diff --git a/include/olm/session.hh b/include/olm/session.hh index b21b0aa..829f271 100644 --- a/include/olm/session.hh +++ b/include/olm/session.hh @@ -19,7 +19,7 @@ namespace olm { -class Account; +struct Account; enum struct MessageType { PRE_KEY = 0, diff --git a/include/olm/utility.hh b/include/olm/utility.hh index 5329a59..1e77675 100644 --- a/include/olm/utility.hh +++ b/include/olm/utility.hh @@ -23,7 +23,7 @@ namespace olm { -class Ed25519PublicKey; +struct Ed25519PublicKey; struct Utility { |