23 lines
861 B
Java
23 lines
861 B
Java
|
package org.bouncycastle.math.ec;
|
||
|
|
||
|
import java.math.BigInteger;
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
public class ZSignedDigitR2LMultiplier extends AbstractECMultiplier {
|
||
|
@Override // org.bouncycastle.math.ec.AbstractECMultiplier
|
||
|
protected ECPoint multiplyPositive(ECPoint eCPoint, BigInteger bigInteger) {
|
||
|
ECPoint infinity = eCPoint.getCurve().getInfinity();
|
||
|
int bitLength = bigInteger.bitLength();
|
||
|
int lowestSetBit = bigInteger.getLowestSetBit();
|
||
|
ECPoint timesPow2 = eCPoint.timesPow2(lowestSetBit);
|
||
|
while (true) {
|
||
|
lowestSetBit++;
|
||
|
if (lowestSetBit >= bitLength) {
|
||
|
return infinity.add(timesPow2);
|
||
|
}
|
||
|
infinity = infinity.add(bigInteger.testBit(lowestSetBit) ? timesPow2 : timesPow2.negate());
|
||
|
timesPow2 = timesPow2.twice();
|
||
|
}
|
||
|
}
|
||
|
}
|