/// <summary> /// Metoda koja služi za dekripciju datoteke. /// Za dekripciju same datoteke važan je privatni ključ koji se prosljeđuje ovoj metodi te ona pomoću toga ključa /// rsa algoritmom dekriptira ključ kojim je enkriptirana datoteka. /// Zatim se taj ključ i inicijalizacijski vektor pridružuje aes objektu koji zatim može dekriptirati sam sadržaj datoteke. /// </summary> /// <param name="file"></param> /// <param name="kljuc"></param> /// <param name="iv"></param> /// <param name="privatniKljuc"></param> /// <returns></returns> public static byte[] DecryptFile(byte[] file, string kljuc, byte[] iv, string privatniKljuc) { AesEnkripcija aes = new AesEnkripcija(); Enkripcija rsa = new RsaEnkripcija(); rsa.PridruziPrivatniKljuc(privatniKljuc); var dekriptiraniKljuc = rsa.DecryptData(kljuc); aes.PridruziKljucIV(Convert.FromBase64String(dekriptiraniKljuc), iv); var decryptedData = aes.DecryptFile(file); return(decryptedData); }
/// <summary> /// Metoda koja služi za dekripciju poruke s obzirom na sam sadržaj poruke. /// Za dekripciju same poruke važan je privatni ključ koji se prosljeđuje ovoj metodi te ona pomoću toga ključa /// rsa algoritmom dekriptira ključ kojim je enkriptirana poruka. /// Zatim se taj ključ i inicijalizacijski vektor pridružuje aes objektu koji zatim može dekriptirati sam sadržaj poruke. /// </summary> /// <param name="poruka"></param> /// <param name="privatniKljuc"></param> /// <returns></returns> public static string DecryptData(Poruka poruka, string privatniKljuc) { Enkripcija aes = new AesEnkripcija(); Enkripcija rsa = new RsaEnkripcija(); rsa.PridruziPrivatniKljuc(privatniKljuc); var dekriptiraniKljuc = rsa.DecryptData(poruka.Paket.EnkriptiraniKljuc); aes.PridruziKljucIV(Convert.FromBase64String(dekriptiraniKljuc), poruka.Paket.Iv); var decryptedData = aes.DecryptData(poruka.Paket.EnkriptiraniPodaci); return(decryptedData); }