/// <summary> /// Verify message signed using signmessage from bitcoincore /// </summary> /// <param name="message">The message</param> /// <param name="signature">The signature</param> /// <returns>True if signatures is valid</returns> public bool VerifyMessage(byte[] message, ECDSASignature signature) { #if HAS_SPAN var messageToSign = Utils.FormatMessageForSigning(message); var hash = Hashes.DoubleSHA256(messageToSign); Span <byte> msg = stackalloc byte[32]; hash.ToBytes(msg); return(_ECKey.SigVerify(signature.ToSecpECDSASignature(), msg)); #else var messageToSign = Utils.FormatMessageForSigning(message); var hash = Hashes.DoubleSHA256(messageToSign); return(ECKey.Verify(hash, signature)); #endif }
public bool Verify(uint256 hash, ECDSASignature sig) { if (sig == null) { throw new ArgumentNullException(nameof(sig)); } if (hash == null) { throw new ArgumentNullException(nameof(hash)); } #if HAS_SPAN Span <byte> msg = stackalloc byte[32]; hash.ToBytes(msg); return(_ECKey.SigVerify(sig.ToSecpECDSASignature(), msg)); #else return(ECKey.Verify(hash, sig)); #endif }