====== 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//