Exemplo n.º 1
0
        public void TestMethod1()
        {
            AesFileEncryptionPrivider.Create("hamed");
            var key1 = new KeyContainer();
            var key2 = new KeyContainer();

            key1.ExportPrivateKey("key.dat");
            var t1 = new Transaction(1, key1.PublicKeyS, key2.PublicKeyS, 15.5, 0, Guid.NewGuid().ToString().GetHashString());

            t1.GenerateSignture("key.dat");
            Assert.IsTrue(t1.IsSignatureVerified);
            key2.ExportPrivateKey("key.dat");
            t1.GenerateSignture("key.dat");
            Assert.IsFalse(t1.IsSignatureVerified);
            key1.Dispose();
            key2.Dispose();
        }
Exemplo n.º 2
0
        public void TestRsa()
        {
            var rsa1 = new RsaEncryptionProvider();
            var rsa2 = new RsaEncryptionProvider(rsa1.PublicKey);

            AesFileEncryptionPrivider.Create("Xunit");
            rsa1.ExportKey("testkey.dat");
            var rsa3    = new RsaEncryptionProvider("testkey.dat");
            var rsa4    = new RsaEncryptionProvider();
            var message = "Unit Testing With Xunit is cool!!";
            var sb      = new StringBuilder(message);

            for (int i = 0; i < 1000; i++)
            {
                sb.Append(i.ToString());
                sb.Append(" : ");
                sb.Append(message);
                sb.AppendLine();
            }
            var Message = sb.ToString();
            var enc1    = rsa1.Encrypt(message);
            var enc2    = rsa1.Encrypt(Message);
            var enc3    = rsa2.Encrypt(Message);
            var enc4    = rsa4.Encrypt(Message);

            Assert.NotEqual(enc1, enc2);
            Assert.NotEqual(enc2, enc4);
            var dec1 = rsa1.Decrypt(enc1);
            var dec2 = rsa1.Decrypt(enc2);
            var dec3 = rsa3.Decrypt(enc2);
            var dec4 = rsa4.Decrypt(enc4);

            Assert.Equal(message, dec1);
            Assert.NotEqual(dec1, dec2);
            Assert.Equal(dec2, dec3);
            Assert.Equal(dec3, dec4);
            Assert.Equal(dec4, Message);
            Assert.Equal(dec2, Message);
            rsa1.Dispose();
            rsa2.Dispose();
            rsa3.Dispose();
            rsa4.Dispose();
        }
Exemplo n.º 3
0
        public void TestRsaSignature()
        {
            var rsasign1 = new RsaSignatureProvider();
            var rsasign2 = new RsaSignatureProvider(rsasign1.PublicKey);

            AesFileEncryptionPrivider.Create("Xunit");
            rsasign1.ExportPrivateKey("testkey.dat");
            var rsasign3 = new RsaSignatureProvider("testkey.dat");
            var rsasign4 = new RsaSignatureProvider();
            var message  = "Unit Testing With Xunit is cool!!";
            var sb       = new StringBuilder(message);

            for (int i = 0; i < 1000; i++)
            {
                sb.Append(i.ToString());
                sb.Append(" : ");
                sb.Append(message);
                sb.AppendLine();
            }
            var Message = sb.ToString();
            var sign1   = rsasign1.GenerateSignture(message);
            var sign2   = rsasign1.GenerateSignture(Message);
            var sign3   = rsasign3.GenerateSignture(Message);
            var sign4   = rsasign4.GenerateSignture(Message);

            Assert.NotEqual(sign1, sign2);
            Assert.NotEqual(sign2, sign4);
            Assert.True(rsasign1.VerifySignature(message, sign1));
            Assert.True(rsasign1.VerifySignature(Message, sign2));
            Assert.False(rsasign1.VerifySignature(message, sign2));
            Assert.True(rsasign1.VerifySignature(Message, sign2));
            Assert.True(rsasign1.VerifySignature(Message, sign3));
            Assert.True(rsasign3.VerifySignature(message, sign1));
            Assert.False(rsasign4.VerifySignature(message, sign1));
            rsasign1.Dispose();
            rsasign2.Dispose();
            rsasign3.Dispose();
            rsasign4.Dispose();
        }
Exemplo n.º 4
0
        public void TestWallet()
        {
            AesFileEncryptionPrivider.Create("Xunit");
            WalletManager.Utilities.PrivateKeyFilePath             = "key0.dat";
            WalletManager.Utilities.TransactionVesion              = 1;
            TransactionManager.Utilities.BlockRewardForThisVersion = 10;
            var W0 = new Wallet();

            WalletManager.Utilities.PrivateKeyFilePath = "key1.dat";
            var W1 = new Wallet();

            WalletManager.Utilities.PrivateKeyFilePath = "key2.dat";
            var W2 = new Wallet();

            WalletManager.Utilities.PrivateKeyFilePath = "key3.dat";
            var W3 = new Wallet();
            var T  = new Transaction(WalletManager.Utilities.TransactionVesion, W0.PublicKey, W1.PublicKey, 100, 0,
                                     Guid.NewGuid().ToString().GetHashString());

            T.GenerateSignture("key0.dat");
            T.TransactionOutputs.Add(new TransactionOutput(T.Reciepient, T.Amount, T.TransactionHash));
            utxos.Add(T.TransactionOutputs[0].HashString, T.TransactionOutputs[0]);
            Assert.True(T.Process(x => true, null, null, Cleaner));
            W1.Refresh(refresh);
            Assert.Equal(100, W1.Balance);
            var T2 = W1.IsuueNewTransaction(Validator, Clean, W2.PublicKey, 15, 2, "h");

            W1.Refresh(refresh);
            W2.Refresh(refresh);
            Assert.Equal(0, W1.Balance);
            Assert.Equal(0, W2.Balance);
            var TF1 = new Transaction(3, W3.PublicKey, 10);

            TF1.GenerateSignture("key3.dat");
            TF1.TransactionOutputs.Add(new TransactionOutput(TF1.Reciepient, TF1.Amount, TF1.TransactionHash));
            utxos.Add(TF1.TransactionOutputs[0].HashString, TF1.TransactionOutputs[0]);
            Assert.True(T2.Process(x => false, null, CFA, Cleaner));
            Assert.True(TF1.Process(x => false, checkforminerreward, CFA, Cleaner));
            W1.Refresh(refresh);
            W2.Refresh(refresh);
            W3.Refresh(refresh);
            Assert.Equal(85, W1.Balance);
            Assert.Equal(15, W2.Balance);
            Assert.Equal(10, W3.Balance);
            var T3 = W1.IsuueNewTransaction(Validator, Clean, W2.PublicKey, 15, 3, "h2");

            W1.Refresh(refresh);
            W2.Refresh(refresh);
            Assert.Equal(0, W1.Balance);
            Assert.Equal(15, W2.Balance);
            var TF2 = new Transaction(3, W3.PublicKey, 10);

            TF2.TransactionOutputs.Add(new TransactionOutput(TF2.Reciepient, TF2.Amount, TF2.TransactionHash));
            utxos.Add(TF2.TransactionOutputs[0].HashString, TF2.TransactionOutputs[0]);
            Assert.True(T3.Process(x => false, null, CFA, Cleaner));
            TF2.GenerateSignture("key3.dat");
            Assert.True(TF2.Process(x => false, checkforminerreward, CFA, Cleaner));
            W1.Refresh(refresh);
            W2.Refresh(refresh);
            W3.Refresh(refresh);
            Assert.Equal(70, W1.Balance);
            Assert.Equal(30, W2.Balance);
            Assert.Equal(20, W3.Balance);
        }