Package net.i2p.crypto.eddsa.math
Class Encoding
- java.lang.Object
-
- net.i2p.crypto.eddsa.math.Encoding
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
BigIntegerLittleEndianEncoding
,Ed25519LittleEndianEncoding
public abstract class Encoding extends Object implements Serializable
Common interface for all (b-1)-bit encodings of elements of EdDSA finite fields.- Since:
- 0.9.15
- Author:
- str4d
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Encoding()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract FieldElement
decode(byte[] in)
Decode a FieldElement from its (b-1)-bit encoding.abstract byte[]
encode(FieldElement x)
Encode a FieldElement in its (b-1)-bit encoding.abstract boolean
isNegative(FieldElement x)
From the Ed25519 paper:
x is negative if the (b-1)-bit encoding of x is lexicographically larger than the (b-1)-bit encoding of -x.void
setField(Field f)
-
-
-
Field Detail
-
f
protected Field f
-
-
Method Detail
-
setField
public void setField(Field f)
-
encode
public abstract byte[] encode(FieldElement x)
Encode a FieldElement in its (b-1)-bit encoding.- Returns:
- the (b-1)-bit encoding of this FieldElement.
-
decode
public abstract FieldElement decode(byte[] in)
Decode a FieldElement from its (b-1)-bit encoding. The highest bit is masked out.- Parameters:
in
- the (b-1)-bit encoding of a FieldElement.- Returns:
- the FieldElement represented by 'val'.
-
isNegative
public abstract boolean isNegative(FieldElement x)
From the Ed25519 paper:
x is negative if the (b-1)-bit encoding of x is lexicographically larger than the (b-1)-bit encoding of -x. If q is an odd prime and the encoding is the little-endian representation of {0, 1,..., q-1} then the negative elements of F_q are {1, 3, 5,..., q-2}.- Returns:
- true if negative
-
-