code: async def unpack_message(wallet_handle: int,
                           jwe: bytes) -> bytes:
      
  
      logger = logging.getLogger(__name__)
      logger.debug("unpack_message: >>> wallet_handle: %r, jwe: %r",
                   wallet_handle,
                   jwe)
  
      def transform_cb(arr_ptr: POINTER(c_uint8), arr_len: c_uint32):
          return bytes(arr_ptr[:arr_len]),
  
      if not hasattr(unpack_message, "cb"):
          logger.debug("unpack_message: Creating callback")
          unpack_message.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32, POINTER(c_uint8), c_uint32), transform_cb)
  
      c_wallet_handle = c_int32(wallet_handle)
      c_jwe_len = c_uint32(len(jwe))
      res = await do_call('indy_unpack_message',
                          c_wallet_handle,
                          jwe,
                          c_jwe_len,
                          unpack_message.cb)
  
      logger.debug("unpack_message: <<< res: %r", res)
      return res
docs: Unpacks a JWE-like formatted message outputted by pack_message (Experimental)
  
      #Params
      command_handle: command handle to map callback to user context.
      wallet_handle: wallet handler (created by open_wallet)
      message: the output of a pack message
  
      #Returns -> See HIPE 0028 for details
      (Authcrypt mode)
  
      {
          "message": <decrypted message>,
          "recipient_verkey": <recipient verkey used to decrypt>,
          "sender_verkey": <sender verkey used to encrypt>
      }
  
      (Anoncrypt mode)
  
      {
          "message": <decrypted message>,
          "recipient_verkey": <recipient verkey used to decrypt>,
      }