Table of Contents

Class X25519

Namespace
Org.BouncyCastle.Math.EC.Rfc7748
Assembly
BouncyCastle.Cryptography.dll
public static class X25519
Inheritance
X25519
Inherited Members

Fields

PointSize

public const int PointSize = 32

Field Value

int

ScalarSize

public const int ScalarSize = 32

Field Value

int

Methods

CalculateAgreement(byte[], int, byte[], int, byte[], int)

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

Parameters

k byte[]
kOff int
u byte[]
uOff int
r byte[]
rOff int

Returns

bool

CalculateAgreement(ReadOnlySpan<byte>, ReadOnlySpan<byte>, Span<byte>)

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

Parameters

k ReadOnlySpan<byte>
u ReadOnlySpan<byte>
r Span<byte>

Returns

bool

ClampPrivateKey(byte[])

public static void ClampPrivateKey(byte[] k)

Parameters

k byte[]

GeneratePrivateKey(SecureRandom, byte[])

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

Parameters

random SecureRandom
k byte[]

GeneratePrivateKey(SecureRandom, Span<byte>)

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

Parameters

random SecureRandom
k Span<byte>

GeneratePublicKey(byte[], int, byte[], int)

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

Parameters

k byte[]
kOff int
r byte[]
rOff int

GeneratePublicKey(ReadOnlySpan<byte>, Span<byte>)

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

Parameters

k ReadOnlySpan<byte>
r Span<byte>

Precompute()

public static void Precompute()

ScalarMult(byte[], int, byte[], int, byte[], int)

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

Parameters

k byte[]
kOff int
u byte[]
uOff int
r byte[]
rOff int

ScalarMult(ReadOnlySpan<byte>, ReadOnlySpan<byte>, Span<byte>)

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

Parameters

k ReadOnlySpan<byte>
u ReadOnlySpan<byte>
r Span<byte>

ScalarMultBase(byte[], int, byte[], int)

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

Parameters

k byte[]
kOff int
r byte[]
rOff int

ScalarMultBase(ReadOnlySpan<byte>, Span<byte>)

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

Parameters

k ReadOnlySpan<byte>
r Span<byte>