Package org.bouncycastle.math.ec.rfc8032
Class Ed448
- java.lang.Object
-
- org.bouncycastle.math.ec.rfc8032.Ed448
-
public abstract class Ed448 extends java.lang.ObjectA 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 Class Summary
Nested Classes Modifier and Type Class Description static classEd448.Algorithmstatic classEd448.PublicPoint
-
Field Summary
Fields Modifier and Type Field Description static intPREHASH_SIZEstatic intPUBLIC_KEY_SIZEstatic intSECRET_KEY_SIZEstatic intSIGNATURE_SIZE
-
Constructor Summary
Constructors Constructor Description Ed448()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static XofcreatePrehash()static voidencodePublicPoint(Ed448.PublicPoint publicPoint, byte[] pk, int pkOff)static voidgeneratePrivateKey(java.security.SecureRandom random, byte[] k)static Ed448.PublicPointgeneratePublicKey(byte[] sk, int skOff)static voidgeneratePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff)static voidprecompute()static voidscalarMultBaseXY(X448.Friend friend, byte[] k, int kOff, int[] x, int[] y)NOTE: Only for use by X448static voidsign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)static voidsign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)static voidsignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)static voidsignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)static voidsignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, Xof ph, byte[] sig, int sigOff)static voidsignPrehash(byte[] sk, int skOff, byte[] ctx, Xof ph, byte[] sig, int sigOff)static booleanvalidatePublicKeyFull(byte[] pk, int pkOff)static Ed448.PublicPointvalidatePublicKeyFullExport(byte[] pk, int pkOff)static booleanvalidatePublicKeyPartial(byte[] pk, int pkOff)static Ed448.PublicPointvalidatePublicKeyPartialExport(byte[] pk, int pkOff)static booleanverify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen)static booleanverify(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, byte[] m, int mOff, int mLen)static booleanverifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff)static booleanverifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, Xof ph)static booleanverifyPrehash(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, byte[] ph, int phOff)static booleanverifyPrehash(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, Xof ph)
-
-
-
Field Detail
-
PREHASH_SIZE
public static final int PREHASH_SIZE
- See Also:
- Constant Field Values
-
PUBLIC_KEY_SIZE
public static final int PUBLIC_KEY_SIZE
- See Also:
- Constant Field Values
-
SECRET_KEY_SIZE
public static final int SECRET_KEY_SIZE
- See Also:
- Constant Field Values
-
SIGNATURE_SIZE
public static final int SIGNATURE_SIZE
- See Also:
- Constant Field Values
-
-
Method Detail
-
createPrehash
public static Xof createPrehash()
-
encodePublicPoint
public static void encodePublicPoint(Ed448.PublicPoint publicPoint, byte[] pk, int pkOff)
-
generatePrivateKey
public static void generatePrivateKey(java.security.SecureRandom random, byte[] k)
-
generatePublicKey
public static void generatePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff)
-
generatePublicKey
public static Ed448.PublicPoint generatePublicKey(byte[] sk, int skOff)
-
precompute
public static void precompute()
-
scalarMultBaseXY
public static void scalarMultBaseXY(X448.Friend friend, byte[] k, int kOff, int[] x, int[] y)
NOTE: Only for use by X448
-
sign
public static void sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
-
sign
public static void sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
-
signPrehash
public static void signPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
-
signPrehash
public static void signPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
-
signPrehash
public static void signPrehash(byte[] sk, int skOff, byte[] ctx, Xof ph, byte[] sig, int sigOff)
-
signPrehash
public static void signPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, Xof ph, byte[] sig, int sigOff)
-
validatePublicKeyFull
public static boolean validatePublicKeyFull(byte[] pk, int pkOff)
-
validatePublicKeyFullExport
public static Ed448.PublicPoint validatePublicKeyFullExport(byte[] pk, int pkOff)
-
validatePublicKeyPartial
public static boolean validatePublicKeyPartial(byte[] pk, int pkOff)
-
validatePublicKeyPartialExport
public static Ed448.PublicPoint validatePublicKeyPartialExport(byte[] pk, int pkOff)
-
verify
public static boolean verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen)
-
verify
public static boolean verify(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, byte[] m, int mOff, int mLen)
-
verifyPrehash
public static boolean verifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff)
-
verifyPrehash
public static boolean verifyPrehash(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, byte[] ph, int phOff)
-
verifyPrehash
public static boolean verifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, Xof ph)
-
verifyPrehash
public static boolean verifyPrehash(byte[] sig, int sigOff, Ed448.PublicPoint publicPoint, byte[] ctx, Xof ph)
-
-