	public ECKey(final Curve crv, final Base64URL x, final Base64URL y, final Base64URL d,
		     final KeyUse use, final Set<KeyOperation> ops, final Algorithm alg, final String kid,
		     final URI x5u, final Base64URL x5t, final Base64URL x5t256, final List<Base64> x5c,
		     final KeyStore ks) {

		super(KeyType.EC, use, ops, alg, kid, x5u, x5t, x5t256, x5c, ks);
		
		if (crv == null) {
			throw new IllegalArgumentException("The curve must not be null");
		}

		this.crv = crv;

		if (x == null) {
			throw new IllegalArgumentException("The 'x' coordinate must not be null");
		}

		this.x = x;

		if (y == null) {
			throw new IllegalArgumentException("The 'y' coordinate must not be null");
		}

		this.y = y;
		
		ensurePublicCoordinatesOnCurve(crv, x, y);
		
		if (d == null) {
			throw new IllegalArgumentException("The 'd' coordinate must not be null");
		}

		this.d = d;
		
		this.privateKey = null;
	}
The software does not verify, or incorrectly verifies, the cryptographic signature for data.