diff options
author | Mark Haines <mark.haines@matrix.org> | 2015-06-12 16:15:37 +0100 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2015-06-12 16:15:37 +0100 |
commit | 6fe3b7eb73fb11e1cba27b28add5b14430b66259 (patch) | |
tree | e2e526e4f5593cb8d978f1b8955b80c9c2d88b4e /src/pickle.cpp | |
parent | 28541dd82a9e4a99661ba32905b8488d35e70fe3 (diff) |
Move utils for pickling into a separate file
Diffstat (limited to 'src/pickle.cpp')
-rw-r--r-- | src/pickle.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/pickle.cpp b/src/pickle.cpp new file mode 100644 index 0000000..43ef49c --- /dev/null +++ b/src/pickle.cpp @@ -0,0 +1,66 @@ +#include "axolotl/pickle.hh" + + +std::size_t axolotl::pickle_length( + const axolotl::Curve25519PublicKey & value +) { + return sizeof(value.public_key); +} + + +std::uint8_t * axolotl::pickle( + std::uint8_t * pos, + const axolotl::Curve25519PublicKey & value +) { + pos = axolotl::pickle_bytes( + pos, value.public_key, sizeof(value.public_key) + ); + return pos; +} + + +std::uint8_t const * axolotl::unpickle( + std::uint8_t const * pos, std::uint8_t const * end, + axolotl::Curve25519PublicKey & value +) { + pos = axolotl::unpickle_bytes( + pos, end, value.public_key, sizeof(value.public_key) + ); + return pos; + +} + + +std::size_t axolotl::pickle_length( + const axolotl::Curve25519KeyPair & value +) { + return sizeof(value.public_key) + sizeof(value.private_key); +} + + +std::uint8_t * axolotl::pickle( + std::uint8_t * pos, + const axolotl::Curve25519KeyPair & value +) { + pos = axolotl::pickle_bytes( + pos, value.public_key, sizeof(value.public_key) + ); + pos = axolotl::pickle_bytes( + pos, value.private_key, sizeof(value.private_key) + ); + return pos; +} + + +std::uint8_t const * axolotl::unpickle( + std::uint8_t const * pos, std::uint8_t const * end, + axolotl::Curve25519KeyPair & value +) { + pos = axolotl::unpickle_bytes( + pos, end, value.public_key, sizeof(value.public_key) + ); + pos = axolotl::unpickle_bytes( + pos, end, value.private_key, sizeof(value.private_key) + ); + return pos; +} |