public static string GetAccountIdFromPrivateKey(string privateKey) { var pvtKey = Base58Encoding.DecodePrivateKey(privateKey); var kp = new Neo.Wallets.KeyPair(pvtKey); return(Base58Encoding.EncodeAccountId(kp.PublicKey.EncodePoint(false).Skip(1).ToArray())); }
public static bool ValidatePrivateKey(string PrivateKey) { try { Base58Encoding.DecodePrivateKey(PrivateKey); return(true); } catch { return(false); } }
private static byte[] DerivePublicKeyBytes(string privateKey) { var curve = SecNamedCurves.GetByName("secp256r1"); var domain = new ECDomainParameters(curve.Curve, curve.G, curve.N, curve.H); byte[] pkbytes = Base58Encoding.DecodePrivateKey(privateKey); var d = new BigInteger(pkbytes); var q = domain.G.Multiply(d); var publicKey = new ECPublicKeyParameters(q, domain); return(publicKey.Q.GetEncoded()); }
public static string GetSignature(string privateKey, string message, string AccountId) { var publicKeyBytes = Base58Encoding.DecodeAccountId(AccountId); var privateKeyBytes = Base58Encoding.DecodePrivateKey(privateKey); //var signature = Neo.Cryptography.Crypto.Default.Sign(Encoding.UTF8.GetBytes(message), privateKeyBytes, publicKeyBytes); //return Base58Encoding.Encode(signature); Neo.Cryptography.ECC.ECDsa sa = new Neo.Cryptography.ECC.ECDsa(privateKeyBytes, Neo.Cryptography.ECC.ECCurve.Secp256r1); var sigInts = sa.GenerateSignature(Encoding.ASCII.GetBytes(message)); var sh = new SignatureHolder(sigInts); var signature = sh.ToString(); //var vrt = VerifySignature(message, AccountId, signature); return(signature); }
public static string GetSignature(string privateKey, string message) { var curve = SecNamedCurves.GetByName("secp256r1"); var domain = new ECDomainParameters(curve.Curve, curve.G, curve.N, curve.H); //byte[] pkbytes = Base58Encoding.Decode(privateKey); //byte[] pkbytes = Base58Encoding.DecodeWithCheckSum(privateKey); byte[] pkbytes = Base58Encoding.DecodePrivateKey(privateKey); var keyParameters = new ECPrivateKeyParameters(new Org.BouncyCastle.Math.BigInteger(1, pkbytes), domain); ISigner signer = SignerUtilities.GetSigner("SHA-256withECDSA"); signer.Init(true, keyParameters); signer.BlockUpdate(Encoding.UTF8.GetBytes(message), 0, message.Length); var signature = signer.GenerateSignature(); var netformat = SignatureHelper.ConvertDerToP1393(signature); return(Base58Encoding.Encode(netformat)); }