private static void ServerVerify() { var userA = new RabinProvider(); var m = MathI.RandomI(100, 1000); System.Console.WriteLine($"Message to cypher: {m.ToHexString()}"); var signed = userA.Sign(m); System.Console.WriteLine($"PublicKey(n, b): ({userA.PublicKey.n.ToHexString()}, \n{userA.PublicKey.b.ToHexString()})"); System.Console.WriteLine($"Signed(m, s): ({signed.m.ToHexString()}, \n{signed.s.ToHexString()})"); }
private static void Extra() { var userA = new RabinProvider(); var userB = new RabinProvider(); var m = MathI.RandomI(100, 1000); System.Console.WriteLine($"Message to cypher: {m.ToHexString()}"); var encrypted = userA.Encrypt(m, userB.PublicKey); var decrypted = userB.Decrypt(encrypted); System.Console.WriteLine($"Encrypted: {encrypted.y.ToHexString()}"); System.Console.WriteLine($"(c1, c2): ({encrypted.c1}, {encrypted.c2})"); System.Console.WriteLine($"Decrypted: {decrypted.ToHexString()}\n"); var signed = userA.Sign(m); var verified = userB.Verify(signed, userA.PublicKey); System.Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.Console.WriteLine($"\nSigned: {signed.s}"); System.Console.WriteLine($"Verification result: {verified}"); }