Пример #1
0
        /// <summary>
        /// Signs the given data with a private key
        /// </summary>
        /// <param name="data">Data to sign</param>
        /// <param name="privKey">Private key</param>
        /// <returns></returns>
        public static string Sign(string data, string privKey)
        {
            NetherumSigner::EthereumMessageSigner gen = new NetherumSigner::EthereumMessageSigner();

            HexUTF8StringConvertor conv = new HexUTF8StringConvertor();
            string hexPrivKey           = conv.ConvertToHex(privKey);

            return(gen.EncodeUTF8AndSign(data, new NetherumSigner::EthECKey(hexPrivKey)));
        }
Пример #2
0
        /// <summary>
        /// Verifies a message with a given signature and a public key
        /// </summary>
        /// <param name="message">The message which got signed</param>
        /// <param name="signature">The Signature</param>
        /// <param name="pubKey">The publickey to check against</param>
        /// <returns></returns>
        public static bool VerifyMessage(this string message, string signature, string pubKey)
        {
            NetherumSigner::EthereumMessageSigner gen = new NetherumSigner::EthereumMessageSigner();
            string addr;

            try
            {
                addr = gen.EncodeUTF8AndEcRecover(message, signature);
            }
            catch
            {
                return(false);
            }

            return((addr.ToLower().Equals(pubKey.ToLower())) ? true : false);
        }