dotnet-nuget-verify(1)

πŸ“¦
version 11.0.0~rc3 Β· 6 versions
, in alpine 3.24, centos-stream 10, centos-stream 9, fedora 43, fedora 44, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– dotnet-nuget-verify β€” the .NET Documentation manual page, bestie edition πŸ’–

okay so you found the dotnet-nuget-verify(1) page from the .NET Documentation, and honestly? iconic of you. this one applies to βœ”οΈ .NET 6 SDK and later versions, so if you're on anything older... babes, we gotta talk. 🫢


✨ NAME ✨

dotnet-nuget-verify β€” verifies a signed NuGet package. that's it, that's the whole vibe. it's the "bestie, is this actually signed tho?" command. πŸ”₯


🌸 SYNOPSIS 🌸

dotnet nuget verify [<package-path(s)>]
    [--all]
    [--certificate-fingerprint <FINGERPRINT>]
    [-v|--verbosity <LEVEL>]
    [--configfile <FILE>]

dotnet nuget verify -h|--help

πŸ¦‹ DESCRIPTION πŸ¦‹

so dotnet nuget verify verifies a signed NuGet package. lowkey its whole job. ✨

and in .NET 10 and later versions, it also outputs the package's content hash, which might be useful to investigate lock file validation errors. so if your lock file is being dramatic, this is your girl. πŸ’…

🚨 okay important stuff, no cap: this command requires a certificate root store that is valid for both code signing and timestamping. also, this command may not be supported on some combinations of operating system and .NET SDK. for more info, see NuGet signed package verification. don't come for me, come for the cert store. 😭

πŸŽ€ ARGUMENTS πŸŽ€

  • package-path(s) β€” specifies the file path to the package(s) to be verified. you can pass in multiple position arguments to verify multiple packages at once. slay, batch it. πŸ‘‘

✨ OPTIONS ✨

  • --all β€” specifies that all verifications possible should be performed on the package(s). by default, only signatures are verified. heads up tho: this command currently supports only signature verification. so --all is giving main character energy but it's a one-trick pony rn. πŸ™ˆ
  • --certificate-fingerprint <FINGERPRINT> β€” verify that the signer certificate matches with one of the specified SHA256 fingerprints. you can supply this option multiple times to provide multiple fingerprints. stack 'em like friendship bracelets. πŸŽ€
  • -v|--verbosity <LEVEL> β€” sets the verbosity level of the command. allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. the default is minimal. for more information, see <xref:Microsoft.Build.Framework.LoggerVerbosity>. πŸ‘€

okay so here's what actually shows up at each level (the original page does this as a big table, but tables are not the vibe here so we're doing bullets, and every single row is still here, promise):

  • Certificate chain Information β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] ❌ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Path to package being verified β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Hashing algorithm used for signature β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Author/Repository Certificate -> SHA1 hash β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Author/Repository Certificate -> Issued By β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Timestamp Certificate -> Issued By β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Timestamp Certificate -> SHA-256 hash β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Timestamp Certificate -> Validity period β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Timestamp Certificate -> SHA1 hash β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Timestamp Certificate -> Subject name β€” q[uiet] ❌ Β· m[inimal] ❌ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Author/Repository Certificate -> Subject name β€” q[uiet] ❌ Β· m[inimal] βœ”οΈ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Author/Repository Certificate -> SHA-256 hash β€” q[uiet] ❌ Β· m[inimal] βœ”οΈ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Author/Repository Certificate -> Validity period β€” q[uiet] ❌ Β· m[inimal] βœ”οΈ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Author/Repository Certificate -> Service index URL (If applicable) β€” q[uiet] ❌ Β· m[inimal] βœ”οΈ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Package name being verified β€” q[uiet] ❌ Β· m[inimal] βœ”οΈ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ
  • Type of signature (author or repository) β€” q[uiet] ❌ Β· m[inimal] βœ”οΈ Β· n[ormal] βœ”οΈ Β· d[etailed] βœ”οΈ Β· diag[nostic] βœ”οΈ

πŸ’€ ❌ indicates details that are not displayed. βœ”οΈ indicates details that are displayed. that's the whole legend, not me gatekeeping.

  • --configfile <FILE> β€” the NuGet configuration file (nuget.config) to use. if specified, only the settings from this file will be used. if not specified, the hierarchy of configuration files from the current directory will be used. for more info, see Common NuGet Configurations. ✨
  • -?|-h|--help β€” prints out a description of how to use the command. classic. the "help me bestie" button. 🫢

🌈 EXAMPLES 🌈

  1. verify foo.nupkg:
dotnet nuget verify foo.nupkg
  1. verify multiple NuGet packages β€” foo.nupkg and all .nupkg files in the directory specified:
dotnet nuget verify foo.nupkg c:\mydir\*.nupkg
  1. verify foo.nupkg signature matches with the specified certificate fingerprint:
dotnet nuget verify foo.nupkg --certificate-fingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039
  1. verify foo.nupkg signature matches with one of the specified certificate fingerprints:
dotnet nuget verify foo.nupkg --certificate-fingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039 --certificate-fingerprint EC10992GG5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E027
  1. verify the signature of foo.nupkg by using settings (packagesources and trustedSigners) only from the specified nuget.config file:
dotnet nuget verify foo.nupkg --configfile ..\Settings\nuget.config

and that's the whole page, bestie, every last crumb of it. πŸ“

sign-off time: this page came from the .NET Documentation and it's dated 2025-10-30, and it lives at the address dotnet-nuget-verify(1). go verify something and feel extremely powerful about it. πŸ’œπŸ§šβœ¨

πŸ“¦ where this page comes from