public static void TestProtocol() { var rsa = new RSACryptography(); var validator = new Validator(rsa); validator.CreateKeys(); var agency = new Agency(rsa, validator.PublicKey.GetChangeableCopy(), 10); var elector = new Elector(rsa, validator.PublicKey.GetChangeableCopy()); elector.CreateNewKeys(); var blinded = elector.CreateBlindedMessage(0); var blindedSigned = elector.CreateBlindedSignedMessage(0); if (validator.VerifyBulletin(blindedSigned, blinded, elector.PublicSignKey.GetChangeableCopy())) { var signedByValidator = validator.SignBulletin(blinded); var signedValidatorUnBlind = elector.RemoveBlindEncryption(signedByValidator); var encryptedBulletin = elector.GetEncryptedBulletin(0); var signedEncryptedBulletin = elector.GetSignedEncryptedBulletin(0); agency.AddBulletin(signedValidatorUnBlind, encryptedBulletin, signedEncryptedBulletin, elector.PublicSignKey.GetChangeableCopy(), 1); } }