示例#1
0
        public void testVerifyRightMessage()
        {
            PrivateKey privateKey = new PrivateKey();
            PublicKey  publicKey  = privateKey.publicKey();
            string     message    = "This is the right message";
            Signature  signature  = Ecdsa.sign(message, privateKey);

            Assert.True(Ecdsa.verify(message, signature, publicKey));
        }
示例#2
0
        public void testVerifyWrongMessage()
        {
            PrivateKey privateKey = new PrivateKey();
            PublicKey  publicKey  = privateKey.publicKey();
            string     message1   = "This is the right message";
            string     message2   = "This is the wrong message";
            Signature  signature  = Ecdsa.sign(message1, privateKey);

            Assert.False(Ecdsa.verify(message2, signature, publicKey));
        }
示例#3
0
        public void SignTransaction(PrivateKey signingKey)
        {
            string fromAddressDER = BitConverter.ToString(FromAddress.toDer()).Replace("-", "");
            string signingDER     = BitConverter.ToString(signingKey.publicKey().toDer()).Replace("-", "");

            if (fromAddressDER != signingDER)
            {
                throw new Exception("You cannot sign transactions for other wallet!");
            }
            string txHash = this.CalculateHash();

            this.Signature = Ecdsa.sign(txHash, signingKey);
        }
        public void testDerConversion()
        {
            PrivateKey privateKey = new PrivateKey();
            string     message    = "This is a text message";

            Signature signature1 = Ecdsa.sign(message, privateKey);

            byte[]    der        = signature1.toDer();
            Signature signature2 = Signature.fromDer(der);

            Assert.Equal(signature1.r, signature2.r);
            Assert.Equal(signature1.s, signature2.s);
        }
        public void testBase64Conversion()
        {
            PrivateKey privateKey = new PrivateKey();
            string     message    = "This is a text message";

            Signature signature1 = Ecdsa.sign(message, privateKey);

            string    base64     = signature1.toBase64();
            Signature signature2 = Signature.fromBase64(base64);

            Assert.Equal(signature1.r, signature2.r);
            Assert.Equal(signature1.s, signature2.s);
        }
        public void testAssign()
        {
            // Generated by: openssl ecparam -name secp256k1 -genkey -out privateKey.pem
            string     privateKeyPem = EllipticCurve.Utils.File.read("files/privateKey.pem");
            PrivateKey privateKey    = PrivateKey.fromPem(privateKeyPem);

            string message = EllipticCurve.Utils.File.read("files/message.txt");

            Signature signature = Ecdsa.sign(message, privateKey);

            PublicKey publicKey = privateKey.publicKey();

            Assert.True(Ecdsa.verify(message, signature, publicKey));
        }
示例#7
0
        public string CreateSignature(string message)
        {
            Signature signature = Ecdsa.sign(message, PrivKey);

            return(signature.toBase64());
        }
示例#8
0
 public string CreateSignature(string message) => Ecdsa.sign(message, this.privateKey).toBase64();