PublicSharing implements Serializable { public boolean verifyShare(final int shareIndex, final PaillierPublicKey encryptionKey) { final BigInteger encryptedShare1 = this.encryptedShares1[shareIndex]; final BigInteger encryptedShare2 = this.encryptedShares2[shareIndex]; final BigInteger xPosition = BigInteger.valueOf(shareIndex + 1); final EcPoint shareCommitment = PublicSharingGenerator.interpolatePedersonCommitments(xPosition, this.pedersenCommitments); final PedersenEqRangeProof proof = this.proofs[shareIndex]; return PedersenEqRangeProofVerifier.isValid(proof, encryptedShare1, encryptedShare2, shareCommitment, encryptionKey); } PublicSharing(final EcPoint[] pedersenCommitments, final BigInteger[] encryptedShares1,
			final BigInteger[] encryptedShares2, final PedersenEqRangeProof[] proofs); EcPoint[] getPedersenCommitments(); BigInteger[] getEncryptedShares1(); BigInteger[] getEncryptedShares2(); PedersenEqRangeProof[] getProofs(); int getNumShares(); int getThreshold(); boolean verifyAllShares(final PaillierPublicKey[] shareholderKeys); boolean verifyShare(final int shareIndex, final PaillierPublicKey encryptionKey); EcPoint getSecretCommitment(); ShamirShare accessShare1(final int shareIndex, final PaillierPrivateKey decryptionKey); ShamirShare accessShare2(final int shareIndex, final PaillierPrivateKey decryptionKey); @Override String toString(); long getSize(); @Override int hashCode(); @Override boolean equals(Object obj);  }
@Test public void testVerifyShare() { fail("Not yet implemented"); }