$maximumPrefix) { throw new \InvalidArgumentException("Invalid CIDR range: {$cidr}"); } return $cidr; } public static function deviceFingerprint(string $fingerprint): string { $fingerprint = trim($fingerprint); if ($fingerprint === '' || strlen($fingerprint) > self::MAX_DEVICE_FINGERPRINT_LENGTH) { throw new \InvalidArgumentException( sprintf('Device fingerprint must contain between 1 and %d bytes.', self::MAX_DEVICE_FINGERPRINT_LENGTH) ); } return $fingerprint; } public static function duration(?int $durationSeconds): void { if ($durationSeconds !== null && $durationSeconds < 1) { throw new \InvalidArgumentException('Firewall rule duration must be greater than zero.'); } } }