public void Decrypt() { Utils.ProcessInEnv(env => { var dec = enc1.Decrypt(env); Compare(vec1, dec); }, Factory); }
public static void Show(IVector v, IFactory factory, string name = "", bool showAll = false) { Vector <double> dec = null; Utils.ProcessInEnv((env) => { dec = v.Decrypt(env); }, factory); Console.Write("{0} size {1}", name, dec.Count); int last = dec.Count; if (!showAll && 3 < last) { last = 3; } for (int i = 0; i < last; i++) { Console.Write("\t{0:F4}", dec[i]); } Console.WriteLine("\t||\t{0:F4}\t{1:F4}", dec.Min(), dec.Max()); }
public void SaveLoadKeys() { if (Factory is EncryptedSealBfvFactory factory) { var now = DateTime.Now; factory.Save("keys.keys"); factory.Save("keys2.keys", true); Console.WriteLine("Saved in {0}", (DateTime.Now - now).TotalSeconds); var v = Vector <Double> .Build.Dense(new double[] { 1, 2, 3 }); IVector vEnc = factory.GetEncryptedVector(v, EVectorFormat.dense, 1); var factory2 = new EncryptedSealBfvFactory("keys2.keys"); Vector <double> w = null; Utils.ProcessInEnv(env => { w = vEnc.Decrypt(env); }, factory2); Compare(v, w); } }