Get the hasher factory based on the configured algorithm.
Parameters:
| Name | Type | Description | Default |
algorithm | str | Hash algorithm name (blake3, sha256, or sha512) | required |
Returns a callable that creates a new hasher instance. Supports blake3 (default), sha256, and sha512 for FIPS compliance.
See: https://github.com/vllm-project/vllm/issues/18334
Source code in vllm/multimodal/hasher.py
| @functools.lru_cache(maxsize=3)
def _get_hasher_factory(algorithm: str) -> Callable[[], "hashlib._Hash"]:
"""
Get the hasher factory based on the configured algorithm.
Args:
algorithm: Hash algorithm name (blake3, sha256, or sha512)
Returns a callable that creates a new hasher instance.
Supports blake3 (default), sha256, and sha512 for FIPS compliance.
See: https://github.com/vllm-project/vllm/issues/18334
"""
algorithm = algorithm.lower()
if algorithm == "blake3":
from blake3 import blake3
return blake3
elif algorithm == "sha256":
return hashlib.sha256
elif algorithm == "sha512":
return hashlib.sha512
else:
# This should never happen due to env_with_choices validation
raise ValueError(f"Unsupported hash algorithm: {algorithm}")
|