16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.math.ec;
26e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
36e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom/**
46e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * Class holding precomputation data for the WTNAF (Window
56e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * <code>&tau;</code>-adic Non-Adjacent Form) algorithm.
66e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom */
76e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromclass WTauNafPreCompInfo implements PreCompInfo
86e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{
96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    /**
106e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * Array holding the precomputed <code>ECPoint.F2m</code>s used for the
116e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * WTNAF multiplication in <code>
126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * WTauNafMultiplier.multiply()}</code>.
146e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     */
156e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    private ECPoint.F2m[] preComp = null;
166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    /**
186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * Constructor for <code>WTauNafPreCompInfo</code>
196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * @param preComp Array holding the precomputed <code>ECPoint.F2m</code>s
206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * used for the WTNAF multiplication in <code>
216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * WTauNafMultiplier.multiply()}</code>.
236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     */
246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    WTauNafPreCompInfo(ECPoint.F2m[] preComp)
256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        this.preComp = preComp;
276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
286e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    /**
306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * @return the array holding the precomputed <code>ECPoint.F2m</code>s
316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * used for the WTNAF multiplication in <code>
326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * WTauNafMultiplier.multiply()}</code>.
346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     */
356e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    protected ECPoint.F2m[] getPreComp()
366e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
376e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return preComp;
386e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
396e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom}
40