====== X509ChainExtensions ======
**Namespace:** ''WvdS.System.Security.Cryptography.X509Certificates''
Extension Drop-In Replacement per ''X509Chain'' con validazione firme post-quantum. Estende la validazione standard della catena con verifica firme PQ in tutte e tre le modalita Crypto.
===== Metodi =====
^ Metodo ^ Descrizione ^
| ''Build(certificate, mode)'' | Costruisce e valida la catena certificati con CryptoMode |
| ''Build(certificate, customTrustStore, mode)'' | Validazione catena con Trust Store personalizzato |
| ''Build(certificate, trustStore, mode)'' | Validazione catena con PqTrustStore |
| ''BuildWithRevocationCheck(...)'' | Costruzione catena con verifica CRL/OCSP |
| ''BuildWithOfflineCrl(...)'' | Costruzione catena con dati CRL offline |
| ''IsFullyPqProtected()'' | Verifica se l'intera catena e protetta PQ |
| ''GetChainCryptoModes()'' | Restituisce i CryptoMode di tutti gli elementi della catena |
| ''GetValidationReport()'' | Crea report di validazione dettagliato |
===== Build con CryptoMode =====
using var chain = new X509Chain();
var cert = new X509Certificate2("certificate.pfx");
// Con CryptoMode esplicito
bool isValid = chain.Build(cert, CryptoMode.Hybrid);
// Con modalita default da CryptoConfig
bool isValid2 = chain.Build(cert, null);
==== Comportamento validazione per modalita ====
^ Modalita ^ Firma classica ^ Firma PQ ^
| Classic | Verificata | Ignorata |
| Hybrid | Verificata | Verificata (se presente) |
| PostQuantum | Verificata (struttura) | **Richiesta** |
===== IsFullyPqProtected =====
using var chain = new X509Chain();
chain.Build(cert, CryptoMode.Hybrid);
if (chain.IsFullyPqProtected())
{
Console.WriteLine("Intera catena e protetta PQ");
}
else
{
var modes = chain.GetChainCryptoModes();
for (int i = 0; i < modes.Length; i++)
{
if (modes[i] == CryptoMode.Classic)
Console.WriteLine($"Elemento {i} non ha protezione PQ");
}
}
===== GetValidationReport =====
using var chain = new X509Chain();
chain.Build(cert, CryptoMode.Hybrid);
var report = chain.GetValidationReport();
Console.WriteLine($"Valido: {report.IsValid}");
Console.WriteLine($"Lunghezza catena: {report.ChainLength}");
Console.WriteLine($"Completamente protetto PQ: {report.IsFullyPqProtected}");
===== Vedi anche =====
* [[.:x509certificate2extensions|X509Certificate2Extensions]]
* [[.:truststoreextensions|TrustStoreExtensions]]
* [[.:revocationextensions|RevocationExtensions]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//