Top Inners Fields Constructors Methods
org.bouncycastle.math.ec.rfc8032

public abstract Class Ed25519

extends Object
Class Inheritance
Imports
java.security.SecureRandom, org.bouncycastle.crypto.internal.Digest, org.bouncycastle.math.ec.rfc7748.X25519Field, org.bouncycastle.math.raw.Interleave, .Nat, .Nat256, org.bouncycastle.util.Arrays, .Strings

Nested and Inner Type Summary

Modifier and TypeClass and Description
public class
private static class
private static class
private static class

Field Summary

Modifier and TypeField and Description
private static final int[]
private static final int[]
private static final int[]
private static final int[]
private static final int[]
private static final byte[]
private static final int[]
L

private static final int
private static final int
private static final int
private static final int
private static final int
private static final long
private static final long
private static final int[]
P

private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static int[]
private static Ed25519.PointExt[]
public static final int
public static final int
private static final int
private static final int
public static final int
public static final int
private static final int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static byte[]
calculateS(byte[] r, byte[] k, byte[] s)

private static boolean
checkContextVar(byte[] ctx, byte phflag)

private static boolean
checkPointVar(byte[] p)

private static boolean
checkScalarVar(byte[] s)

protected abstract Digest
public Digest
private static int
decode24(byte[] bs, int off)

private static int
decode32(byte[] bs, int off)

private static void
decode32(byte[] bs, int bsOff, int[] n, int nOff, int nLen)

private static boolean
decodePointVar(byte[] p, int pOff, boolean negate, Ed25519.PointExt r)

private static void
decodeScalar(byte[] k, int kOff, int[] n)

private static void
dom2(Digest d, byte phflag, byte[] ctx)

private static void
encode24(int n, byte[] bs, int off)

private static void
encode32(int n, byte[] bs, int off)

private static void
encode56(long n, byte[] bs, int off)

private static void
encodePoint(Ed25519.PointAccum p, byte[] r, int rOff)

public void
generatePrivateKey(SecureRandom random, byte[] k)

public void
generatePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff)

private static byte[]
getWNAF(int[] n, int width)

private static void
implSign(Digest d, byte[] h, byte[] s, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)

private void
implSign(byte[] sk, int skOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)

private void
implSign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)

private boolean
implVerify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen)

private static void
private static void
private static void
private static Ed25519.PointExt
private static Ed25519.PointExt
private static void
private static void
private static void
private static void
pointLookup(int block, int index, Ed25519.PointPrecomp p)

private static Ed25519.PointExt[]
private static void
private static void
public static synchronized void
private static void
pruneScalar(byte[] n, int nOff, byte[] r)

private static byte[]
reduceScalar(byte[] n)

private static void
private static void
scalarMultBaseEncoded(byte[] k, byte[] r, int rOff)

private static void
public void
sign(byte[] sk, int skOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)

public void
sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)

public void
sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)

public void
sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)

public void
signPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)

public void
signPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)

public void
signPrehash(byte[] sk, int skOff, byte[] ctx, Digest ph, byte[] sig, int sigOff)

public void
signPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, Digest ph, byte[] sig, int sigOff)

public boolean
verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen)

public boolean
verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen)

public boolean
verifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff)

public boolean
verifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, Digest ph)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

B_xback to summary
private static final int[] B_x
B_yback to summary
private static final int[] B_y
C_dback to summary
private static final int[] C_d
C_d2back to summary
private static final int[] C_d2
C_d4back to summary
private static final int[] C_d4
DOM2_PREFIXback to summary
private static final byte[] DOM2_PREFIX
Lback to summary
private static final int[] L
L0back to summary
private static final int L0
L1back to summary
private static final int L1
L2back to summary
private static final int L2
L3back to summary
private static final int L3
L4back to summary
private static final int L4
M28Lback to summary
private static final long M28L
M32Lback to summary
private static final long M32L
Pback to summary
private static final int[] P
POINT_BYTESback to summary
private static final int POINT_BYTES
PRECOMP_BLOCKSback to summary
private static final int PRECOMP_BLOCKS
PRECOMP_MASKback to summary
private static final int PRECOMP_MASK
PRECOMP_POINTSback to summary
private static final int PRECOMP_POINTS
PRECOMP_SPACINGback to summary
private static final int PRECOMP_SPACING
PRECOMP_TEETHback to summary
private static final int PRECOMP_TEETH
precompBaseback to summary
private static int[] precompBase
precompBaseTableback to summary
private static Ed25519.PointExt[] precompBaseTable
PREHASH_SIZEback to summary
public static final int PREHASH_SIZE
PUBLIC_KEY_SIZEback to summary
public static final int PUBLIC_KEY_SIZE
SCALAR_BYTESback to summary
private static final int SCALAR_BYTES
SCALAR_INTSback to summary
private static final int SCALAR_INTS
SECRET_KEY_SIZEback to summary
public static final int SECRET_KEY_SIZE
SIGNATURE_SIZEback to summary
public static final int SIGNATURE_SIZE
WNAF_WIDTH_BASEback to summary
private static final int WNAF_WIDTH_BASE

Constructor Detail

Ed25519back to summary
public Ed25519()

Method Detail

calculateSback to summary
private static byte[] calculateS(byte[] r, byte[] k, byte[] s)
checkContextVarback to summary
private static boolean checkContextVar(byte[] ctx, byte phflag)
checkPointVarback to summary
private static boolean checkPointVar(byte[] p)
checkScalarVarback to summary
private static boolean checkScalarVar(byte[] s)
createDigestback to summary
protected abstract Digest createDigest()
createPrehashback to summary
public Digest createPrehash()
decode24back to summary
private static int decode24(byte[] bs, int off)
decode32back to summary
private static int decode32(byte[] bs, int off)
decode32back to summary
private static void decode32(byte[] bs, int bsOff, int[] n, int nOff, int nLen)
decodePointVarback to summary
private static boolean decodePointVar(byte[] p, int pOff, boolean negate, Ed25519.PointExt r)
decodeScalarback to summary
private static void decodeScalar(byte[] k, int kOff, int[] n)
dom2back to summary
private static void dom2(Digest d, byte phflag, byte[] ctx)
encode24back to summary
private static void encode24(int n, byte[] bs, int off)
encode32back to summary
private static void encode32(int n, byte[] bs, int off)
encode56back to summary
private static void encode56(long n, byte[] bs, int off)
encodePointback to summary
private static void encodePoint(Ed25519.PointAccum p, byte[] r, int rOff)
generatePrivateKeyback to summary
public void generatePrivateKey(SecureRandom random, byte[] k)
generatePublicKeyback to summary
public void generatePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff)
getWNAFback to summary
private static byte[] getWNAF(int[] n, int width)
implSignback to summary
private static void implSign(Digest d, byte[] h, byte[] s, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
implSignback to summary
private void implSign(byte[] sk, int skOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
implSignback to summary
private void implSign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
implVerifyback to summary
private boolean implVerify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen)
pointAddPrecompback to summary
private static void pointAddPrecomp(Ed25519.PointPrecomp p, Ed25519.PointAccum r)
pointAddVarback to summary
private static void pointAddVar(boolean negate, Ed25519.PointExt p, Ed25519.PointAccum r)
pointAddVarback to summary
private static void pointAddVar(boolean negate, Ed25519.PointExt p, Ed25519.PointExt q, Ed25519.PointExt r)
pointCopyback to summary
private static Ed25519.PointExt pointCopy(Ed25519.PointAccum p)
pointCopyback to summary
private static Ed25519.PointExt pointCopy(Ed25519.PointExt p)
pointDoubleback to summary
private static void pointDouble(Ed25519.PointAccum r)
pointExtendXYback to summary
private static void pointExtendXY(Ed25519.PointAccum p)
pointExtendXYback to summary
private static void pointExtendXY(Ed25519.PointExt p)
pointLookupback to summary
private static void pointLookup(int block, int index, Ed25519.PointPrecomp p)
pointPrecompVarback to summary
private static Ed25519.PointExt[] pointPrecompVar(Ed25519.PointExt p, int count)
pointSetNeutralback to summary
private static void pointSetNeutral(Ed25519.PointAccum p)
pointSetNeutralback to summary
private static void pointSetNeutral(Ed25519.PointExt p)
precomputeback to summary
public static synchronized void precompute()
pruneScalarback to summary
private static void pruneScalar(byte[] n, int nOff, byte[] r)
reduceScalarback to summary
private static byte[] reduceScalar(byte[] n)
scalarMultBaseback to summary
private static void scalarMultBase(byte[] k, Ed25519.PointAccum r)
scalarMultBaseEncodedback to summary
private static void scalarMultBaseEncoded(byte[] k, byte[] r, int rOff)
scalarMultStraussVarback to summary
private static void scalarMultStraussVar(int[] nb, int[] np, Ed25519.PointExt p, Ed25519.PointAccum r)
signback to summary
public void sign(byte[] sk, int skOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
signback to summary
public void sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
signback to summary
public void sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
signback to summary
public void sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
signPrehashback to summary
public void signPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
signPrehashback to summary
public void signPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
signPrehashback to summary
public void signPrehash(byte[] sk, int skOff, byte[] ctx, Digest ph, byte[] sig, int sigOff)
signPrehashback to summary
public void signPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, Digest ph, byte[] sig, int sigOff)
verifyback to summary
public boolean verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen)
verifyback to summary
public boolean verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen)
verifyPrehashback to summary
public boolean verifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff)
verifyPrehashback to summary
public boolean verifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, Digest ph)
org.bouncycastle.math.ec.rfc8032 back to summary

public final Class Ed25519.Algorithm

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final int
public static final int
public static final int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

Ed25519back to summary
public static final int Ed25519
Ed25519ctxback to summary
public static final int Ed25519ctx
Ed25519phback to summary
public static final int Ed25519ph

Constructor Detail

Algorithmback to summary
public Algorithm()
org.bouncycastle.math.ec.rfc8032 back to summary

private Class Ed25519.PointAccum

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv int[]
u

pack-priv int[]
v

pack-priv int[]
x

pack-priv int[]
y

pack-priv int[]
z

Constructor Summary

AccessConstructor and Description
private

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

uback to summary
pack-priv int[] u
vback to summary
pack-priv int[] v
xback to summary
pack-priv int[] x
yback to summary
pack-priv int[] y
zback to summary
pack-priv int[] z

Constructor Detail

PointAccumback to summary
private PointAccum()
org.bouncycastle.math.ec.rfc8032 back to summary

private Class Ed25519.PointExt

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv int[]
t

pack-priv int[]
x

pack-priv int[]
y

pack-priv int[]
z

Constructor Summary

AccessConstructor and Description
private

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

tback to summary
pack-priv int[] t
xback to summary
pack-priv int[] x
yback to summary
pack-priv int[] y
zback to summary
pack-priv int[] z

Constructor Detail

PointExtback to summary
private PointExt()
org.bouncycastle.math.ec.rfc8032 back to summary

private Class Ed25519.PointPrecomp

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv int[]
pack-priv int[]
pack-priv int[]

Constructor Summary

AccessConstructor and Description
private

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

xydback to summary
pack-priv int[] xyd
ymx_hback to summary
pack-priv int[] ymx_h
ypx_hback to summary
pack-priv int[] ypx_h

Constructor Detail

PointPrecompback to summary
private PointPrecomp()