static void Main() { //var privKey = EthECKey.GenerateKey(); var privKey = new EthECKey("97ddae0f3a25b92268175400149d65d6887b9cefaf28ea2c078e05cdc15a3c0a"); byte[] pubKeyCompressed = new ECKey(privKey.GetPrivateKeyAsBytes(), true).GetPubKey(true); Console.WriteLine("Private key: {0}", privKey.GetPrivateKey().Substring(4)); Console.WriteLine("Public key: {0}", privKey.GetPubKey().ToHex().Substring(2)); Console.WriteLine("Public key (compressed): {0}", pubKeyCompressed.ToHex()); Console.WriteLine(); string msg = "Message for signing"; byte[] msgBytes = Encoding.UTF8.GetBytes(msg); byte[] msgHash = new Sha3Keccack().CalculateHash(msgBytes); var signature = privKey.SignAndCalculateV(msgHash); Console.WriteLine("Msg: {0}", msg); Console.WriteLine("Msg hash: {0}", msgHash.ToHex()); Console.WriteLine("Signature: [v = {0}, r = {1}, s = {2}]", signature.V[0] - 27, signature.R.ToHex(), signature.S.ToHex()); Console.WriteLine(); var pubKeyRecovered = EthECKey.RecoverFromSignature(signature, msgHash); Console.WriteLine("Recovered pubKey: {0}", pubKeyRecovered.GetPubKey().ToHex().Substring(2)); bool validSig = pubKeyRecovered.Verify(msgHash, signature); Console.WriteLine("Signature valid? {0}", validSig); }
private void btnOpenWallet_Click(object sender, EventArgs e) { try { //var sprivKey = EthECKey.GenerateKey(); //Console.Write("Private Key: "); var privKey = new EthECKey(txtOpenWalletPK.Text); byte[] pubKeyCompressed = new ECKey(privKey.GetPrivateKeyAsBytes(), true).GetPubKey(true); byte[] pubKeyShaRIPE = RipeMD160(pubKeyCompressed); //Console.WriteLine("Private key: {0}", privKey.GetPrivateKey().Substring(4)); //Console.WriteLine("Public key: {0}", privKey.GetPubKey().ToHex().Substring(2)); //Console.WriteLine("Public key (compressed): {0}", pubKeyCompressed.ToHex()); //Console.WriteLine("Public key (RIPEMD160): {0}", pubKeyShaRIPE.ToHex()); txtOpenWallet.Text = $"Private Key:\n{txtOpenWalletPK.Text}\nExtracted Public Key:\n{pubKeyCompressed.ToHex()} \nAddress:\n{pubKeyShaRIPE.ToHex()}"; TransactionWallet.addressSession = pubKeyShaRIPE.ToHex(); TransactionWallet.pubKeySession = pubKeyCompressed.ToHex(); MainForm.LabelTextAddress = pubKeyShaRIPE.ToHex(); SendToServerGetBalance(pubKeyShaRIPE.ToHex()); } catch (Exception fuku) { txtOpenWallet.Text = fuku.ToString(); } }
/// <summary> /// Encrypt wallet and return keystore /// </summary> /// <param name="password">The Password to be used for encryption</param> /// <returns>Keystore</returns> public string encryptWallet(string password) { EthECKey ethECKey = new EthECKey(_wallet.PK); var service = new Nethereum.KeyStore.KeyStoreService(); return(service.EncryptAndGenerateDefaultKeyStoreAsJson( password, ethECKey.GetPrivateKeyAsBytes(), ethECKey.GetPublicAddress())); }
public Account GenerateNewAccount() { EthECKey ecKey = Nethereum.Signer.EthECKey.GenerateKey(); string privateKey = ecKey.GetPrivateKeyAsBytes().ToHex(); Account account = new Nethereum.Web3.Accounts.Account(privateKey); return(account); }
public void ShouldGenerateECKey() { var ecKey = EthECKey.GenerateKey(); var key = ecKey.GetPrivateKeyAsBytes(); var regeneratedKey = new EthECKey(key, true); Assert.Equal(key.ToHex(), regeneratedKey.GetPrivateKeyAsBytes().ToHex()); Assert.Equal(ecKey.GetPublicAddress().EnsureHexPrefix().ToLower(), regeneratedKey.GetPublicAddress().EnsureHexPrefix().ToLower()); }
public KeyPair GenerateNewWallet(string password) { EthECKey ecKey = Nethereum.Signer.EthECKey.GenerateKey(); string privateKey = ecKey.GetPrivateKeyAsBytes().ToHex(); Account account = new Account(privateKey); return(new KeyPair() { Private = account.PrivateKey, Address = account.Address }); }
static void Main(string[] args) { EthECKey ethECKey = EthECKey.GenerateKey(); byte[] key = ethECKey.GetPrivateKeyAsBytes(); var address = ethECKey.GetPublicAddress(); string password = "******"; var ksvc = new KeyStoreService(); string json = ksvc.EncryptAndGenerateDefaultKeyStoreAsJson(password, key, address); var ksfn = string.Format(@"e:\{0}.json", ksvc.GenerateUTCFileName(address)); File.WriteAllText(ksfn, json); }
public static JsonWebKey ToJsonWebKey( this EthECKey ecKey) { var privateKey = ecKey.GetPrivateKeyAsBytes(); var publicKey = ecKey.GetPubKey(); var ecParameters = new ECParameters { Curve = "SECP256K1", D = privateKey, X = publicKey.Slice(1, 33), Y = publicKey.Slice(33, 65) }; return(new JsonWebKey(ecParameters)); }
private static void Main(string[] args) { //string key = EncryptionUtils.GetRandomBytes(32).ToHex(); //string key = "0e549dbcccfbd11e255f6037e1e640efaca0e19966ac77a592fdf06d295952a4"; string key = "7e4670ae70c98d24f3662c172dc510a085578b9ccc717e6c2f4e547edd960a34"; EthECKey privateKey = new EthECKey(key); byte[] privateKeyBytes = privateKey.GetPrivateKeyAsBytes(); Console.WriteLine("Private key (64 hex digits):\r\n" + privateKeyBytes.ToHex()); byte[] publicKeyBytes = privateKey.GetPubKeyNoPrefix(); Console.WriteLine("Public key uncompressed (2 * 64 hex digits):\r\n" + publicKeyBytes.ToHex()); ECPublicKeyParameters publicKeyParams = new ECKey(privateKeyBytes, true).GetPublicKeyParameters(); string publicKeyCompressed = HashUtils.ToHexCompressed(publicKeyParams.Q); Console.WriteLine("Public key compressed (65 hex digits):\r\n" + publicKeyCompressed); byte[] publicAddress = HashUtils.ComputeRIPEMD160(Utils.GetBytes(publicKeyCompressed)); Console.WriteLine("Public address (40 hex digits):\r\n" + publicAddress.ToHex()); }
private void btnGenWallet_Click(object sender, EventArgs e) { var sprivKey = EthECKey.GenerateKey(); try { //var sprivKey = EthECKey.GenerateKey(); //Console.Write("Private Key: "); //string privxKey = Console.ReadLine(); var privKey = new EthECKey(sprivKey.GetPrivateKeyAsBytes().ToHex()); byte[] pubKeyCompressed = new ECKey(privKey.GetPrivateKeyAsBytes(), true).GetPubKey(true); byte[] pubKeyShaRIPE = RipeMD160(pubKeyCompressed); //Console.WriteLine("Private key: {0}", privKey.GetPrivateKey().Substring(4)); //Console.WriteLine("Public key: {0}", privKey.GetPubKey().ToHex().Substring(2)); //Console.WriteLine("Public key (compressed): {0}", pubKeyCompressed.ToHex()); //Console.WriteLine("Public key (RIPEMD160): {0}", pubKeyShaRIPE.ToHex()); //txtGenWallet.Text = sprivKey.GetPrivateKeyAsBytes().ToHex(); txtGenWallet.Text = $"Generated Private Key:\n{sprivKey.GetPrivateKeyAsBytes().ToHex()}\nExtracted Public Key:\n{pubKeyCompressed.ToHex()} \nAddress:\n{pubKeyShaRIPE.ToHex()}"; string data = $"%NEWWALLET%{pubKeyShaRIPE.ToHex()}"; frmMain.SendToServer(data); TransactionWallet.addressSession = pubKeyShaRIPE.ToHex(); TransactionWallet.pubKeySession = pubKeyCompressed.ToHex(); TransactionWallet.privKeySession = sprivKey.GetPrivateKeyAsBytes().ToHex(); SendToServerGetBalance(pubKeyShaRIPE.ToHex()); MainForm.LabelTextAddress = pubKeyShaRIPE.ToHex(); //((Label)frmMain.Controls["lblAccBalance"]).Text = "test"; //transWal.AddLog(sprivKey.GetPrivateKeyAsBytes().ToHex()); } catch (Exception error) { txtGenWallet.Text = error.ToString(); } }
public static string GetCoolAddress(EthECKey key, string password) { var scryptService = new KeyStoreScryptService(); var scryptResult = scryptService.EncryptAndGenerateKeyStoreAsJson(password, key.GetPrivateKeyAsBytes(), key.GetPublicAddress().ToLower().Replace("0x", ""), scryptParams); var path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\" + key.GetPublicAddress().ToLower(); using (var newfile = File.CreateText(path)) { newfile.Write(scryptResult); newfile.Flush(); return(scryptResult); } }
public Account CreateAccount(string password, EthECKey key, string path) { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //Create a store service, to encrypt and save the file using the web3 standard var service = new KeyStoreService(); var encryptedKey = service.EncryptAndGenerateDefaultKeyStoreAsJson(password, key.GetPrivateKeyAsBytes(), key.GetPublicAddress()); var fileName = service.GenerateUTCFileName(key.GetPublicAddress()); //save the File using (var newfile = File.CreateText(Path.Combine(path, fileName))) { newfile.Write(encryptedKey); newfile.Flush(); } return(new Account(key.GetPrivateKey())); }
private void Initialise(EthECKey key) { PrivateKey = key.GetPrivateKeyAsBytes(); Address = key.GetPublicAddress(); InitialiseDefaultTransactionManager(); }