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

public abstract Class Ed448

extends Object
Class Inheritance
Imports
java.security.SecureRandom, org.bouncycastle.crypto.Xof, org.bouncycastle.crypto.digests.SHAKEDigest, org.bouncycastle.math.ec.rfc7748.X448, .X448Field, org.bouncycastle.math.raw.Nat

A low-level implementation of the Ed448 and Ed448ph instantiations of the Edwards-Curve Digital Signature Algorithm specified in RFC 8032.

The implementation uses the "signed mult-comb" algorithm (for scalar multiplication by a fixed point) from Mike Hamburg, "Fast and compact elliptic-curve cryptography". Standard projective coordinates are used for most point arithmetic.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
private static class
private static class
private static class
private static class
public 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 int
private static final byte[]
private static final int[]
P

private static final int
private static Ed448.PointAffine[]
private static int[]
private static Ed448.PointAffine[]
private static final int
private static final Object
private static final int
private static final int
private static final int
private static final int
private static final int
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
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)

private static int
private static int
private static boolean
private static boolean
private static boolean
checkPointVar(byte[] p)

private static byte[]
copy(byte[] buf, int off, int len)

public static Xof
private static Xof
private static boolean
decodePointVar(byte[] p, boolean negate, Ed448.PointAffine r)

private static void
dom4(Xof d, byte phflag, byte[] ctx)

private static void
encodePoint(Ed448.PointAffine p, byte[] r, int rOff)

public static void
encodePublicPoint(Ed448.PublicPoint publicPoint, byte[] pk, int pkOff)

private static int
encodeResult(Ed448.PointProjective p, byte[] r, int rOff)

private static Ed448.PublicPoint
public static void
generatePrivateKey(SecureRandom random, byte[] k)

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

public static Ed448.PublicPoint
generatePublicKey(byte[] sk, int skOff)

private static int
getWindow4(int[] x, int n)

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

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

private static 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 static boolean
implVerify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen)

private static boolean
implVerify(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen)

private static void
private static void
private static boolean
private static void
private static void
private static void
private static void
private static void
private static void
private static void
private static void
pointLookup(int block, int index, Ed448.PointAffine p)

private static void
pointLookup(int[] x, int n, int[] table, Ed448.PointProjective r)

private static void
private static int[]
private static void
pointPrecompute(Ed448.PointAffine p, Ed448.PointProjective[] points, int pointsOff, int pointsLen, Ed448.PointTemp t)

private static void
public static void
private static void
pruneScalar(byte[] n, int nOff, byte[] r)

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

public static void
scalarMultBaseXY(X448.Friend friend, byte[] k, int kOff, int[] x, int[] y)

Note

Only for use by X448

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

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

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

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

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

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

public static boolean
validatePublicKeyFull(byte[] pk, int pkOff)

public static Ed448.PublicPoint
validatePublicKeyFullExport(byte[] pk, int pkOff)

public static boolean
validatePublicKeyPartial(byte[] pk, int pkOff)

public static Ed448.PublicPoint
validatePublicKeyPartialExport(byte[] pk, int pkOff)

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

public static boolean
verify(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, byte[] m, int mOff, int mLen)

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

public static boolean
verifyPrehash(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, byte[] ph, int phOff)

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

public static boolean
verifyPrehash(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, Xof ph)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait