def decrypt_keys(self, enctext, keys=None, id_attr=''):
        """ Decrypting an encrypted text by the use of a private key.

        :param enctext: The encrypted text as a string
        :param keys: Keys to try to decrypt enctext with
        :param id_attr: The attribute name for the identifier, normally one of
            'id','Id' or 'ID'
        :return: The decrypted text
        """
        key_files = []

        if not isinstance(keys, list):
            keys = [keys]

        keys = [key for key in keys if key]
        for key in keys:
            if not isinstance(key, six.binary_type):
                key = key.encode("ascii")
            _, key_file = make_temp(key, decode=False, delete=False)
            key_files.append(key_file)

        try:
            dectext = self.decrypt(enctext, key_file=key_files, id_attr=id_attr)
        except DecryptError as e:
            raise
        else:
            return dectext
        finally:
            for key_file in key_files:
                os.unlink(key_file)
Decrypting an encrypted text by the use of a private key.

        :param enctext: The encrypted text as a string
        :param keys: Keys to try to decrypt enctext with
        :param id_attr: The attribute name for the identifier, normally one of
            'id','Id' or 'ID'
        :return: The decrypted text