//ENCRYPTEER DATA //original = te encrypteren data public EncryptedPacket EncryptData(byte[] original, RSAWithRSAParameterKey rsaParams) { //Genereert session key byte[] sessionKey = aes.GenerateRandomNumber(32); //Maakt encryptedPacket en genereert iv EncryptedPacket encryptedPacket = new EncryptedPacket { iv = aes.GenerateRandomNumber(16) }; //Encrypteert data met AES-sleutel encryptedPacket.encryptedData = aes.Encrypt(original, sessionKey, encryptedPacket.iv); //Session key en IV gebruiken voor encryptie van data //Encrypteert de session key met RSA encryptedPacket.encryptedSessionKey = rsaParams.EncryptData(sessionKey); return(encryptedPacket); }
//GELADE FILE ENCRYPTEREN, HASHEN EN VERSTUREN private void btnEncrypt_Click(object sender, EventArgs e) { //Gelade file omzetten naar byte-array byte[] dataToEncrypt = File.ReadAllBytes(loadedFilename); //Objecten aanmaken die gebruikt moeten worden RSAWithRSAParameterKey rsaParams = new RSAWithRSAParameterKey(); HybridEncryption hybrid = new HybridEncryption(); //Filename voor encrypted data maken int startIndex = loadedFilename.LastIndexOf(@"\") + 1; string folderReceiver = Application.StartupPath + @"\Users\" + receiver + @"\Inbox\"; string encryptedFilename = folderReceiver + "Encr_From" + username + "_" + loadedFilename.Substring(startIndex); //ZOWEL DE DATA-, SESSION KEY- EN IV-FILE WORDEN HIERONDER GEHAALD UIT HET ENCRYPTEDPACK //Data wordt geencrypteerd + in Inbox van receiver geplaatst EncryptedPacket encryptedBlock = hybrid.EncryptData(dataToEncrypt, rsaParams); File.WriteAllBytes(encryptedFilename, encryptedBlock.encryptedData); //Filename voor session key maken string keyFilename = Application.StartupPath + @"\Users\" + receiver + @"\Cryptodata\" + "Encrypted Session Key"; File.WriteAllBytes(keyFilename, encryptedBlock.encryptedSessionKey); //Filename voor iv maken string ivFilename = Application.StartupPath + @"\Users\" + receiver + @"\Cryptodata\" + "IV"; File.WriteAllBytes(ivFilename, encryptedBlock.iv); //Hash maken van de oorspronkelijke file hashedMessage = Hash.ToMD5Hash(File.ReadAllText(loadedFilename)); //Hash encrypteren EncryptHash(hashedMessage); MessageBox.Show($"You have successfully signed, encrypted and sent the file to {receiver}!", "Succesfully hashed, encrypted and sent!"); }