private void doSameKeyTest(ECPrivateKeyParameters priKey, ParametersWithRandom pRandom, BigInteger value) { ECPoint data = priKey.getParameters().getG().multiply(value); ECEncryptor encryptor = new ECElGamalEncryptor(); encryptor.init(pRandom); ECPair pair = encryptor.encrypt(data); ECPairTransform ecr = new ECNewRandomnessTransform(); ecr.init(pRandom); ECPair srcPair = pair; // re-encrypt the message portion pair = ecr.transform(srcPair); ECDecryptor decryptor = new ECElGamalDecryptor(); decryptor.init(priKey); // decrypt the fully transformed point. ECPoint result = decryptor.decrypt(pair); if (!data.equals(result)) { fail("point pair failed to decrypt back to original"); } }