blob: 6471e2481686197de4e0ab7e01d259f85c61e4c2 [file] [log] [blame]
/* GENERATED SOURCE. DO NOT MODIFY. */
package com.android.internal.org.bouncycastle.math.ec.endo;
import java.math.BigInteger;
import com.android.internal.org.bouncycastle.math.ec.ECCurve;
import com.android.internal.org.bouncycastle.math.ec.ECPointMap;
import com.android.internal.org.bouncycastle.math.ec.ScaleXPointMap;
/**
* @hide This class is not part of the Android public SDK API
*/
public class GLVTypeBEndomorphism implements GLVEndomorphism
{
protected final GLVTypeBParameters parameters;
protected final ECPointMap pointMap;
public GLVTypeBEndomorphism(ECCurve curve, GLVTypeBParameters parameters)
{
/*
* NOTE: 'curve' MUST only be used to create a suitable ECFieldElement. Due to the way
* ECCurve configuration works, 'curve' will not be the actual instance of ECCurve that the
* endomorphism is being used with.
*/
this.parameters = parameters;
this.pointMap = new ScaleXPointMap(curve.fromBigInteger(parameters.getBeta()));
}
public BigInteger[] decomposeScalar(BigInteger k)
{
return EndoUtil.decomposeScalar(parameters.getSplitParams(), k);
}
public ECPointMap getPointMap()
{
return pointMap;
}
public boolean hasEfficientPointMap()
{
return true;
}
}