public void Test_Encrypt_Ballot_Simple_Succeeds() { // Configure the election context var keypair = ElGamalKeyPair.FromSecret(Constants.TWO_MOD_Q); var description = new Manifest(manifest_json); var manifest = new InternalManifest(description); var context = new CiphertextElectionContext( 1UL, 1UL, keypair.PublicKey, Constants.TWO_MOD_Q, manifest.ManifestHash); var device = new EncryptionDevice(12345UL, 23456UL, 34567UL, "Location"); var mediator = new EncryptionMediator(manifest, context, device); var ballot = new PlaintextBallot(plaintext_json); // Act var ciphertext = mediator.Encrypt(ballot); // Assert // a property Assert.That(ciphertext.ObjectId == ballot.ObjectId); // json serialization var json = ciphertext.Json; var fromJson = new CiphertextBallot(json); Assert.That(ciphertext.ObjectId == fromJson.ObjectId); // binary serialization var bson = ciphertext.Bson; var fromBson = CiphertextBallot.FromBson(bson); Assert.That(ciphertext.ObjectId == fromBson.ObjectId); // submitted ballot var submitted = SubmittedBallot.From(ciphertext, BallotBoxState.cast); Assert.That(ciphertext.ObjectId == submitted.ObjectId); }
public void Test_Can_Deserlialze_Ciphertext_Election_Context() { // Arrange string data = "{\"crypto_base_hash\":\"B8CF9A8915BDB19C681AFBCDD1797F2CF360F723843D977D0E1B280CA2B24245\",\"crypto_extended_base_hash\":\"731052175CAE2EF7CFE0E827C65BB585CD8A9CB243320EB34C09B5DF3F75F982\",\"commitment_hash\":\"02\",\"manifest_hash\":\"02\",\"elgamal_public_key\":\"F258E409B1A130E00A3793555E0EAB2F560AA12CC01A3CB6B357035C6E734256B4D67877C018CB57AF150DDBBD0AC22B9D74C0B15C1AC80953086FDDFAAB7FC503022B61BE8C6E4FECD02136F4AFC68B51390D0E7E90661763455B8B1D79DDCBA82C7FFBA5BC7C28A323B2624FE7A72E693E45B0B88ACF1EBC4F2743AC0FBB9D3414070A37A7CD52B1C1443B69982B86DDCFEA3137C383A4C10705B7B2A244C93CD0179BD1203E5DCE19A078452C0525AA577D6214D1A849AF5BCE02581F381A872436497DA0245F10245604069562F98BE4F424227331252D955E8E77B42B20D3AB85530AC824FA4D5A8EDC4A6C7E310019BED8B8062B9A95B63CC126EFCC74D7512095183E2A2A99386B40210A9B1E9B2433F1C00D04DCCDA4CAE17E27456C6BD7D55C45C5F98514400EDA58D93A82E0D456C209087ED41106190F969B1DA4841F8EA26907FF4D29CAF05A4C5159AED129F980A06351B18CC88FB0954E958984070C0C8999D043BC68E1BFB8151F061103C9D89D9FDF709F747F816275463568FA6E18BAAD0C21A6C204C3795383F91EEECE312A4FCFD71B541718FF21F7D408D3A2572C889A7D25957BD7D206041452B60F513B24604CD8336C351D6B7A70BD39BEDBAD0B910D329230F4A3228DF1398CBE7EE7EEF49CB22C94BE32ED6C3F51B4F2C43A40BC5C217106CD7A0550BA12BB3D84643F90976ECFEF79614F2C46\",\"number_of_guardians\":1,\"quorum\":1}"; // Act var result = new CiphertextElectionContext(data); // Assert Assert.That(result.CommitmentHash.ToHex() == "02"); Assert.That(result.ManifestHash.ToHex() == "02"); }
public void Test_Compact_Encrypt_Ballot_Simple_Succeeds() { var keypair = ElGamalKeyPair.FromSecret(Constants.TWO_MOD_Q); var description = new Manifest(jsonManifest); var manifest = new InternalManifest(description); var context = new CiphertextElectionContext(1UL, 1UL, keypair.PublicKey, Constants.TWO_MOD_Q, manifest.ManifestHash); var device = new EncryptionDevice(12345UL, 23456UL, 34567UL, "Location"); var mediator = new EncryptionMediator(manifest, context, device); var ballot = new PlaintextBallot(plaintext); // Act var compact = mediator.CompactEncrypt(ballot); // Assert Assert.That(compact.ObjectId == ballot.ObjectId); var msgpack = compact.ToMsgPack(); var fromMsgpack = new CompactCiphertextBallot(msgpack); Assert.That(compact.ObjectId == fromMsgpack.ObjectId); }