def get_jwt_decrypt_keys(self, jwt, **kwargs):
        """
        Get decryption keys from this keyjar based on information carried
        in a JWE. These keys should be usable to decrypt an encrypted JWT.

        :param jwt: A cryptojwt.jwt.JWT instance
        :param kwargs: Other key word arguments
        :return: list of usable keys
        """

        try:
            _key_type = jwe_alg2keytype(jwt.headers['alg'])
        except KeyError:
            _key_type = ''

        try:
            _kid = jwt.headers['kid']
        except KeyError:
            logger.info('Missing kid')
            _kid = ''

        keys = self.get(key_use='enc', owner='', key_type=_key_type)

        try:
            _aud = kwargs['aud']
        except KeyError:
            _aud = ''

        if _aud:
            try:
                allow_missing_kid = kwargs['allow_missing_kid']
            except KeyError:
                allow_missing_kid = False

            try:
                nki = kwargs['no_kid_issuer']
            except KeyError:
                nki = {}

            keys = self._add_key(keys, _aud, 'enc', _key_type, _kid, nki,
                                 allow_missing_kid)

        # Only want the appropriate keys.
        keys = [k for k in keys if k.appropriate_for('decrypt')]
        return keys
Get decryption keys from this keyjar based on information carried
        in a JWE. These keys should be usable to decrypt an encrypted JWT.

        :param jwt: A cryptojwt.jwt.JWT instance
        :param kwargs: Other key word arguments
        :return: list of usable keys