Class Encoding

    • Field Detail

    • Constructor Detail

      • Encoding

        public Encoding()
    • Method Detail

      • setField

        public void setField​(Field f)
      • encode

        public abstract byte[] encode​(FieldElement x)
        Encode a FieldElement in its $(b-1)$-bit encoding.
        Parameters:
        x - the FieldElement to encode
        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,\dots, q-1\}$ then the negative elements of $F_q$ are $\{1, 3, 5,\dots, q-2\}$.
        Parameters:
        x - the FieldElement to check
        Returns:
        true if negative