public void Create2Test() { SEALContext context = GlobalContext.BFVContext; KeyGenerator keygen1 = new KeyGenerator(context); Encryptor encryptor1 = new Encryptor(context, keygen1.PublicKey); Decryptor decryptor1 = new Decryptor(context, keygen1.SecretKey); Ciphertext cipher = new Ciphertext(); Plaintext plain = new Plaintext("2x^1 + 5"); Plaintext plain2 = new Plaintext(); encryptor1.Encrypt(plain, cipher); decryptor1.Decrypt(cipher, plain2); Assert.AreNotSame(plain, plain2); Assert.AreEqual(plain, plain2); KeyGenerator keygen2 = new KeyGenerator(context, keygen1.SecretKey); Encryptor encryptor2 = new Encryptor(context, keygen2.PublicKey); Decryptor decryptor2 = new Decryptor(context, keygen2.SecretKey); Plaintext plain3 = new Plaintext(); decryptor2.Decrypt(cipher, plain3); Assert.AreNotSame(plain, plain3); Assert.AreEqual(plain, plain3); KeyGenerator keygen3 = new KeyGenerator(context, keygen1.SecretKey, keygen1.PublicKey); Encryptor encryptor3 = new Encryptor(context, keygen3.PublicKey); Decryptor decryptor3 = new Decryptor(context, keygen3.SecretKey); Plaintext plain4 = new Plaintext(); decryptor3.Decrypt(cipher, plain4); Assert.AreNotSame(plain, plain4); Assert.AreEqual(plain, plain4); Ciphertext cipher2 = new Ciphertext(); plain2.Release(); encryptor3.Encrypt(plain, cipher2); decryptor2.Decrypt(cipher2, plain2); Assert.AreNotSame(plain, plain2); Assert.AreEqual(plain, plain2); }
public void ReleaseTest() { Plaintext plain = new Plaintext(); plain.Reserve(10000); plain.Set("3x^2 + 4x^1 + 5"); Assert.AreEqual(10000ul, plain.Capacity); Assert.AreEqual(3ul, plain.CoeffCount); plain.Release(); Assert.AreEqual(0ul, plain.Capacity); Assert.AreEqual(0ul, plain.CoeffCount); }