#pragma once /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ /** @file */ /** @copyright 2021 MPLv2 */ #include #include /** * @brief This is the main namespace for all whisper-com related datatypes and classed. */ namespace Whisper { /** * @brief namespace for all data related DataTypes, classes, etc. */ namespace Data { /** * \defgroup data_classifications Classification of Data within Messages * Data in Message can be classified occording to the non-disclosure of its information. * In whisper-com certain rules are enforced occording to data classification * e.g. messages may be dropped or not routed through gateways. * Furthermore, encryption of data may or may not be enforced. */ /** * @brief Enumeration of different data classifications. * \ingroup data_classifications * Data classifications classify the data within the payload of a message * according to six levels. We think six levels should be enough and * fewer limits the flexibility of the user and more adds to the overall * complexity. */ enum class classification : std::uint8_t { /// The data is public and may even be transmitted public to the Internet. PUBLIC, /// The data is classified open. Everyone with access to the network may read it /// but the data is not allowed to be published to the internet or other non local networks. OPEN, /// The data is classified RESTRICTED RESTRICTED, /// the data is classified CONFIDENTIAL CONFIDENTIAL, /// The data is classified as SECRET SECRET, /// The data is classified as TOP SECRET. TOP_SECRET }; // enum class classification }; // namespace Data }; // namespace Whisper