	public void testCycle_ECDH_ES_Curve_P256_attackPoint1()
		throws Exception {
		
		ECKey ecJWK = generateECJWK(ECKey.Curve.P_256);
		
		BigInteger privateReceiverKey = ecJWK.toECPrivateKey().getS();
		
		JWEHeader header = new JWEHeader.Builder(JWEAlgorithm.ECDH_ES,
			EncryptionMethod.A128GCM)
			.agreementPartyUInfo(Base64URL.encode("Alice"))
			.agreementPartyVInfo(Base64URL.encode("Bob"))
			.build();
		
		// attacking point #1 with order 113 //
		BigInteger attackerOrderGroup1 = new BigInteger("113");
		BigInteger receiverPrivateKeyModAttackerOrderGroup1 = privateReceiverKey
			.mod(attackerOrderGroup1);
		
//		System.out.println("The receiver private key is equal to "
//			+ receiverPrivateKeyModAttackerOrderGroup1 + " mod "
//			+ attackerOrderGroup1);
		
		// The malicious JWE contains a public key with order 113
		String maliciousJWE1 = "eyJhbGciOiJFQ0RILUVTK0ExMjhLVyIsImVuYyI6IkExMjhDQkMtSFMyNTYiLCJlcGsiOnsia3R5IjoiRUMiLCJ4IjoiZ1RsaTY1ZVRRN3otQmgxNDdmZjhLM203azJVaURpRzJMcFlrV0FhRkpDYyIsInkiOiJjTEFuakthNGJ6akQ3REpWUHdhOUVQclJ6TUc3ck9OZ3NpVUQta2YzMEZzIiwiY3J2IjoiUC0yNTYifX0.qGAdxtEnrV_3zbIxU2ZKrMWcejNltjA_dtefBFnRh9A2z9cNIqYRWg.pEA5kX304PMCOmFSKX_cEg.a9fwUrx2JXi1OnWEMOmZhXd94-bEGCH9xxRwqcGuG2AMo-AwHoljdsH5C_kcTqlXS5p51OB1tvgQcMwB5rpTxg.72CHiYFecyDvuUa43KKT6w";
		JWEObject jweObject1 = JWEObject.parse(maliciousJWE1);
		
		ECDHDecrypter decrypter = new ECDHDecrypter(ecJWK.toECPrivateKey());
//		decrypter.getJCAContext().setKeyEncryptionProvider(BouncyCastleProviderSingleton.getInstance());
		
		try {
			jweObject1.decrypt(decrypter);
			fail();
		} catch (JOSEException e) {
			assertEquals("Invalid ephemeral public key: Point not on expected curve", e.getMessage());
		}
		
		// this proof that receiverPrivateKey is equals 26 % 113
//		assertEquals("Gambling is illegal at Bushwood sir, and I never slice.",
//			jweObject1.getPayload().toString());
		
		// THIS CAN BE DOIN MANY TIME
		// ....
		// AND THAN CHINESE REMAINDER THEOREM FTW
	}
The software does not verify, or incorrectly verifies, the cryptographic signature for data.