/// <summary> /// Metoda koja služi za enkripciju poruke s obzirom na sam sadržaj poruke. /// Prvo se izgenerira ključ i inicijalizacijski vekor pomoću kojih se aes algoritmom enkriptira sadm sadržaj poruke. /// Zatim se izgenerirani ključ enkriptira pomoću rsa algoritma i to zahvaljujući javnome ključu koji se prosljeđuje /// samoj metodi. /// </summary> /// <param name="poruka"></param> /// <param name="javniKljuc"></param> /// <returns></returns> public static EnkripcijskiPaket EncryptData(string poruka, string javniKljuc) { EnkripcijskiPaket novi = new EnkripcijskiPaket(); Enkripcija aes = new AesEnkripcija(); Enkripcija rsa = new RsaEnkripcija(); rsa.PridruziJavniKljuc(javniKljuc); aes.GenerirajKljucIV(); novi.Iv = aes.DohvatiIV(); novi.EnkriptiraniPodaci = aes.EncryptData(poruka); novi.EnkriptiraniKljuc = rsa.EncryptData(Convert.ToBase64String(aes.DohvatiAESKljuc())); return(novi); }
/// <summary> /// Metoda koja služi za enkripciju datoteke. /// Prvo se izgenerira ključ i inicijalizacijski vekor pomoću kojih se aes algoritmom enkriptira sadm sadržaj datoteke. /// Zatim se izgenerirani ključ enkriptira pomoću rsa algoritma i to zahvaljujući javnome ključu koji se prosljeđuje /// samoj metodi. /// </summary> /// <param name="file"></param> /// <param name="javniKljuc"></param> /// <returns></returns> public static EnkripcijskiPaket EncryptFile(byte[] file, string javniKljuc) { EnkripcijskiPaket novi = new EnkripcijskiPaket(); AesEnkripcija aes = new AesEnkripcija(); Enkripcija rsa = new RsaEnkripcija(); rsa.PridruziJavniKljuc(javniKljuc); aes.GenerirajKljucIV(); novi.Iv = aes.DohvatiIV(); novi.PridruziDatoteku(aes.EncryptFile(file)); novi.EnkriptiraniKljuc = rsa.EncryptData(Convert.ToBase64String(aes.DohvatiAESKljuc())); return(novi); }
/// <summary> /// Event handler koji se aktivira prilikom klika na gumb Generiraj. Na temelju pripadajućeg odabira vrste algoritma /// generiraju se potrebni ključevi i inicijalizacijski vektori potrebni za određenu vrsu algoritma enkripcije. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gumbGeneriraj_Click(object sender, EventArgs e) { if (odabirAlgoritam.SelectedValue == (object)"AES") { Enkripcija aesEnkripcija = new AesEnkripcija(); aesEnkripcija.GenerirajKljucIV(); odabirPrvo.Text = Convert.ToBase64String(aesEnkripcija.DohvatiAESKljuc()); odabirDrugo.Text = Convert.ToBase64String(aesEnkripcija.DohvatiIV()); trenutna = aesEnkripcija; } if (odabirAlgoritam.SelectedValue == (object)"RSA") { Enkripcija rsaEnkripcija = new RsaEnkripcija(); rsaEnkripcija.AssignRsaKeys(); odabirPrvo.Text = rsaEnkripcija.DohvatiJavniKljuc(); odabirDrugo.Text = rsaEnkripcija.DohvatiPrivatniKljuc(); trenutna = rsaEnkripcija; } if (odabirAlgoritam.SelectedValue == (object)"DES") { Enkripcija des = new DesEnkripcija(); des.GenerirajKljucIV(); odabirPrvo.Text = Convert.ToBase64String(des.DohvatiAESKljuc()); odabirDrugo.Text = Convert.ToBase64String(des.DohvatiIV()); trenutna = des; } if (odabirAlgoritam.SelectedValue == (object)"TripleDES") { Enkripcija tripleDes = new TripleDesEnkripcija(); tripleDes.GenerirajKljucIV(); odabirPrvo.Text = Convert.ToBase64String(tripleDes.DohvatiAESKljuc()); odabirDrugo.Text = Convert.ToBase64String(tripleDes.DohvatiIV()); trenutna = tripleDes; } gumbEnkriptiraj.Enabled = true; }