public bool VerifySignature(AsymmetricKeyParameter publicKey, byte[] data, byte[] signature) { Org.BouncyCastle.Crypto.ISigner signer = SignerUtilities.GetSigner(Algorithm); signer.Init(false, publicKey); signer.BlockUpdate(data, 0, data.Length); return(signer.VerifySignature(signature)); }
public bool SignatureIsValid(string signature, string contents, string publicKey) { var curve = SecNamedCurves.GetByName("secp256k1"); var domain = new ECDomainParameters(curve.Curve, curve.G, curve.N, curve.H); var publicKeyBytes = Base58Encoding.Decode(publicKey); var q = curve.Curve.DecodePoint(publicKeyBytes); var keyParameters = new ECPublicKeyParameters(q, domain); Org.BouncyCastle.Crypto.ISigner signer = SignerUtilities.GetSigner("SHA-256withECDSA"); signer.Init(false, keyParameters); signer.BlockUpdate(Encoding.ASCII.GetBytes(contents), 0, contents.Length); var signatureBytes = Base58Encoding.Decode(signature); return(signer.VerifySignature(signatureBytes)); }