This crate allows you to use the Windows CNG private keys together with rustls for both the client and server sides of the TLS channel.
Rationale: In many situations, it is required to use non-exportable private certificate chains
from the Windows certificate store instead of the external PKCS8 file.
rustls-cng
can use such chains in the rustls
context.
Supported key/certificate types: RSA, ECDSA/ECDH. Supported elliptic curves: secp256r1 (prime256v1), secp384r1.
Documentation is available here.
The central struct to use in rustls-cng
is CngSigningKey
, which can be constructed
from the low-level NCryptKey
handle. The instance of CngSigningKey
can then be
used in rustls
in the custom ResolvesServerCert
or ResolvesClientCert
implementation.
See the examples
directory for usage examples.
Licensed under the MIT or Apache licenses (LICENSE-MIT or LICENSE-APACHE)