Class BigIntegerScalarOps

  • All Implemented Interfaces:
    ScalarOps

    public class BigIntegerScalarOps
    extends java.lang.Object
    implements ScalarOps
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      byte[] multiplyAndAdd​(byte[] a, byte[] b, byte[] c)
      $r = (a * b + c) \bmod l$
      byte[] reduce​(byte[] s)
      Reduce the given scalar mod $l$.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BigIntegerScalarOps

        public BigIntegerScalarOps​(Field f,
                                   java.math.BigInteger l)
    • Method Detail

      • reduce

        public byte[] reduce​(byte[] s)
        Description copied from interface: ScalarOps
        Reduce the given scalar mod $l$.

        From the Ed25519 paper:
        Here we interpret $2b$-bit strings in little-endian form as integers in $\{0, 1,..., 2^{(2b)}-1\}$.

        Specified by:
        reduce in interface ScalarOps
        Parameters:
        s - the scalar to reduce
        Returns:
        $s \bmod l$
      • multiplyAndAdd

        public byte[] multiplyAndAdd​(byte[] a,
                                     byte[] b,
                                     byte[] c)
        Description copied from interface: ScalarOps
        $r = (a * b + c) \bmod l$
        Specified by:
        multiplyAndAdd in interface ScalarOps
        Parameters:
        a - a scalar
        b - a scalar
        c - a scalar
        Returns:
        $(a*b + c) \bmod l$