WvdS.System.Security.Cryptography.Signatures Namespace

Contains extension methods for digital signatures with PQ support.


Classes

Class Description
SignatureExtensions Extensions for RSA, ECDsa, and X509Certificate2 signatures
SignedDataExtensions Extensions for CMS/PKCS#7 SignedCms
HybridSignatureInfo Container for hybrid signature data

Static Classes

Class Description
PqSignedCmsHelper High-level API for PQ-capable CMS operations

Extended Types

.NET Type Extension Class
System.Security.Cryptography.RSA1) SignatureExtensions
System.Security.Cryptography.ECDsa2) SignatureExtensions
System.Security.Cryptography.Pkcs.SignedCms3) SignedDataExtensions

Hybrid Signature Format

In Hybrid mode, two signatures are created:

+------------------------------------------+
| Hybrid Signature                         |
+------------------------------------------+
| [4 Bytes] Length of classic signature    |
| [n Bytes] Classic signature (RSA/ECDSA)  |
| [m Bytes] PQ signature (ML-DSA)          |
+------------------------------------------+

Example

using WvdS.System.Security.Cryptography;
using WvdS.System.Security.Cryptography.Signatures;
 
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
 
using var rsa = RSA.Create(2048);
byte[] data = Encoding.UTF8.GetBytes("Data to sign");
 
// Create hybrid signature
byte[] signature = rsa.SignData(
    data,
    HashAlgorithmName.SHA256,
    RSASignaturePadding.Pkcs1);
 
// Verify
bool valid = rsa.VerifyData(
    data,
    signature,
    HashAlgorithmName.SHA256,
    RSASignaturePadding.Pkcs1);

See Also


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: on 2026/01/29 at 11:24 PM