(ExtendedStarknetPoint point)
| 3131 | } |
| 3132 | |
| 3133 | private static ExtendedStarknetPoint extendedEcDouble(ExtendedStarknetPoint point) |
| 3134 | { |
| 3135 | if (point.y.mod(EXTENDED_STARKNET_FIELD_PRIME).equals(BigInteger.ZERO)) { |
| 3136 | throw new RuntimeException("Point y coordinate cannot be zero."); |
| 3137 | } |
| 3138 | BigInteger slope = extendedDivMod(BigInteger.valueOf(3).multiply(point.x).multiply(point.x).add(EXTENDED_STARKNET_ALPHA), BigInteger.valueOf(2).multiply(point.y), EXTENDED_STARKNET_FIELD_PRIME); |
| 3139 | BigInteger x = extendedField(slope.multiply(slope).subtract(BigInteger.valueOf(2).multiply(point.x))); |
| 3140 | BigInteger y = extendedField(slope.multiply(point.x.subtract(x)).subtract(point.y)); |
| 3141 | return new ExtendedStarknetPoint(x, y); |
| 3142 | } |
| 3143 | |
| 3144 | private static ExtendedStarknetPoint extendedEcMult(BigInteger scalar, ExtendedStarknetPoint point) |
| 3145 | { |
no test coverage detected