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) | |