def decrypt(self, key, data, mode, padding):
        # pylint: disable=unused-argument,no-self-use
        """Decrypt data using the supplied values.

        :param bytes key: Loaded decryption key
        :param bytes data: IV prepended to encrypted data
        :param JavaMode mode: Decryption mode to use (not used by :class:`JavaAsymmetricEncryptionAlgorithm`)
        :param JavaPadding padding: Padding mode to use
        :returns: Decrypted data
        :rtype: bytes
        """
        if hasattr(key, "public_bytes"):
            raise NotImplementedError('"decrypt" is not supported by public keys')
        try:
            return key.decrypt(data, padding.build())
        except Exception:
            error_message = "Decryption failed"
            _LOGGER.exception(error_message)
            raise DecryptionError(error_message)