net.i2p.crypto.eddsa.math.bigint
Class BigIntegerLittleEndianEncoding

java.lang.Object
  extended by net.i2p.crypto.eddsa.math.Encoding
      extended by net.i2p.crypto.eddsa.math.bigint.BigIntegerLittleEndianEncoding
All Implemented Interfaces:
Serializable

public class BigIntegerLittleEndianEncoding
extends Encoding
implements Serializable

See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.i2p.crypto.eddsa.math.Encoding
f
 
Constructor Summary
BigIntegerLittleEndianEncoding()
           
 
Method Summary
 FieldElement decode(byte[] in)
          Decode a FieldElement from its (b-1)-bit encoding.
 byte[] encode(BigInteger x)
          Convert x to little endian.
 byte[] encode(FieldElement x)
          Encode a FieldElement in its (b-1)-bit encoding.
 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)
           
 BigInteger toBigInteger(byte[] in)
          Convert in to big endian
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BigIntegerLittleEndianEncoding

public BigIntegerLittleEndianEncoding()
Method Detail

setField

public void setField(Field f)
Overrides:
setField in class Encoding

encode

public byte[] encode(FieldElement x)
Description copied from class: Encoding
Encode a FieldElement in its (b-1)-bit encoding.

Specified by:
encode in class Encoding
Returns:
the (b-1)-bit encoding of this FieldElement.

encode

public byte[] encode(BigInteger x)
Convert x to little endian. Constant time.

Returns:
array of length b/8

decode

public FieldElement decode(byte[] in)
Description copied from class: Encoding
Decode a FieldElement from its (b-1)-bit encoding. The highest bit is masked out.

Specified by:
decode in class Encoding
Parameters:
in - the (b-1)-bit encoding of a FieldElement.
Returns:
the FieldElement represented by 'val'.

toBigInteger

public BigInteger toBigInteger(byte[] in)
Convert in to big endian


isNegative

public 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}.

Specified by:
isNegative in class Encoding
Returns:
true if negative