/// <summary> /// Пакетное расшифрование файлов /// </summary> /// <param name="pathIn">Папка с исходными файлами</param> /// <param name="mask">Маска файлов для обработки (*.*)</param> /// <param name="pathOut">Папка для расшифрованных файлов (d)</param> /// <param name="ext">Новое расширение для расшифрованных файлов (.*)</param> /// <param name="pub">Строка пути к каталогу c OPENKEY (\Pub)</param> /// <param name="id">Номер отправителя (XXXXSSSSSS)</param> /// <param name="to">Номер получателя (XXXXSSSSSS)</param> /// <param name="move">Удалять исходные файлы в случае успеха</param> /// <returns>0 или код последней ошибки</returns> public static int BulkDecrypt(string pathIn, string mask, string pathOut, string ext, string pub, string id, string to, bool move) { Wbotho.CryptoInit(pub, pub); int ret; byte[] key = new byte[304]; if ((ret = Wbotho.ExtractKey(pub, id, key)) > 0) { return(ret); } Directory.CreateDirectory(pathOut); bool changeExt = !ext.Equals(".*"); foreach (string file in Directory.GetFiles(pathIn, mask)) { string fileOut = Path.Combine(pathOut, changeExt ? Path.GetFileNameWithoutExtension(file) + ext : Path.GetFileName(file)); int r = Wbotho.DeCryptFileEx(file, fileOut, to, key); if (r == 0 && move && File.Exists(fileOut)) { File.Delete(file); } else { ret = r; } } Wbotho.CryptoDone(); return(ret); }
/// <summary> /// Расшифрование файла (расширенное) /// </summary> /// <param name="fileIn">Исходный зашифрованный файл</param> /// <param name="fileOut">Расшифрованный файл</param> /// <param name="pub">Строка пути к каталогу c OPENKEY</param> /// <param name="id">Номер отправителя (XXXXSSSSSS)</param> /// <param name="to">Номер получателя (XXXXSSSSSS)</param> public static int DecryptEx(string fileIn, string fileOut, string pub, string id, string to) { int ret; byte[] key = new byte[304]; if ((ret = Wbotho.ExtractKey(pub, id, key)) > 0) { return(ret); } return(Wbotho.DeCryptFileEx(fileIn, fileOut, to, key)); }