WINDOWS CNG/KSP

NCrypt provider contract

The CNG/KSP guide documents installation, provider discovery, persisted-key lifecycle, properties, signing and protected backend behavior.

01

Provider release facts

FieldRequired release value
Registered provider nameExact string from signed release manifest
PackageMSI/MSIX/DLL names and SHA-256 checksums
Architecturex64/ARM64 by release
WindowsExact Windows 11/Server builds
BackendTrusted Key, HSM/QSCD, Trusted SIC or test backend
Installation scopePer-machine/per-user
LoggingEvent source, level and support bundle

02

NCrypt function support matrix

FunctionStatusContract
NCryptOpenStorageProviderProfiledProvider name must match signed release manifest.
NCryptCreatePersistedKeyProfiledKey type, user/machine scope and backend policy.
NCryptFinalizeKeyProfiledPolicy validation and backend creation evidence.
NCryptOpenKeyProfiledContainer naming, ACL and availability.
NCryptEnumKeysProfiledEnumeration visibility and pagination behavior.
NCryptSignHashProfiledAlgorithm, padding/encoding and authentication.
NCryptVerifySignatureProfiledLocal/provider verification and error mapping.
NCryptImportKeyRestrictedApproved migration/import formats only.
NCryptExportKeyRestrictedPublic key or explicitly approved wrapped export.
NCryptGetPropertyAllow-listedPublished property matrix.
NCryptSetPropertyAllow-listedMutable-property policy.
NCryptDeleteKeyProfiledDeletion, zeroization and audit result.

03

Key-container and policy model

NAM

Container naming

Stable naming, tenant/application prefix and collision rules.

ACL

Identity & ACL

Windows identity, service account and machine/user scope.

EXP

Export policy

Non-exportable private keys; public or wrapped export only by profile.

AUT

Authentication

PIN, local step-up or remote approval with defined session lifetime.

ROT

Rotation

Certificate/key rollover, overlap and application re-binding.

DEL

Deletion

Fail-closed deletion, zeroization result and immutable audit.

04

Minimal NCrypt flow

NCryptOpenStorageProvider
  → NCryptCreatePersistedKey
  → NCryptSetProperty
  → NCryptFinalizeKey
  → NCryptSignHash
  → NCryptVerifySignature
  → NCryptFreeObject