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 |
Notes
Use CryptoProviderFactory.GetProvider() instead of direct instantiation.
Implementations
See Also
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional