net.i2p.crypto.eddsa.math
Class Encoding
java.lang.Object
net.i2p.crypto.eddsa.math.Encoding
- Direct Known Subclasses:
- BigIntegerLittleEndianEncoding, Ed25519LittleEndianEncoding
public abstract class Encoding
- extends Object
Common interface for all (b-1)-bit encodings of elements
of EdDSA finite fields.
- Since:
- 0.9.15
- Author:
- str4d
Field Summary |
protected Field |
f
|
Method Summary |
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)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
f
protected Field f
Encoding
public Encoding()
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