====== X509ChainExtensions ======
**Imenski prostor:** ''WvdS.System.Security.Cryptography.X509Certificates''
Razširitve Drop-In Replacement za ''X509Chain'' z validacijo post-kvantnih podpisov. Razširja standardno validacijo verige s preverjanjem PQ-podpisov v vseh treh kripto-načinih.
===== Metode =====
^ Metoda ^ Opis ^
| ''Build(certificate, mode)'' | Zgradi in validira certifikatno verigo s CryptoMode |
| ''Build(certificate, customTrustStore, mode)'' | Validacija verige z lastno shrambo zaupanja |
| ''Build(certificate, trustStore, mode)'' | Validacija verige s PqTrustStore |
| ''BuildWithRevocationCheck(...)'' | Gradnja verige s preverjanjem CRL/OCSP |
| ''BuildWithOfflineCrl(...)'' | Gradnja verige z offline CRL-podatki |
| ''IsFullyPqProtected()'' | Preveri, ali je celotna veriga PQ-zaščitena |
| ''GetChainCryptoModes()'' | Vrne CryptoModes vseh členov verige |
| ''GetValidationReport()'' | Ustvari podrobno poročilo o validaciji |
===== Build s CryptoMode =====
using var chain = new X509Chain();
var cert = new X509Certificate2("certificate.pfx");
// Z eksplicitnim CryptoMode
bool isValid = chain.Build(cert, CryptoMode.Hybrid);
// S privzetim načinom iz CryptoConfig
bool isValid2 = chain.Build(cert, null);
==== Obnašanje validacije po načinu ====
^ Način ^ Klasični podpis ^ PQ-podpis ^
| Classic | Preverjen | Ignoriran |
| Hybrid | Preverjen | Preverjen (če prisoten) |
| PostQuantum | Preverjen (struktura) | **Zahtevan** |
===== IsFullyPqProtected =====
using var chain = new X509Chain();
chain.Build(cert, CryptoMode.Hybrid);
if (chain.IsFullyPqProtected())
{
Console.WriteLine("Celotna veriga je PQ-zaščitena");
}
else
{
var modes = chain.GetChainCryptoModes();
for (int i = 0; i < modes.Length; i++)
{
if (modes[i] == CryptoMode.Classic)
Console.WriteLine($"Element {i} nima PQ-zaščite");
}
}
===== GetValidationReport =====
using var chain = new X509Chain();
chain.Build(cert, CryptoMode.Hybrid);
var report = chain.GetValidationReport();
Console.WriteLine($"Veljaven: {report.IsValid}");
Console.WriteLine($"Dolžina verige: {report.ChainLength}");
Console.WriteLine($"Popolnoma PQ-zaščiten: {report.IsFullyPqProtected}");
===== Glejte tudi =====
* [[.:x509certificate2extensions|X509Certificate2Extensions]]
* [[.:truststoreextensions|TrustStoreExtensions]]
* [[.:revocationextensions|RevocationExtensions]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//