pragma solidity ^0.8.4; /// @dev An interface for contracts implementing a DNSSEC (signing) algorithm. interface Algorithm { /// @dev Verifies a signature. /// @param key The public key to verify with. /// @param data The signed data to verify. /// @param signature The signature to verify. /// @return True iff the signature is valid. function verify( bytes calldata key, bytes calldata data, bytes calldata signature ) external view virtual returns (bool); }