MacroDeck.Signing 3.0.0-beta.13

This is a prerelease version of MacroDeck.Signing.
dotnet add package MacroDeck.Signing --version 3.0.0-beta.13
                    
NuGet\Install-Package MacroDeck.Signing -Version 3.0.0-beta.13
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MacroDeck.Signing" Version="3.0.0-beta.13" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MacroDeck.Signing" Version="3.0.0-beta.13" />
                    
Directory.Packages.props
<PackageReference Include="MacroDeck.Signing" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MacroDeck.Signing --version 3.0.0-beta.13
                    
#r "nuget: MacroDeck.Signing, 3.0.0-beta.13"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MacroDeck.Signing@3.0.0-beta.13
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MacroDeck.Signing&version=3.0.0-beta.13&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=MacroDeck.Signing&version=3.0.0-beta.13&prerelease
                    
Install as a Cake Tool

MacroDeck.Signing

Package signing for Macro Deck: the Ed25519 primitives, the creator certificate chain, and the canonical digest every signable Macro Deck package is signed over. One implementation, shared by the macrodeck-plugin CLI, the Macro Deck host and the Macro Deck Platform, so an artifact signed by one of them verifies in the others.

What is in here:

  • MacroDeck.Signing.Keys - Ed25519 key pairs, the base64 key files a signer holds, and SigningMaterial, which pairs a private key with the certificate it belongs to and refuses the pairing when it does not.
  • MacroDeck.Signing.Certificates - the Macro Deck signing certificate and SigningCertificateChain, which verifies a certificate's exact file bytes against the Macro Deck root public key, requires an exclusive key usage, and evaluates the validity window at a caller-supplied instant.
  • MacroDeck.Signing.Packages - PackageSigner and PackageVerifier over the five signable extensions, and the canonical digest of each format (macro-deck-plugin/1, macro-deck-iconpack/1, macro-deck-portable/1).
  • MacroDeck.Signing.Registry - verification of a signed Store Registry manifest.
  • MacroDeckRootKey - the pinned trust anchor. Verification only; the private half exists offline.

Signing keys are not a plugin developer's concern: artifacts published to the Macro Deck Store are signed by the Creator Portal, server-side, and no signing key or certificate ever reaches a plugin author or a CI workflow. See Publishing to the Store.

Every signable Macro Deck package carries its signature in its own manifest and its certificate as certificate.json and certificate.sig at its archive root, so a signed artifact verifies on its own. There are no detached signature files.

Two things this package deliberately does not do. It never issues trust: there is no root key generation, no certificate issuance, no registry signing. And it never consults revocation data - a successful verification proves the signature and the certificate chain at the time of signing, nothing about whether that certificate is still trusted today.

Expected failures are results, not exceptions. A signature that does not verify is a verdict you render, not an exception you catch.

See the plugin development documentation and the published schemas for the certificate and the signature material.

Licensed under Apache-2.0.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-beta.13 29 9/24/2026
3.0.0-beta.12 99 9/23/2026
3.0.0-beta.11 55 9/17/2026
3.0.0-beta.7 48 9/16/2026
3.0.0-beta.6 53 9/15/2026
3.0.0-beta.5 53 9/14/2026
3.0.0-beta.4 56 9/11/2026
3.0.0-beta.3 55 9/9/2026
3.0.0-beta.2 67 9/6/2026
3.0.0-beta.1 75 9/6/2026