INFO: PQC plugins: ML-KEM and ML-DSA

PQC plugins: ML-KEM and ML-DSA

Suitable as external plugins for Rebex libraries based on Rebex SSH and Rebex TLS.

Overview

Migration to post-quantum cryptography is in full swing, but not all target systems support ML-KEM and ML-DSA algorithm yet.

Additionally, not all systems support X25519 or another elliptic curve Diffie-Hellman named group, which is used together with ML-KEM in hybrid ciphers in both TLS 1.3 and SSH.

Licensing

These libraries build upon various open-source projects and are licensed under various open-source licenses. See the table below for details.

Libraries

Assembly Elliptic curve algorithms Required on Based on License
Rebex.PQC.Castle.dll

Hybrid ML-KEM + ECDH
ML-DSA
Required on Windows 10 or earlier, on other systems with no ML-KEM or ML-DSA support in .NET. Bouncy Castle C# API by The Legion of the Bouncy Castle Adaptation of MIT X11 License
Rebex.Curve25519.dll

Hybrid ML-KEM + ECDH with X25519 Required on Windows 8.1 or earlier and on other systems with no X25519 support in .NET. C# implementation of Curve25519 by Hans Wolff, Dmitry Skiba and Matthijs van Duin Apache License 2.0
Rebex.Castle.dll

Hybrid ML-KEM + ECDH with NIST P-256
Hybrid ML-KEM + ECDH with NIST P-384
Required on Windows 8.1 or earlier for SSH; on Windows XP for TLS, or on other systems with no NIST curve support in .NET. Bouncy Castle C# API by The Legion of the Bouncy Castle Adaptation of MIT X11 License

Using PQC plugins with Rebex libraries

To use these plugins with Rebex libraries version 8.0 or higher, just reference suitable NuGet packages and register desired plugins:

C#

using Rebex.Security.Cryptography;
...

// register ML-KEM plugin
AsymmetricKeyAlgorithm.Register(MLKem.Create);

// register ML-DSA plugin
AsymmetricKeyAlgorithm.Register(MLDsa.Create);

// register NIST curves plugin
AsymmetricKeyAlgorithm.Register(EllipticCurveAlgorithm.Create);

// register X25519 curve plugin
AsymmetricKeyAlgorithm.Register(Curve25519.Create);

VB.NET

Imports Rebex.Security.Cryptography
...

' register ML-KEM plugin
AsymmetricKeyAlgorithm.Register(AddressOf MLKem.Create)

' register ML-DSA plugin
AsymmetricKeyAlgorithm.Register(AddressOf MLDsa.Create)

' register NIST curves plugin
AsymmetricKeyAlgorithm.Register(AddressOf EllipticCurveAlgorithm.Create)

' register X25519 curve plugin
AsymmetricKeyAlgorithm.Register(AddressOf Curve25519.Create)

Changelog

2026-06-24 - v1.0.29 - First version of PQC plugins released.

Send us feedback

Do you have any comments, questions or suggestions? Let us know at Rebex support forum or contact us.