Tuf 1.1.1
See the version list below for details.
dotnet add package Tuf --version 1.1.1
NuGet\Install-Package Tuf -Version 1.1.1
<PackageReference Include="Tuf" Version="1.1.1" />
<PackageVersion Include="Tuf" Version="1.1.1" />
<PackageReference Include="Tuf" />
paket add Tuf --version 1.1.1
#r "nuget: Tuf, 1.1.1"
#:package Tuf@1.1.1
#addin nuget:?package=Tuf&version=1.1.1
#tool nuget:?package=Tuf&version=1.1.1
Tuf
A .NET implementation of The Update Framework (TUF) client for secure software update verification.
Overview
Tuf provides a standards-compliant TUF client that securely downloads and verifies metadata from a TUF repository. It handles the full metadata verification workflow including root rotation, timestamp/snapshot freshness checks, and signature validation.
Features
- TUF specification compliant — implements the client workflow from the TUF specification
- Secure root rotation — safely updates trust anchors across key rotations
- Metadata verification — validates signatures, expiration, and version consistency
- Experimental ML-DSA verification — supports TAP 21 v1
ml-dsa-44/1,ml-dsa-65/1, andml-dsa-87/1signatures - Pluggable caching — in-memory and file-system cache implementations included
- Pluggable repository — HTTP repository included, custom transports supported
- AOT-compatible — fully trimmer and NativeAOT safe
- OpenTelemetry-ready — emits native .NET activities and metrics without an exporter dependency
ML-DSA verification uses the draft TAP 21 scheme and Bouncy Castle's experimental ML-DSA implementation. Treat this support as experimental until TAP 21 and the underlying cryptographic implementation are finalized.
Quick Start
using Tuf;
// Create a TUF client with HTTP repository and file-system cache
var options = new TufClientOptions
{
MetadataBaseUrl = new Uri("https://tuf-repo-cdn.sigstore.dev/"),
TargetsBaseUrl = new Uri("https://tuf-repo-cdn.sigstore.dev/targets/"),
TrustedRoot = await File.ReadAllBytesAsync("root.json"),
Cache = new FileSystemTufCache("/path/to/cache")
};
var client = new TufClient(options);
// Get and verify the current trusted metadata
var metadata = await client.GetTrustedMetadataAsync();
Telemetry
The package emits diagnostics through the built-in System.Diagnostics
APIs. Applications choose how to collect and export them; the package does not
initialize OpenTelemetry or install an exporter.
services.AddOpenTelemetry()
.WithTracing(tracing =>
tracing.AddSource(TufTelemetry.ActivitySourceName))
.WithMetrics(metrics =>
metrics.AddMeter(TufTelemetry.MeterName));
The Tuf activity source emits tuf.metadata.refresh and tuf.target.get
activities. Metadata role updates, repository fetches, and delegated target
resolution appear as child activities.
The package emits these metrics:
tuf.metadata.refresh.duration,tuf.metadata.refresh.active, andtuf.metadata.refresh.queue.durationtuf.target.get.duration,tuf.target.get.active, andtuf.target.get.queue.durationtuf.target.size
Duration instruments use seconds and target size uses bytes. Target
measurements include the bounded tuf.target.cache_hit attribute. Failed
operations include the standard error.type attribute. Target paths,
delegated role names, key IDs, hashes, and repository URLs are not emitted as
telemetry attributes.
Enable the standard .NET HTTP client instrumentation alongside this source to observe individual network requests without duplicate TUF HTTP metrics.
Documentation
License
MIT — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BouncyCastle.Cryptography (>= 2.7.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Tuf:
| Package | Downloads |
|---|---|
|
Sigstore
A .NET library for generating and verifying Sigstore signatures. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Tuf:
| Repository | Stars |
|---|---|
|
microsoft/aspire
Aspire is the tool for code-first, extensible, observable dev and deploy.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.0-alpha.169.1.7177570 | 69 | 10/9/2026 |
| 1.2.0-alpha.158.1.0041eeb | 78 | 9/28/2026 |
| 1.2.0-alpha.155.1.1aaecee | 76 | 9/28/2026 |
| 1.2.0-alpha.149.1.a0c6700 | 77 | 9/28/2026 |
| 1.2.0-alpha.140.1.5703f31 | 74 | 9/27/2026 |
| 1.2.0-alpha.138.1.bbd074f | 85 | 9/27/2026 |
| 1.1.1 | 7,226 | 10/9/2026 |
| 1.1.1-beta.171.1.c0f5ff9 | 66 | 10/9/2026 |
| 1.1.0 | 2,033 | 9/28/2026 |
| 1.1.0-beta.159.1.0041eeb | 135 | 9/28/2026 |
| 1.1.0-beta.136.1.399a6e9 | 84 | 9/27/2026 |
| 1.1.0-alpha.135.1.399a6e9 | 132 | 8/29/2026 |
| 1.1.0-alpha.131.1.fd8696f | 173 | 8/24/2026 |
| 1.1.0-alpha.129.1.d458555 | 98 | 8/24/2026 |
| 1.1.0-alpha.120.1.e78e1a9 | 84 | 8/22/2026 |
| 1.1.0-alpha.117.1.09281bc | 101 | 8/22/2026 |
| 1.1.0-alpha.111.1.15fc60d | 97 | 8/14/2026 |
| 1.0.1 | 2,930 | 8/24/2026 |
| 1.0.1-beta.122.1.7bc133a | 138 | 8/22/2026 |
| 1.0.1-beta.112.1.de60e02 | 104 | 8/14/2026 |