diff options
author | Mark Haines <mark.haines@matrix.org> | 2015-07-07 16:42:03 +0100 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2015-07-07 16:42:03 +0100 |
commit | 3a382aec59937b086c37f039f1b011f253e80e97 (patch) | |
tree | 9c544b2fa307b4920e0f945e05cff3251db524e6 /src/pickle.cpp | |
parent | 2a873fd4e1d53c45898b27e1c953b551b2cf6023 (diff) |
Encode the account keys as a signed JSON object
Diffstat (limited to 'src/pickle.cpp')
-rw-r--r-- | src/pickle.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/pickle.cpp b/src/pickle.cpp index 3aa64ed..25580d2 100644 --- a/src/pickle.cpp +++ b/src/pickle.cpp @@ -78,3 +78,67 @@ std::uint8_t const * olm::unpickle( ); return pos; } + +std::size_t olm::pickle_length( + const olm::Ed25519PublicKey & value +) { + return sizeof(value.public_key); +} + + +std::uint8_t * olm::pickle( + std::uint8_t * pos, + const olm::Ed25519PublicKey & value +) { + pos = olm::pickle_bytes( + pos, value.public_key, sizeof(value.public_key) + ); + return pos; +} + + +std::uint8_t const * olm::unpickle( + std::uint8_t const * pos, std::uint8_t const * end, + olm::Ed25519PublicKey & value +) { + pos = olm::unpickle_bytes( + pos, end, value.public_key, sizeof(value.public_key) + ); + return pos; + +} + + +std::size_t olm::pickle_length( + const olm::Ed25519KeyPair & value +) { + return sizeof(value.public_key) + sizeof(value.private_key); +} + + +std::uint8_t * olm::pickle( + std::uint8_t * pos, + const olm::Ed25519KeyPair & value +) { + pos = olm::pickle_bytes( + pos, value.public_key, sizeof(value.public_key) + ); + pos = olm::pickle_bytes( + pos, value.private_key, sizeof(value.private_key) + ); + return pos; +} + + +std::uint8_t const * olm::unpickle( + std::uint8_t const * pos, std::uint8_t const * end, + olm::Ed25519KeyPair & value +) { + pos = olm::unpickle_bytes( + pos, end, value.public_key, sizeof(value.public_key) + ); + pos = olm::unpickle_bytes( + pos, end, value.private_key, sizeof(value.private_key) + ); + return pos; +} |