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;
static T Decode(ceph::crypto::onwire::rxtx_t &session_stream_handlers,
ceph::bufferlist &payload) {
- if (!session_stream_handlers.rx) {
- return PayloadFrame<T, Args...>::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<T, Args...>::Decode(payload);
}
protected: