Beispiel #1
0
        /// <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
        }
Beispiel #2
0
        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
        }