	public static boolean isPointOnCurve(final BigInteger x, final BigInteger y, final ECParameterSpec ecParameterSpec) {
		
		// Ensure the following condition is met:
		// (y^2) mod p = (x^3 + ax + b) mod p
		EllipticCurve curve = ecParameterSpec.getCurve();
		BigInteger a = curve.getA();
		BigInteger b = curve.getB();
		BigInteger p = ((ECFieldFp) curve.getField()).getP();
		BigInteger leftSide = (y.pow(2)).mod(p);
		BigInteger rightSide = (x.pow(3).add(a.multiply(x)).add(b)).mod(p);
		
		return leftSide.equals(rightSide);
	}
The software does not verify, or incorrectly verifies, the cryptographic signature for data.