//public void GenarateKeyPair() //{ // var curve = ECNamedCurveTable.GetByName("secp256r1"); // var domainParams = new ECDomainParameters(curve.Curve, curve.G, curve.N, curve.H, curve.GetSeed()); // var secureRandom = new SecureRandom(); // var keyParams = new ECKeyGenerationParameters(domainParams, secureRandom); // var generator = new ECKeyPairGenerator("ECDSA"); // generator.Init(keyParams); // var keyPair = generator.GenerateKeyPair(); // PrivateKey = keyPair.Private as ECPrivateKeyParameters; // PublicKey = keyPair.Public as ECPublicKeyParameters; //} public static string GeneratePrivateKey() { var privateKey = new byte[32]; var rnd = System.Security.Cryptography.RandomNumberGenerator.Create(); rnd.GetBytes(privateKey); //return Base58Encoding.Encode(privateKey); //return Base58Encoding.EncodeWithCheckSum(privateKey); return(Base58Encoding.EncodePrivateKey(privateKey)); }
public static (string privateKey, string AccountId) GenerateWallet() { byte[] privateKey = new byte[32]; using (RandomNumberGenerator rng = RandomNumberGenerator.Create()) { rng.GetBytes(privateKey); } var kp = new KeyPair(privateKey); var pvtKeyStr = Base58Encoding.EncodePrivateKey(privateKey); var pubKey = kp.PublicKey.EncodePoint(false).Skip(1).ToArray(); return(pvtKeyStr, Base58Encoding.EncodeAccountId(pubKey)); }