diff options
author | Alberto Compagno <acompagn+fdio@cisco.com> | 2020-01-07 11:46:02 +0100 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2020-02-21 15:48:18 +0100 |
commit | 35058cdfe0134c88f1aa8d23342d1d7b9d39e296 (patch) | |
tree | 978ca9c2232ac381c8391b3d1eeb0f875670d5b1 /libtransport/src/hicn/transport/protocols/verification_manager.h | |
parent | 0710f1ff754ebf01ae5befabb055349fe472b0c2 (diff) |
[HICN-2] Added P2P confidential communication on hICN
P2P confidential communications exploit the TLS 1.3 protocol to let a consumer to
establish a secure communication on an hICN name. Currently we don't support the
consumer authentication (mutual authentication in TLS) and the 0-rtt session
establishment.
Change-Id: I2be073847c08a17f28c837d444081920c5e57a07
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Signed-off-by: Olivier Roques <oroques+fdio@cisco.com>
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/protocols/verification_manager.h')
-rw-r--r-- | libtransport/src/hicn/transport/protocols/verification_manager.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/libtransport/src/hicn/transport/protocols/verification_manager.h b/libtransport/src/hicn/transport/protocols/verification_manager.h index 6e5d32127..293e8103a 100644 --- a/libtransport/src/hicn/transport/protocols/verification_manager.h +++ b/libtransport/src/hicn/transport/protocols/verification_manager.h @@ -30,22 +30,36 @@ namespace protocol { using Packet = core::Packet; using interface::ConsumerSocket; using interface::VerificationPolicy; +using ContentObjectPtr = std::shared_ptr<core::ContentObject>; class VerificationManager { public: virtual ~VerificationManager() = default; virtual VerificationPolicy onPacketToVerify(const Packet& packet) = 0; + virtual bool onKeyToVerify() { return false; } }; class SignatureVerificationManager : public VerificationManager { public: - SignatureVerificationManager(ConsumerSocket* icn_socket) - : icn_socket_(icn_socket) {} + SignatureVerificationManager(interface::ConsumerSocket* icn_socket) + : icn_socket_(icn_socket), key_packets_() {} interface::VerificationPolicy onPacketToVerify(const Packet& packet) override; + bool onKeyToVerify() override; private: ConsumerSocket* icn_socket_; + std::queue<ContentObjectPtr> key_packets_; + + ContentObjectPtr copyPacket(const Packet& packet) { + std::shared_ptr<utils::MemBuf> packet_copy = + packet.acquireMemBufReference(); + ContentObjectPtr content_object_copy = + std::make_shared<core::ContentObject>(std::move(packet_copy)); + std::unique_ptr<utils::MemBuf> payload_copy = packet.getPayload(); + content_object_copy->appendPayload(std::move(payload_copy)); + return content_object_copy; + } }; } // end namespace protocol |