<PackageReference Include="BouncyCastle.Cryptography" Version="2.3.0" />

X25519

public static class X25519
public const int PointSize = 32

public const int ScalarSize = 32

public static bool CalculateAgreement(byte[] k, int kOff, byte[] u, int uOff, byte[] r, int rOff)

public static bool CalculateAgreement(ReadOnlySpan<byte> k, ReadOnlySpan<byte> u, Span<byte> r)

public static void GeneratePrivateKey(SecureRandom random, byte[] k)

public static void GeneratePrivateKey(SecureRandom random, Span<byte> k)

public static void GeneratePublicKey(byte[] k, int kOff, byte[] r, int rOff)

public static void GeneratePublicKey(ReadOnlySpan<byte> k, Span<byte> r)

public static void Precompute()

public static void ScalarMult(byte[] k, int kOff, byte[] u, int uOff, byte[] r, int rOff)

public static void ScalarMult(ReadOnlySpan<byte> k, ReadOnlySpan<byte> u, Span<byte> r)

public static void ScalarMultBase(byte[] k, int kOff, byte[] r, int rOff)

public static void ScalarMultBase(ReadOnlySpan<byte> k, Span<byte> r)