Simple Elliptic Curve Libraries

Suitable as external plugins for Rebex components based on Rebex SSH and Rebex TLS/SSL.


Elliptic Curve Cryptography (ECC) is an attractive alternative to classic public-key algorithms based on modular exponentiation. Compared to the algortihms such as RSA, DSA or Diffie-Hellman, elliptic curve cryptography offers equivalent security with smaller key sizes.

Unfortunately, built-in support for ECC algorithms in Microsoft Windows and .NET Framework is very limited, which is where these libraries come in handy.

Source Code on Github

Download Simple Elliptic Curve Libraries »


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


Assembly Supported platforms Elliptic curve algorithms Based on License

  • .NET 2.0/3.x
  • .NET 4.x
  • .NET Compact Framework 2.0/3.5/3.9
  • .NET Standard 1.6
  • .NET Core 1.0
  • Xamarin Android, Mac, iOS (PCL)
ECDH and ECDSA with NIST P-256/P-384/P-521 or Brainpool P-256/P-384/P-512 R1 Bouncy Castle C# API by The Legion of the Bouncy Castle Adaptation of MIT X11 License

  • .NET 2.0/3.x
  • .NET 4.x
  • .NET Compact Framework 2.0/3.5/3.9
  • .NET Standard 1.6
  • .NET Core 1.0
  • Xamarin Android, Mac, iOS
ECDH with Curve25519 C# implementation of Curve25519 by Hans Wolff, Dmitry Skiba and Matthijs van Duin Apache License 2.0

  • .NET 2.0/3.x
  • .NET 4.x
  • .NET Standard 1.6
  • .NET Core 1.0
EdDSA with Ed25519 C++/CLI port of portable implementation of Ed25519 by Orson Peters, based on the SUPERCOP "ref10" implementation zlib license

Using elliptic curves in Rebex components

These plugins can be used with Rebex components 2016 R3. For details, see Elliptic Curve Cryptography support in Rebex SSH and Rebex TLS/SSL article from Rebex Knowledge Base.

To get started quickly, just reference suitable DLLs and register the desired ECC plugins:


using Rebex.Security.Cryptography;

// import NIST and Brainpool curves

// import Curve25519

// import Ed25519


Imports Rebex.Security.Cryptography

' import NIST and Brainpool curves
AsymmetricKeyAlgorithm.Register(AddressOf EllipticCurveAlgorithm.Create)

' import Curve25519
AsymmetricKeyAlgorithm.Register(AddressOf Curve25519.Create)

' import Ed25519
AsymmetricKeyAlgorithm.Register(AddressOf Ed25519.Create)


2017-03-29 - Added support for Xamarin platforms (iOS, Android, Mac).

2016-12-19 - First version of Simple Elliptic Curve Libraries released.
             Suitable for Rebex components version 2016 R3.

Send us feedback

Do you have any comments, questions or suggestions? Either post at our support forum or contact us directly at