internal static extern Status ToBsonWithNonces(
     CiphertextBallotHandle handle, out uint *data, out UIntPtr size);
 internal static extern Status FromBson(
     uint *data, ulong length, CiphertextBallotHandle handle);
 internal static extern Status ToJson(
     CiphertextBallotHandle handle, out IntPtr data, out UIntPtr size);
 internal static extern bool IsValidEncryption(
     CiphertextBallotHandle handle,
     ElementModQ.ElementModQHandle manifest_hash,
     ElementModP.ElementModPHandle public_key,
     ElementModQ.ElementModQHandle crypto_extended_base_hash);
 internal static extern Status FromJson(
     [MarshalAs(UnmanagedType.LPStr)] string data,
     out CiphertextBallotHandle handle);
 internal static extern Status GetNonce(
     CiphertextBallotHandle handle,
     out ElementModQ.ElementModQHandle nonce_ref);
 internal static extern Status GetCryptoHash(
     CiphertextBallotHandle handle,
     out ElementModQ.ElementModQHandle hash_ref);
 internal static extern Status GetContestAtIndex(
     CiphertextBallotHandle handle,
     ulong index,
     out CiphertextBallotContest.CiphertextBallotContestHandle contest_ref);
 internal static extern Status GetBallotCode(
     CiphertextBallotHandle handle,
     out ElementModQ.ElementModQHandle ballot_code_ref);
 internal static extern ulong GetContestsSize(CiphertextBallotHandle handle);
 internal static extern Status GetManifestHash(
     CiphertextBallotHandle handle,
     out ElementModQ.ElementModQHandle manifest_hash_ref);
 internal static extern Status GetStyleId(
     CiphertextBallotHandle handle, out IntPtr style_id);
 internal static extern Status GetObjectId(
     CiphertextBallotHandle handle, out IntPtr object_id);
 internal static extern Status Free(CiphertextBallotHandle handle);