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:----jRmH2ZiLN1rYppYC5+LT0o07Th1db2j+A5juwBmc1yHIu2K70xEMK1+c6vorSNhS9qUED0PUqPdiUL9m9+7YU3u4UNK7wlQIYcU4McSrCKOLo/p7jBOXFftLHRg/hDJ/5Uk91i+Ip58BFWGuob/aC9V2KIoy+/KlZAOiD5q6FzV398ssX32oslV5BiccAS0VkMkyLtqZmeXeQn5ButDx/mfPdy8WndVscDkA0XqjYW3DACXpSZUHglxsSQnlfFi36TW0MXf86tormXjY5KiDLleVHbGJJCS4HSulceVh8Tur3Rx3vhBrbGL8gHtEGpr+dnO1AMv7qH/lNKKgwuUbV7NWNCNIrClgUnjmfYgCrzmyPmIv7qf7VJg+Cro5akFgVDKDee7V96WbyDrIf4Sq75VgCFifzft7/7NqIUnimhWMYyAoxFoYnUyzr7+n8ViyEzsoKWn1xJp8eI8rNLmBwnUdUDdnQcXRKhsBoJ8fbA82o+E2qGFjQlrmzPZosIhm1rlTSIf28k7Z+uZivzyJOX94ERgEEZhXKDQQ15C5TvaUAPdvTvB5KC1/+dasJ4FTwTeC7uhegESTCuNKBHAt5npVk2ZdP4Nxbc2FjbRcPN4cxdGoYCjVh1HexOgPfsQcujR2oJIyVBZVZ0mwIoNntJie81xlvM1Us6m8kevO3I8=----ATTACHMENT:----NjczNzMwNDI0ODc0MjcwIDY5NDQ4MzMxOTk5NTk1MzkgNjQxMDQzNjk1ODAzMTkwOQ==