net.i2p.crypto.eddsa.math

## Interface ScalarOps

- All Superinterfaces:
    Serializable
  All Known Implementing Classes:
    BigIntegerScalarOps, Ed25519ScalarOps

      public interface ScalarOps
      extends Serializable

  Interface for scalar operations in EdDSA.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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$.

- - ### Method Detail

    - #### multiplyAndAdd

          byte[] multiplyAndAdd(byte[] a,
                                byte[] b,
                                byte[] c)

      $r = (a * b + c) \bmod l$
      Parameters:
        `a` - a scalar
        `b` - a scalar
        `c` - a scalar
      Returns:
        $(a*b + c) \bmod l$

    - #### reduce

          byte[] reduce(byte[] s)

      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\}$.

      Parameters:
        `s` - the scalar to reduce
      Returns:
        $s \bmod l$