---
title: SAIF.NetCore.HashUtil dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: SAIF Platform Team
last_reviewed: 2026-10-02
library: SAIF.NetCore.HashUtil
reference_type: package
---

# SAIF.NetCore.HashUtil dependencies

SAIF.NetCore.HashUtil has no internal or external package dependencies of any kind — its project file contains no `<PackageReference>` and no `<ProjectReference>` items — and makes no outbound API calls; its only dependency relationship in the Framework.NCore graph is as the inbound target of a NuGet package reference from `SAIF.NetCore.SystemHash`.

## Internal dependencies

None. The project file contains no `<ItemGroup>`, no `<PackageReference>`, and no `<ProjectReference>`; `package-feed-status.json` lists `SAIF.NetCore.HashUtil` with `"referenceStyles": []` and does not record it as a consumer of `SAIF.NetCore.ServiceContracts` or `SAIF.NetCore.Common`.

## External dependencies

None. No third-party NuGet packages are referenced. Only implicit `Microsoft.NET.Sdk` shared-framework BCL namespaces (`System`, `System.Collections.Generic`, `System.Linq`, `System.Text`) are used.

## Dependency risks and notes
- `Architecture.md` groups HashUtil in the "Utilities & Infra" subgraph with a group-level edge to the foundation layer, but source shows HashUtil references neither `SAIF.NetCore.ServiceContracts` nor `SAIF.NetCore.Common`; it is a true leaf package with zero SAIF dependencies*. The diagram's group-level edge is accurate for the subgraph as a whole but not for this individual member.
- HashUtil is the dependency side of one of the three documented implementation-to-implementation exceptions in `Architecture.md`: `SAIF.NetCore.SystemHash → SAIF.NetCore.HashUtil`. `SAIF.NetCore.SystemHash` references `SAIF.NetCore.HashUtil` version `8.2023.319.2` (feed latest at analysis time: `10.2026.26267.1`), a version gap that should be reviewed before any breaking change to `SaltShaker`'s public surface*.
- HashUtil reaches consuming applications only transitively, through `ServiceExtensions → SystemHash → HashUtil`; it has no direct consumer at the `ServiceExtensions` or application layer.
- Because `SaltShaker`'s salting/de-salting round trip depends on `Dictionary` enumeration order remaining stable, any future runtime change to dictionary enumeration semantics is a latent risk shared with any consumer, including `SystemHash`*.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `src/SAIF.NetCore.HashUtil/SAIF.NetCore.HashUtil/SAIF.NetCore.HashUtil.csproj`
- `src/SAIF.NetCore.SystemHash/SAIF.NetCore.SystemHash/SAIF.NetCore.SystemHash/SAIF.NetCore.SystemHash.csproj`
- `Architecture.md`
