value => 20, self::SHA256->value => 32, self::SHA384->value => 48, self::SHA512->value => 64, self::SHA3_256->value => 32, self::SHA3_384->value => 48, self::SHA3_512->value => 64, ]; public function isAllowedForHmac(): bool { return in_array($this, self::ALLOWED_HMAC_ALGOS, true); } /** * @param bool $binary whether to return binary or hex length */ public function length(bool $binary = false): int { return self::BINARY_LENGTHS[$this->value] * ($binary ? 1 : 2); } public function equals(string $other): bool { return strtolower($this->value) === strtolower($other); } public function hash(string $data, bool $binary = false): string { return hash($this->value, $data, $binary); } }