====== CertificateRequestExtensions Class ======
Provides extension methods for ''CertificateRequest'' with PQ support.
----
===== Definition =====
namespace WvdS.System.Security.Cryptography.X509Certificates
public static class CertificateRequestExtensions
----
===== Methods =====
^ Name ^ Description ^
| CreateSelfSigned(DateTimeOffset, DateTimeOffset, CryptoMode?) | Creates self-signed certificate with optional PQ signature |
| Create(X509Certificate2, DateTimeOffset, DateTimeOffset, Byte[], CryptoMode?) | Creates CA-signed certificate with optional PQ signature |
----
===== Remarks =====
This extension class extends ''System.Security.Cryptography.X509Certificates.CertificateRequest''((Microsoft Docs: https://learn.microsoft.com/dotnet/api/system.security.cryptography.x509certificates.certificaterequest)).
==== Drop-In Behavior ====
The extension methods have the same signature as the original methods plus an optional ''CryptoMode'' parameter:
// Original .NET
X509Certificate2 CreateSelfSigned(DateTimeOffset notBefore, DateTimeOffset notAfter)
// Extension (Drop-In)
X509Certificate2 CreateSelfSigned(DateTimeOffset notBefore, DateTimeOffset notAfter, CryptoMode? mode = null)
When the ''using'' namespace is included, the extension method is automatically used.
----
===== Example =====
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));
// Hybrid certificate: RSA + ML-DSA
var cert = request.CreateSelfSigned(
DateTimeOffset.Now,
DateTimeOffset.Now.AddYears(1));
----
===== See Also =====
* [[.:start|X509Certificates Namespace]]
* [[.:x509certificate2extensions|X509Certificate2Extensions]]
* [[..:cryptomode|CryptoMode Enum]]
{{tag>class extension static}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//