====== X509Certificate2ExportExtensions ======
**Namespace:** ''WvdS.System.Security.Cryptography.X509Certificates''
Export and import extensions for ''X509Certificate2'' with post-quantum key persistence. Enables saving and restoring PQ keys in PFX/PKCS#12 files.
===== Export Methods =====
^ Method ^ Description ^
| ''ExportPfx(password, mode)'' | Exports certificate as PFX with PQ keys |
| ''ExportPfx(collection, password, mode)'' | Exports collection with PQ keys |
| ''ExportPfxToFile(fileName, password, mode)'' | Exports directly to file |
===== Import Methods =====
^ Method ^ Description ^
| ''ImportPfx(pfxBytes, password, flags)'' | Imports PFX with PQ key restoration |
| ''ImportPfx(fileName, password, flags)'' | Imports from file |
| ''ImportPfxCollection(pfxBytes, password, flags)'' | Imports collection with PQ keys |
===== Example =====
// Export certificate
var cert = GetHybridCertificate();
cert.ExportPfxToFile("certificate.pfx", "MyPassword123!");
// Import later
var importedCert = X509Certificate2ExportExtensions.ImportPfx(
"certificate.pfx",
"MyPassword123!");
// PQ keys are automatically restored
var pqPubKey = PqKeyStore.GetPublicKey(importedCert);
===== PFX Format =====
+---------------------------+
| Standard PKCS#12 Data |
| (Certificate + RSA/ECDSA) |
+---------------------------+
| Marker: "WVDS-PQ-KEYS-V1" |
+---------------------------+
| Encrypted PQ Keys |
| (AES-256-GCM) |
+---------------------------+
===== Security Notes =====
* PQ private keys are protected with the same password as the PFX
* Use strong passwords (min. 16 characters)
* PFX files with PQ keys are larger (~4KB additional per certificate)
===== See Also =====
* [[.:x509certificate2extensions|X509Certificate2Extensions]]
* [[.:x509storeextensions|X509StoreExtensions]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//