Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
        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));
        }