diff options
author | Matthew Hodgson <matthew@matrix.org> | 2015-06-27 01:15:23 +0200 |
---|---|---|
committer | Matthew Hodgson <matthew@matrix.org> | 2015-06-27 01:15:23 +0200 |
commit | 09d4125ff164f5ca686d12ccb0790c35ce721a6b (patch) | |
tree | 7ac8192180180705327d5090c5e603f54ddde2a0 /include/axolotl/session.hh | |
parent | fe958472453b1bac99854a419ef667d8f2cd351d (diff) |
Rename axolotlpp as olm to avoid confusion with Axolotl-the-spec and Axolotl-the-OWS-libraries at moxie's request
Diffstat (limited to 'include/axolotl/session.hh')
-rw-r--r-- | include/axolotl/session.hh | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/include/axolotl/session.hh b/include/axolotl/session.hh deleted file mode 100644 index 17f1653..0000000 --- a/include/axolotl/session.hh +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright 2015 OpenMarket Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef AXOLOTL_SESSION_HH_ -#define AXOLOTL_SESSION_HH_ - -#include "axolotl/ratchet.hh" - -namespace axolotl { - -class Account; - -struct RemoteKey { - std::uint32_t id; - Curve25519PublicKey key; -}; - - -enum struct MessageType { - PRE_KEY = 0, - MESSAGE = 1, -}; - - -struct Session { - - Session(); - - Ratchet ratchet; - ErrorCode last_error; - - bool received_message; - - RemoteKey alice_identity_key; - Curve25519PublicKey alice_base_key; - std::uint32_t bob_one_time_key_id; - - - std::size_t new_outbound_session_random_length(); - - std::size_t new_outbound_session( - Account const & local_account, - Curve25519PublicKey const & identity_key, - RemoteKey const & one_time_key, - std::uint8_t const * random, std::size_t random_length - ); - - std::size_t new_inbound_session( - Account & local_account, - std::uint8_t const * one_time_key_message, std::size_t message_length - ); - - bool matches_inbound_session( - std::uint8_t const * one_time_key_message, std::size_t message_length - ); - - MessageType encrypt_message_type(); - - std::size_t encrypt_message_length( - std::size_t plaintext_length - ); - - std::size_t encrypt_random_length(); - - std::size_t encrypt( - std::uint8_t const * plaintext, std::size_t plaintext_length, - std::uint8_t const * random, std::size_t random_length, - std::uint8_t * message, std::size_t message_length - ); - - std::size_t decrypt_max_plaintext_length( - MessageType message_type, - std::uint8_t const * message, std::size_t message_length - ); - - std::size_t decrypt( - MessageType message_type, - std::uint8_t const * message, std::size_t message_length, - std::uint8_t * plaintext, std::size_t max_plaintext_length - ); -}; - - -std::size_t pickle_length( - Session const & value -); - - -std::uint8_t * pickle( - std::uint8_t * pos, - Session const & value -); - - -std::uint8_t const * unpickle( - std::uint8_t const * pos, std::uint8_t const * end, - Session & value -); - - -} // namespace axolotl - -#endif /* AXOLOTL_SESSION_HH_ */ |