From 5bec5b9660447b6a03133ec89ffbd31e9a1e3b9c Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 26 Feb 2019 20:27:06 +0100 Subject: [PATCH] msg/async, v2: dissect decryption from SignedEncryptedFrame. Signed-off-by: Radoslaw Zarzynski --- src/msg/async/ProtocolV2.cc | 8 ++++++++ src/msg/async/frames_v2.h | 14 +------------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc index a0d9b7d00e92e..9745d75a692a3 100644 --- a/src/msg/async/ProtocolV2.cc +++ b/src/msg/async/ProtocolV2.cc @@ -1244,6 +1244,14 @@ CtPtr ProtocolV2::handle_frame_payload() { ceph_assert(!rx_segments_data.empty()); auto& payload = rx_segments_data.back(); + if (session_stream_handlers.rx) { + const auto length = payload.length(); + payload = session_stream_handlers.rx->authenticated_decrypt_update_final( + std::move(payload), segment_t::DEFAULT_ALIGNMENT); + ceph_assert(payload.length() == + length - session_stream_handlers.rx->get_extra_size_at_final()); + } + ldout(cct, 30) << __func__ << "\n"; payload.hexdump(*_dout); *_dout << dendl; diff --git a/src/msg/async/frames_v2.h b/src/msg/async/frames_v2.h index 31be035455b0d..08a1eaa3c8357 100644 --- a/src/msg/async/frames_v2.h +++ b/src/msg/async/frames_v2.h @@ -356,19 +356,7 @@ struct SignedEncryptedFrame : public PayloadFrame { static T Decode(ceph::crypto::onwire::rxtx_t &session_stream_handlers, ceph::bufferlist &payload) { - if (!session_stream_handlers.rx) { - return PayloadFrame::Decode(payload); - } - - T c; - const auto length = payload.length(); - ceph::bufferlist plain_bl = - session_stream_handlers.rx->authenticated_decrypt_update_final( - std::move(payload), segment_t::DEFAULT_ALIGNMENT); - ceph_assert(plain_bl.length() == - length - session_stream_handlers.rx->get_extra_size_at_final()); - c.decode_frame(plain_bl); - return c; + return PayloadFrame::Decode(payload); } protected: -- 2.39.5