Ed25519 Class
A low-level implementation of the Ed25519, Ed25519ctx, and Ed25519ph instantiations of the Edwards-Curve Digital
Signature Algorithm specified in
RFC 8032.
Namespace: Org.BouncyCastle.Math.EC.Rfc8032Assembly: BouncyCastle.Cryptography (in BouncyCastle.Cryptography.dll) Version: 2.3.0-beta.187+d6da5648ae
public static class Ed25519
Public NotInheritable Class Ed25519
public ref class Ed25519 abstract sealed
Org.BouncyCastle.Math.EC.Rfc8032.Ed25519 = function();
Type.createClass(
'Org.BouncyCastle.Math.EC.Rfc8032.Ed25519');
- Inheritance
- Object Ed25519
The implementation strategy is mostly drawn from
Mike Hamburg, "Fast and compact elliptic-curve cryptography", notably the "signed multi-comb" algorithm (for
scalar multiplication by a fixed point), the "half Niels coordinates" (for precomputed points), and the
"extensible coordinates" (for accumulators). Standard
extended coordinates are used during
precomputations, needing only a single extra point addition formula.
| CreatePrehash | |
| EncodePublicPoint(Ed25519PublicPoint, SpanByte) | |
| EncodePublicPoint(Ed25519PublicPoint, Byte, Int32) | |
| GeneratePrivateKey(SecureRandom, Byte) | |
| GeneratePrivateKey(SecureRandom, SpanByte) | |
| GeneratePublicKey(ReadOnlySpanByte) | |
| GeneratePublicKey(Byte, Int32) | |
| GeneratePublicKey(ReadOnlySpanByte, SpanByte) | |
| GeneratePublicKey(Byte, Int32, Byte, Int32) | |
| Precompute | |
| Sign(Byte, Int32, Byte, Int32, Int32, Byte, Int32) | |
| Sign(Byte, Int32, Byte, Byte, Int32, Int32, Byte, Int32) | |
| Sign(Byte, Int32, Byte, Int32, Byte, Int32, Int32, Byte, Int32) | |
| Sign(Byte, Int32, Byte, Int32, Byte, Byte, Int32, Int32, Byte, Int32) | |
| SignPrehash(Byte, Int32, Byte, IDigest, Byte, Int32) | |
| SignPrehash(Byte, Int32, Byte, Byte, Int32, Byte, Int32) | |
| SignPrehash(Byte, Int32, Byte, Int32, Byte, IDigest, Byte, Int32) | |
| SignPrehash(Byte, Int32, Byte, Int32, Byte, Byte, Int32, Byte, Int32) | |
| ValidatePublicKeyFull(ReadOnlySpanByte) | |
| ValidatePublicKeyFull(Byte, Int32) | |
| ValidatePublicKeyFullExport(ReadOnlySpanByte) | |
| ValidatePublicKeyFullExport(Byte, Int32) | |
| ValidatePublicKeyPartial(ReadOnlySpanByte) | |
| ValidatePublicKeyPartial(Byte, Int32) | |
| ValidatePublicKeyPartialExport(ReadOnlySpanByte) | |
| ValidatePublicKeyPartialExport(Byte, Int32) | |
| Verify(Byte, Int32, Ed25519PublicPoint, Byte, Int32, Int32) | |
| Verify(Byte, Int32, Ed25519PublicPoint, Byte, Byte, Int32, Int32) | |
| Verify(Byte, Int32, Byte, Int32, Byte, Int32, Int32) | |
| Verify(Byte, Int32, Byte, Int32, Byte, Byte, Int32, Int32) | |
| VerifyPrehash(Byte, Int32, Ed25519PublicPoint, Byte, IDigest) | |
| VerifyPrehash(Byte, Int32, Ed25519PublicPoint, Byte, Byte, Int32) | |
| VerifyPrehash(Byte, Int32, Byte, Int32, Byte, IDigest) | |
| VerifyPrehash(Byte, Int32, Byte, Int32, Byte, Byte, Int32) | |