steffengy / schannel-rs

Schannel API-bindings for rust (provides an interface for native SSL/TLS using windows APIs)
MIT License
46 stars 50 forks source link

Add PfxImportOptions::named_no_persist_key() #97

Open ironyman opened 11 months ago

ironyman commented 11 months ago

This function sets PKCS12_NAMED_NO_PERSIST_KEY flag for PFXImportCertStore call to import pkcs12 file to prevent Windows from persisting the keys from the pkcs12 file to disk. Without this flag keys imported from pkcs12 files are saved to disk and need to be deleted manually (they are leaked usually).

The PKCS12_NAMED_NO_PERSIST_KEY flag requires a sufficiently new build of Windows so this change will try to use PKCS12_NAMED_NO_PERSIST_KEY if it's available and fall back to the leaky use of PFXImportCertStore if PKCS12_NAMED_NO_PERSIST_KEY is not available.

This fixes https://github.com/steffengy/schannel-rs/issues/98.

steffengy commented 9 months ago

Where's PKCS12_NAMED_NO_PERSIST_KEY documented?