Exemplo n.º 1
0
        //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);
        }
Exemplo n.º 2
0
        //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!");
        }