public void TestInit() { context_ = GlobalContext.BFVContext; keyGen_ = new KeyGenerator(context_); secretKey_ = keyGen_.SecretKey; keyGen_.CreatePublicKey(out publicKey_); }
public void KeyCopyTest() { { SEALContext context = GlobalContext.BFVContext; PublicKey pk; SecretKey sk = null; using (KeyGenerator keygen = new KeyGenerator(context)) { keygen.CreatePublicKey(out pk); sk = keygen.SecretKey; } ParmsId parmsIdPK = pk.ParmsId; ParmsId parmsIdSK = sk.ParmsId; Assert.AreEqual(parmsIdPK, parmsIdSK); Assert.AreEqual(parmsIdPK, context.KeyParmsId); } { SEALContext context = GlobalContext.BGVContext; PublicKey pk; SecretKey sk = null; using (KeyGenerator keygen = new KeyGenerator(context)) { keygen.CreatePublicKey(out pk); sk = keygen.SecretKey; } ParmsId parmsIdPK = pk.ParmsId; ParmsId parmsIdSK = sk.ParmsId; Assert.AreEqual(parmsIdPK, parmsIdSK); Assert.AreEqual(parmsIdPK, context.KeyParmsId); } }
public void Create2Test() { SEALContext context = GlobalContext.BFVContext; KeyGenerator keygen1 = new KeyGenerator(context); keygen1.CreatePublicKey(out PublicKey publicKey); Encryptor encryptor1 = new Encryptor(context, 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); keygen2.CreatePublicKey(out publicKey); Encryptor encryptor2 = new Encryptor(context, publicKey); Decryptor decryptor2 = new Decryptor(context, keygen2.SecretKey); Plaintext plain3 = new Plaintext(); decryptor2.Decrypt(cipher, plain3); Assert.AreNotSame(plain, plain3); Assert.AreEqual(plain, plain3); }