private static void transferWithPGP(AdvanceStream stream) { AES aes = AES.getInstance(); RSA rsa = new RSA("Server"); byte[] encrypytedSessionKey = stream.ReadBytes(); byte[] sessionKeyBytes = rsa.decrypt(encrypytedSessionKey, KeysManager.RSAPrivateKey); string encrypteTransferData = stream.ReadString(); string decrptedTransferData = aes.Decrypt(encrypteTransferData, getString(sessionKeyBytes)); MainWindow.instance.Log("Encrypted Session Key", Convert.ToBase64String(encrypytedSessionKey)); MainWindow.instance.Log("Decrypted Session Key", Convert.ToBase64String(sessionKeyBytes)); MainWindow.instance.Log("Encrypted Transfer Data", encrypteTransferData); MainWindow.instance.Log("Decrypted Transfer Data", decrptedTransferData); string clientPublicKey = stream.ReadString(); MainWindow.instance.Log("Client Public RSA Key", clientPublicKey); byte[] signture = stream.ReadBytes(); string recivedMessage = getString(encrypytedSessionKey) + encrypteTransferData; if (rsa.verifyData(getBytes(recivedMessage), clientPublicKey, signture)) { TransactionObject tran = TransactionObject.newLoginObject(decrptedTransferData); if (DBContext.DoTransaction(tran.senderID, tran.reciverID, tran.amount)) { MainWindow.instance.Log("Transfer money done"); } else { MainWindow.instance.Log("Can't transfer money"); } } else { MainWindow.instance.Log("Can't transfer money invalide signture"); } MainWindow.instance.Log(); }
private static void transferWithRSA(AdvanceStream stream) { RSA rsa = new RSA("Server"); byte[] encrypytedTransferBytes = stream.ReadBytes(); byte[] decryptedTransferBytes = rsa.decrypt(encrypytedTransferBytes, KeysManager.RSAPrivateKey); MainWindow.instance.Log("Encrypted Transfer Data", getString(encrypytedTransferBytes)); MainWindow.instance.Log("Decrypted Transfer Data", getString(decryptedTransferBytes)); TransactionObject tran = TransactionObject.newLoginObject(getString(decryptedTransferBytes)); if (DBContext.DoTransaction(tran.senderID, tran.reciverID, tran.amount)) { MainWindow.instance.Log("Transaction Ok"); } else { MainWindow.instance.Log("Transaction Error"); } MainWindow.instance.Log(); }