Class BigIntegerLittleEndianEncoding

    • Constructor Detail

      • BigIntegerLittleEndianEncoding

        public BigIntegerLittleEndianEncoding()
    • Method Detail

      • 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
        Throws:
        IllegalStateException - if field not set
      • decode

        public FieldElement decode​(byte[] in)
        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'.
        Throws:
        IllegalStateException - if field not set
        IllegalArgumentException - if encoding is invalid
      • 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