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(); }
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(); }
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(); }
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); }