internal static extern Status Make( ulong number_of_guardians, ulong quorum, ElementModP.ElementModPHandle elgamal_public_key, ElementModQ.ElementModQHandle commitment_hash, ElementModQ.ElementModQHandle manifest_hash, out CiphertextElectionContextHandle handle);
internal static extern bool IsValidEncryption( CiphertextBallotHandle handle, ElementModQ.ElementModQHandle manifest_hash, ElementModP.ElementModPHandle public_key, ElementModQ.ElementModQHandle crypto_extended_base_hash);
internal static extern bool IsValidEncryption( CiphertextBallotSelectionHandle handle, ElementModQ.ElementModQHandle encryption_seed, ElementModP.ElementModPHandle public_key, ElementModQ.ElementModQHandle crypto_extended_base_hash);
internal static extern Status GetElGamalPublicKey( CiphertextElectionContextHandle handle, out ElementModP.ElementModPHandle elgamal_public_key);
internal static extern Status Encrypt( ulong plaintext, ElementModQ.ElementModQHandle nonce, ElementModP.ElementModPHandle public_key, out ElGamalCiphertext.ElGamalCiphertextHandle handle);
internal static extern Status GetData( ElGamalCiphertextHandle handle, out ElementModP.ElementModPHandle elgamal_public_key);
internal static extern Status GetPublicKey( ElGamalKeyPairHandle handle, out ElementModP.ElementModPHandle out_public_key);
internal static extern Status TWO_MOD_P(out ElementModP.ElementModPHandle handle);
internal static extern Status G(out ElementModP.ElementModPHandle handle);