====== Classe CertificateRequestExtensions ======
Fornisce metodi di estensione per ''CertificateRequest'' con supporto PQ.
----
===== Definizione =====
namespace WvdS.System.Security.Cryptography.X509Certificates
public static class CertificateRequestExtensions
----
===== Metodi =====
^ Nome ^ Descrizione ^
| [[.:certificaterequestextensions-createselfsigned|CreateSelfSigned(DateTimeOffset, DateTimeOffset, CryptoMode?)]] | Crea un certificato autofirmato con firma PQ opzionale |
| [[.:certificaterequestextensions-create|Create(X509Certificate2, DateTimeOffset, DateTimeOffset, Byte[], CryptoMode?)]] | Crea un certificato firmato dalla CA con firma PQ opzionale |
----
===== Note =====
Questa classe di estensione estende ''System.Security.Cryptography.X509Certificates.CertificateRequest''((Microsoft Docs: https://learn.microsoft.com/dotnet/api/system.security.cryptography.x509certificates.certificaterequest)).
==== Comportamento Drop-In ====
I metodi di estensione hanno la stessa firma dei metodi originali più un parametro opzionale ''CryptoMode'':
// .NET Originale
X509Certificate2 CreateSelfSigned(DateTimeOffset notBefore, DateTimeOffset notAfter)
// Estensione (Drop-In)
X509Certificate2 CreateSelfSigned(DateTimeOffset notBefore, DateTimeOffset notAfter, CryptoMode? mode = null)
Quando il namespace ''using'' è incluso, viene automaticamente utilizzato il metodo di estensione.
----
===== Esempio =====
using WvdS.System.Security.Cryptography;
using WvdS.System.Security.Cryptography.X509Certificates;
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
using var rsa = RSA.Create(2048);
var request = new CertificateRequest(
"CN=Server, O=Org, C=DE",
rsa,
HashAlgorithmName.SHA256,
RSASignaturePadding.Pkcs1);
request.CertificateExtensions.Add(
new X509BasicConstraintsExtension(false, false, 0, true));
// Certificato ibrido: RSA + ML-DSA
var cert = request.CreateSelfSigned(
DateTimeOffset.Now,
DateTimeOffset.Now.AddYears(1));
----
===== Vedere anche =====
* [[.:start|Namespace X509Certificates]]
* [[.:x509certificate2extensions|X509Certificate2Extensions]]
* [[it:int:pqcrypt:api:wvds-system-security-cryptography:cryptomode|Enum CryptoMode]]
{{tag>classe extension static}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//