/// <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)); }
/* * 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); } }