code: def get_jwt_decrypt_keys(self, jwt, **kwargs):
          
  
          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
docs: 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