18212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompackage org.bouncycastle.math.ec;
28212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
38212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport java.math.BigInteger;
48212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
58212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom/**
68212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * Interface for classes encapsulating a point multiplication algorithm
78212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * for <code>ECPoint</code>s.
88212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom */
95db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Rootpublic interface ECMultiplier
108212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom{
118212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    /**
128212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom     * Multiplies the <code>ECPoint p</code> by <code>k</code>, i.e.
138212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom     * <code>p</code> is added <code>k</code> times to itself.
148212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom     * @param p The <code>ECPoint</code> to be multiplied.
155db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root     * @param k The factor by which <code>p</code> is multiplied.
168212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom     * @return <code>p</code> multiplied by <code>k</code>.
178212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom     */
185db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root    ECPoint multiply(ECPoint p, BigInteger k);
198212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom}
20