16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.math.ec; 26e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 36e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom/** 46e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * Class holding precomputation data for the WNAF (Window Non-Adjacent Form) 56e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * algorithm. 66e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom */ 76e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromclass WNafPreCompInfo implements PreCompInfo 86e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{ 96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom /** 106e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * Array holding the precomputed <code>ECPoint</code>s used for the Window 116e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * NAF multiplication in <code> 126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * {@link org.bouncycastle.math.ec.multiplier.WNafMultiplier.multiply() 136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * WNafMultiplier.multiply()}</code>. 146e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom */ 156e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom private ECPoint[] preComp = null; 166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom /** 186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * Holds an <code>ECPoint</code> representing twice(this). Used for the 196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * Window NAF multiplication in <code> 206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * {@link org.bouncycastle.math.ec.multiplier.WNafMultiplier.multiply() 216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * WNafMultiplier.multiply()}</code>. 226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom */ 236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom private ECPoint twiceP = null; 246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom protected ECPoint[] getPreComp() 266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return preComp; 286e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom protected void setPreComp(ECPoint[] preComp) 316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom this.preComp = preComp; 336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 356e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom protected ECPoint getTwiceP() 366e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 376e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return twiceP; 386e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 396e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 406e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom protected void setTwiceP(ECPoint twiceThis) 416e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 426e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom this.twiceP = twiceThis; 436e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 446e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom} 45