static void IGenerateTheKey(string name, int g) { BigNum K = BigNum.GeneratePrime(512); BigNum N = BigNum.GeneratePrime(512); BigNum X = new BigNum(g).PowMod(K, N); // We store the keys as base64 strings in OpenSSL byte order (BE) string k = Convert.ToBase64String(K.ToBigArray()); string n = Convert.ToBase64String(N.ToBigArray()); string x = Convert.ToBase64String(X.ToBigArray()); Console.WriteLine(String.Format("Server.{0}.K \"{1}\"", name, k)); Console.WriteLine(String.Format("Server.{0}.N \"{1}\"", name, n)); Console.WriteLine(String.Format("Server.{0}.X \"{1}\"", name, x)); Console.WriteLine(); }