예제 #1
0
파일: Transactions.cs 프로젝트: tkslan/Coin
        public void SingTxWithPublicKey()
        {
            var key = new Key();
            var tx  = new BlockTx()
            {
                Amount     = 1,
                PubKeyFrom = key.Public,
                PubKeyTo   = new Key("test").Public
            };
            var serializedTx = tx.Serialize();

            tx.Sign(key);
            Assert.NotNull(tx.Fingerprint);
            Assert.NotZero(tx.Fingerprint.Length);
            Assert.IsTrue(key.Verify(serializedTx, ByteArray.HexToByte(tx.Fingerprint)));
        }
예제 #2
0
파일: Transactions.cs 프로젝트: tkslan/Coin
        public void ValidateTxFailFromAlteredTransactionAmount()
        {
            var key = new Key();
            var tx  = new BlockTx()
            {
                Amount     = 1,
                PubKeyFrom = key.Public,
                PubKeyTo   = new Key("test").Public
            };

            tx.Sign(key);
            var signKey = new Key(ByteArray.HexToByte(tx.PubKeyFrom));

            tx.Amount = 2;
            Assert.IsFalse(signKey.Verify(tx.Serialize(), ByteArray.HexToByte(tx.Fingerprint)));
        }
예제 #3
0
파일: Transactions.cs 프로젝트: tkslan/Coin
        public void ValidateTxFromPublicKey()
        {
            var key = new Key();
            var tx  = new BlockTx()
            {
                Amount     = 1,
                PubKeyFrom = key.Public,
                PubKeyTo   = new Key("test").Public
            };
            var serializedTx = tx.Serialize();

            tx.Sign(key);
            var signKey = new Key(ByteArray.HexToByte(tx.PubKeyFrom));

            Assert.IsTrue(signKey.Verify(serializedTx, ByteArray.HexToByte(tx.Fingerprint)));
        }
예제 #4
0
파일: Transactions.cs 프로젝트: tkslan/Coin
        public void ValidateTxFailFromAlteredPublicKey()
        {
            var key = new Key();
            var tx  = new BlockTx()
            {
                Amount     = 1,
                PubKeyFrom = key.Public,
                PubKeyTo   = new Key("test").Public
            };
            var serializedTx = tx.Serialize();

            tx.Sign(key);
            var signKey       = new Key(ByteArray.HexToByte(tx.PubKeyFrom));
            var alteredPubKey = ByteArray.HexToByte(tx.Fingerprint.Replace("B", "C"));

            Assert.IsFalse(signKey.Verify(serializedTx, alteredPubKey));
        }