docs: def decode(self, envelope, session, private_key=None, oaep_hash_fn_name=None, mgf1_hash_fn_name=None, **kwargs):
  		""" :meth:`.WMessengerOnionCoderLayerProto.decode` method implementation.
  
  		:param envelope: original envelope
  		:param session: original session
  		:param private_key: private key to decrypt
  		:param oaep_hash_fn_name: hash function name
  		:param mgf1_hash_fn_name: MGF1 hash function name
  		:param kwargs: additional arguments
  
  		:return: WMessengerBytesEnvelope
  		"""
  		message = private_key.decrypt(
  			envelope.message(), oaep_hash_fn_name=oaep_hash_fn_name, mgf1_hash_fn_name=mgf1_hash_fn_name
  		)
  		return WMessengerBytesEnvelope(message, meta=envelope)