====== X509StoreExtensions ====== **Namespace:** ''WvdS.System.Security.Cryptography.X509Certificates'' Extensions for ''X509Store'' with post-quantum key persistence. Enables saving and restoring PQ keys in the Windows Certificate Store. ===== Methods ===== ^ Method ^ Description ^ | ''Add(certificate, mode)'' | Adds certificate and persists PQ keys | | ''AddRange(collection, mode)'' | Adds multiple certificates | | ''Remove(certificate, deletePqKeys)'' | Removes certificate and optionally PQ keys | | ''Find(findType, findValue, validOnly, restorePqKeys)'' | Searches certificates and restores PQ keys | | ''GetCertificatesWithPqKeys()'' | All certificates with restored PQ keys | ===== Static Methods ===== ^ Method ^ Description ^ | ''PersistPqKeys(certificate)'' | Persists PQ keys manually | | ''RestorePqKeys(certificate)'' | Restores PQ keys manually | | ''DeletePqKeys(certificate)'' | Deletes persisted PQ keys | | ''HasPersistedPqKeys(certificate)'' | Checks if PQ keys exist | ===== Example ===== using var store = new X509Store(StoreName.My, StoreLocation.CurrentUser); store.Open(OpenFlags.ReadWrite); // Add certificate with PQ keys var hybridCert = CreateHybridCertificate(); store.Add(hybridCert, CryptoMode.Hybrid); // Search later and restore PQ keys var certs = store.Find( X509FindType.FindBySubjectName, "MyCertificate", validOnly: true, restorePqKeys: true); ===== Storage Location ===== ^ Operating System ^ Path ^ | Windows | ''%LOCALAPPDATA%\WvdS.Crypto\PqKeys\'' | | Linux | ''~/.local/share/WvdS.Crypto/PqKeys/'' | | macOS | ''~/Library/Application Support/WvdS.Crypto/PqKeys/'' | ===== Security Notes ===== * PQ keys are only accessible to the current user (DPAPI/AES encrypted) * Create backup before system migration * Run ''CleanupOrphanedKeys()'' regularly ===== See Also ===== * [[.:x509certificate2exportextensions|X509Certificate2ExportExtensions]] * [[.:truststoreextensions|TrustStoreExtensions]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//