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 Status Make( ulong number_of_guardians, ulong quorum, [MarshalAs(UnmanagedType.LPStr)] string hex_elgamal_public_key, [MarshalAs(UnmanagedType.LPStr)] string hex_commitment_hash, [MarshalAs(UnmanagedType.LPStr)] string hex_manifest_hash, out CiphertextElectionContextHandle handle);
internal static extern Status ToBson( CiphertextElectionContextHandle handle, out uint *data, out UIntPtr size);
internal static extern Status FromBson( uint *data, ulong length, CiphertextElectionContextHandle handle);
internal static extern Status FromJson( [MarshalAs(UnmanagedType.LPStr)] string data, out CiphertextElectionContextHandle handle);
internal static extern Status GetCryptoExtendedBaseHash( CiphertextElectionContextHandle handle, out ElementModQ.ElementModQHandle crypto_extended_base_hash);
internal static extern Status GetManifestHash( CiphertextElectionContextHandle handle, out ElementModQ.ElementModQHandle manifest_hash);
internal static extern Status GetCommitmentHash( CiphertextElectionContextHandle handle, out ElementModQ.ElementModQHandle commitment_hash);
internal static extern Status GetElGamalPublicKey( CiphertextElectionContextHandle handle, out ElementModP.ElementModPHandle elgamal_public_key);
internal static extern Status Free(CiphertextElectionContextHandle handle);