**** THIS FUNCTION WILL BE DEPRECATED USE unpack_message INSTEAD ****

    Decrypt a message by authenticated-encryption scheme.

    Sender can encrypt a confidential message specifically for Recipient, using Sender's public key.
    Using Recipient's public key, Sender can compute a shared secret key.
    Using Sender's public key and his secret key, Recipient can compute the exact same shared secret key.
    That shared secret key can be used to verify that the encrypted message was not tampered with,
    before eventually decrypting it.

    Note to use DID keys with this function you can call key_for_did to get key id (verkey)
    for specific DID.

    :param wallet_handle: wallet handler (created by open_wallet).
    :param recipient_vk: id (verkey) of my key. The key must be created by calling create_key or create_and_store_my_did
    :param encrypted_msg: encrypted message
    :return: sender verkey and decrypted message

async def auth_decrypt(wallet_handle: int,
                       recipient_vk: str,
                       encrypted_msg: bytes) -> (str, bytes):
    """
    **** THIS FUNCTION WILL BE DEPRECATED USE unpack_message INSTEAD ****

    Decrypt a message by authenticated-encryption scheme.

    Sender can encrypt a confidential message specifically for Recipient, using Sender's public key.
    Using Recipient's public key, Sender can compute a shared secret key.
    Using Sender's public key and his secret key, Recipient can compute the exact same shared secret key.
    That shared secret key can be used to verify that the encrypted message was not tampered with,
    before eventually decrypting it.

    Note to use DID keys with this function you can call key_for_did to get key id (verkey)
    for specific DID.

    :param wallet_handle: wallet handler (created by open_wallet).
    :param recipient_vk: id (verkey) of my key. The key must be created by calling create_key or create_and_store_my_did
    :param encrypted_msg: encrypted message
    :return: sender verkey and decrypted message
    """

    logger = logging.getLogger(__name__)
    logger.debug("auth_decrypt: >>> wallet_handle: %r, recipient_vk: %r, encrypted_msg: %r",
                 wallet_handle,
                 recipient_vk,
                 encrypted_msg)

    def transform_cb(key: c_char_p, arr_ptr: POINTER(c_uint8), arr_len: c_uint32):
        return key, bytes(arr_ptr[:arr_len]),

    if not hasattr(auth_decrypt, "cb"):
        logger.debug("crypto_box_open: Creating callback")
        auth_decrypt.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32, c_char_p, POINTER(c_uint8), c_uint32),
                                    transform_cb)

    c_wallet_handle = c_int32(wallet_handle)
    c_recipient_vk = c_char_p(recipient_vk.encode('utf-8'))
    c_encrypted_msg_len = c_uint32(len(encrypted_msg))

    (sender_vk, msg) = await do_call('indy_crypto_auth_decrypt',
                                     c_wallet_handle,
                                     c_recipient_vk,
                                     encrypted_msg,
                                     c_encrypted_msg_len,
                                     auth_decrypt.cb)

    sender_vk = sender_vk.decode()
    res = (sender_vk, msg)

    logger.debug("auth_decrypt: <<< res: %r", res)
    return res