docs: async def anon_crypt(recipient_vk: str,
                       msg: bytes) -> bytes:
      """
      Encrypts a message by anonymous-encryption scheme.
  
      Sealed boxes are designed to anonymously send messages to a Recipient given its public key.
      Only the Recipient can decrypt these messages, using its private key.
      While the Recipient can verify the integrity of the message, it cannot verify the identity of the Sender.
  
      Note to use DID keys with this function you can call key_for_did to get key id (verkey)
      for specific DID.
  
      Note: use pack_message function for A2A goals.
  
      :param recipient_vk: verkey of message recipient
      :param msg: a message to be signed
      :return: an encrypted message as an array of bytes
      """
  
      logger = logging.getLogger(__name__)
      logger.debug("anon_crypt: >>> recipient_vk: %r, msg: %r",
                   recipient_vk,
                   msg)
  
      def transform_cb(arr_ptr: POINTER(c_uint8), arr_len: c_uint32):
          return bytes(arr_ptr[:arr_len]),
  
      if not hasattr(anon_crypt, "cb"):
          logger.debug("anon_crypt: Creating callback")
          anon_crypt.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32, POINTER(c_uint8), c_uint32), transform_cb)
  
      c_recipient_vk = c_char_p(recipient_vk.encode('utf-8'))
      c_msg_len = c_uint32(len(msg))
  
      encrypted_message = await do_call('indy_crypto_anon_crypt',
                                        c_recipient_vk,
                                        msg,
                                        c_msg_len,
                                        anon_crypt.cb)
      res = encrypted_message
      logger.debug("anon_crypt: <<< res: %r", res)
      return res