/// <summary>
            /// Sign message with the private key
            /// </summary>
            /// <param name="input">input arguments</param>
            /// <returns>signed message string</returns>
            public override Task <string> SignMessage(byte[] input)
            {
                //CPU-bound
                var signer = new Nethereum.Signer.EthereumMessageSigner();
                var ecKey  = new Nethereum.Signer.EthECKey(DecodeLocalKey(), true);

                return(Task.FromResult(signer.Sign(input, ecKey)));
            }
        public static SignedCertificate CreateCertificate(string userAddress, string testCentreId, string privateKey, string photoUserId)
        {
            var ethEcKey      = new Nethereum.Signer.EthECKey(privateKey);
            var signer        = new Nethereum.Signer.EthereumMessageSigner();
            var signerAddress = ethEcKey.GetPublicAddress();
            var signature     = signer.EncodeUTF8AndSign(SignedCertificate.GetRawCertificate(userAddress, signerAddress, testCentreId, photoUserId), ethEcKey);

            return(new SignedCertificate(userAddress, signerAddress, testCentreId, photoUserId, signature));
        }
Exemplo n.º 3
0
        /*
         * deposit
         * van
         * crouch
         * super
         * viable
         * electric
         * bamboo
         * nephew
         * hold
         * whip
         * nation
         * ankle
         * wonder
         * bottom
         * win
         * bomb
         * dog
         * search
         * globe
         * shrug
         * primary
         * spy
         * limb
         * knock
         */
        public static async Task TestMessageSigning()
        {
            using (var trezorManager = await TrezorFactory.GetWindowsConnectedLedgerManagerAsync(GetPin))
            {
                await trezorManager.InitializeAsync();

                var signer  = new TrezorExternalSigner(trezorManager, 0);
                var address = await signer.GetAddressAsync();

                var messageSignature = await signer.SignAsync(Encoding.UTF8.GetBytes("Hello"));

                var nethereumMessageSigner    = new Nethereum.Signer.EthereumMessageSigner();
                var nethereumMessageSignature = nethereumMessageSigner.EncodeUTF8AndSign("Hello", new EthECKey(
                                                                                             "0x2e14c29aaecd1b7c681154d41f50c4bb8b6e4299a431960ed9e860e39cae6d29"));
                System.Console.WriteLine("Trezor: " + EthECDSASignature.CreateStringSignature(messageSignature));
                System.Console.WriteLine("Nethereum: " + nethereumMessageSignature);
            }
        }