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);