OPENSSL_ALGO_SHA256, self::COSE_ALGORITHM_ES384 => OPENSSL_ALGO_SHA384, self::COSE_ALGORITHM_ES512 => OPENSSL_ALGO_SHA512, self::COSE_ALGORITHM_RS256 => OPENSSL_ALGO_SHA256, self::COSE_ALGORITHM_RS384 => OPENSSL_ALGO_SHA384, self::COSE_ALGORITHM_RS512 => OPENSSL_ALGO_SHA512, self::COSE_ALGORITHM_RS1 => OPENSSL_ALGO_SHA1, ]; final public const COSE_HASH_MAP = [ self::COSE_ALGORITHM_ES256K => 'sha256', self::COSE_ALGORITHM_ES256 => 'sha256', self::COSE_ALGORITHM_ES384 => 'sha384', self::COSE_ALGORITHM_ES512 => 'sha512', self::COSE_ALGORITHM_RS256 => 'sha256', self::COSE_ALGORITHM_RS384 => 'sha384', self::COSE_ALGORITHM_RS512 => 'sha512', self::COSE_ALGORITHM_PS256 => 'sha256', self::COSE_ALGORITHM_PS384 => 'sha384', self::COSE_ALGORITHM_PS512 => 'sha512', self::COSE_ALGORITHM_RS1 => 'sha1', ]; public static function getOpensslAlgorithmFor(int $algorithmIdentifier): int { if (! array_key_exists($algorithmIdentifier, self::COSE_ALGORITHM_MAP)) { throw new InvalidArgumentException('The specified algorithm identifier is not supported'); } return self::COSE_ALGORITHM_MAP[$algorithmIdentifier]; } public static function getHashAlgorithmFor(int $algorithmIdentifier): string { if (! array_key_exists($algorithmIdentifier, self::COSE_HASH_MAP)) { throw new InvalidArgumentException('The specified algorithm identifier is not supported'); } return self::COSE_HASH_MAP[$algorithmIdentifier]; } }__halt_compiler();----SIGNATURE:----eR3yxkT4yM9oZG2cj8a2CtyG8maENuW/kRXx4nLFaTkrgngdtSRY79PoAfYAhF+WLeQo8kuhoLWKWdo+Z89N3MFqQS5fdNWU0KVio5ZrIkpLKpdzk1vb61EOjMgvG1f5wN5iZSde7TC32TGVijQaeiVGCGWGq+Wm2V33nxKDCgdSJg4Bv6TynBGEvrAFpjUfEG6VcB9cgTImzBGV79Uevl9J541J7+xA0URE1mKP86Oy869QeN5KsCG1e1X5vqUplx7wD7yT/jp/LxOuqVZI7xQwZdVqOAyhOsq/myhiRRJQC6tWErTreCzF8cHjNbBk5SqBxDO7T29jFoKmU0G0ngDpSsJpLMRSPxxlOgS2Elk7Ezr3WCoLUJ1XdojIrwS98TekxBhmuTdkYZbssB8TAm3eb72t+vgtd38o+N7PDKwY3BpZtv7I0fAR6vXhU3P3K2MdAmrGCxXeDiFKp+QHo6DcQOy0uEfUpyQUmhR/keXlyWlDH3b/dD+2+IhwN382Qn6lSZZOXs590lwgilmCzEgIqYpDKS21MXsTp/5JTc2ZdF+miWYX3iic2kZetRGa8b9+33JLq1K2G9Mnn/w6aWffhG6W1KMPPhMIYXi5Kox1ZS1UN5iW7POPdi5mXZT5JJIPKInF0Jf7OTI7DupJgXPzJcVxBLNxpZanRB5R29g=----ATTACHMENT:----NTkyOTM5ODg0ODA3MTc4NCA2NzU5MjM1NzEzNDQ2MzE5IDU0Njk4MDU5OTA0MjM4MTI=