ICryptoProvider Interface

Defines the interface for post-quantum crypto backends.


Definition

namespace WvdS.System.Security.Cryptography.Providers
 
public interface ICryptoProvider

Properties

Name Type Description
Name string Name of the provider (e.g., „Native (P/Invoke)“)
IsAvailable bool True if provider is initialized and available

Methods

Initialization

Name Description
InitializeAsync() Initializes the provider asynchronously
GetOpenSslVersion() Returns the OpenSSL version

ML-DSA (Signatures)

Name Description
GenerateMlDsaKeyPairAsync(string) Generates ML-DSA key pair
SignMlDsaAsync(byte[], byte[]) Signs data with ML-DSA
VerifyMlDsaAsync(byte[], byte[], byte[]) Verifies ML-DSA signature

ML-KEM (Key Exchange)

Name Description
GenerateMlKemKeyPairAsync(string) Generates ML-KEM key pair
EncapsulateAsync(byte[]) Encapsulates shared secret
DecapsulateAsync(byte[], byte[]) Extracts shared secret

Certificates

Name Description
CreateEphemeralCertificateAsync(string, TimeSpan, byte[]) Creates ephemeral PQ certificate
SignCertificateAsync(byte[], byte[]) Signs TBS certificate with ML-DSA

Remarks

Use CryptoProviderFactory.GetProvider() instead of direct instantiation.


Implementations


See Also


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

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