/// <summary> /// Пакетная проверка подписей файлов /// </summary> /// <param name="pathIn">Папка с исходными файлами</param> /// <param name="mask">Маска файлов для обработки (*.*)</param> /// <param name="pathOut">Папка для проверенных файлов (v)</param> /// <param name="pub">Строка пути к каталогу c OPENKEY (\Pub)</param> /// <param name="move">Удалять исходные файлы в случае успеха</param> /// <returns>0 или код последней ошибки</returns> public static int BulkVerify(string pathIn, string mask, string pathOut, string pub, bool move) { Wbotho.SignInit(pub, pub); Wbotho.SignLogIn(pub); Directory.CreateDirectory(pathOut); int ret = 0; foreach (string file in Directory.GetFiles(pathIn, mask)) { string fileOut = Path.Combine(pathOut, Path.GetFileName(file)); File.Copy(file, fileOut, true); int r = Posh.Verify(fileOut); //TODO Wbotho.CheckFileSignEx() if (r == 0 && move && File.Exists(fileOut)) { File.Delete(file); } else { File.Delete(fileOut); ret = r; } } Wbotho.SignLogOut(); Wbotho.SignDone(); return(ret); }
/// <summary> /// Удалить все подписи в конце файла (новое: без параметра с числом их) /// </summary> /// <param name="file">Файл с подписями</param> /// <remarks>wftesto.exe u file.txt</remarks> public static int Unsign(string file) { int ret; if ((ret = Wbotho.SignInit("", "")) > 0) { Console.WriteLine("SignInit error : {0}", ret); return(ret); } if ((ret = Posh.Unsign(file)) > 0) { Console.WriteLine("DelSign error : {0}", ret); return(ret); } Wbotho.SignDone(); Console.WriteLine("Sign deleted in file {0}", file); return(ret); }
/// <summary> /// Подписать файл с подписью в отдельном файле (новое) /// </summary> /// <param name="file">Исходный файл</param> /// <param name="fileSig">Файл с подписями</param> /// <param name="sec">Путь к секретному ключу</param> /// <param name="id">Код аутентификации (КА)</param> /// <remarks>wftesto.exe s2 file.txt file.sig a: 000122222201</remarks> public static int SignSeparate(string file, string fileSig, string sec, string id) { int ret; if ((ret = Wbotho.SignInit(sec, "")) > 0) { Console.WriteLine("SignInit error : {0}", ret); return(ret); } if ((ret = Posh.SignSeparate(file, id, fileSig)) > 0) { Console.WriteLine("SignFileSeparate error : {0}", ret); return(ret); } Wbotho.SignDone(); Console.WriteLine("File {0} signed to {1}", file, fileSig); return(ret); }
/// <summary> /// Подписать файл /// </summary> /// <param name="fileIn">Исходный файл</param> /// <param name="fileOut">Подписанный файл</param> /// <param name="sec">Путь к секретному ключу</param> /// <param name="id">Код аутентификации (КА)</param> /// <remarks>wftesto.exe s file.txt file.sig a: 000122222201</remarks> public static int Sign(string fileIn, string fileOut, string sec, string id) { int ret; if ((ret = Wbotho.SignInit(sec, "")) > 0) { Console.WriteLine("SignInit error : {0}", ret); return(ret); } if ((ret = Posh.Sign(fileIn, fileOut, id)) > 0) { Console.WriteLine("SignFile error : {0}", ret); return(ret); } Wbotho.SignDone(); Console.WriteLine("File {0} signed to {1}", fileIn, fileOut); return(ret); }
/// <summary> /// Расшифровать файл /// </summary> /// <param name="fileIn">Исходный файл</param> /// <param name="fileOut">Расшифрованный файл</param> /// <param name="sec">Путь к секретному ключу</param> /// <param name="pub">Путь к открытым ключам</param> /// <param name="id">Номер получателя</param> /// <remarks>wftesto.exe d file.cry file.txt c:\key c:\pub 1810</remarks> public static int Decrypt(string fileIn, string fileOut, string sec, string pub, string id) { int ret; if ((ret = Wbotho.CryptoInit(sec, pub)) > 0) { Console.WriteLine("CryptoInit error : {0}", ret); return(ret); } if ((ret = Posh.Decrypt(fileIn, fileOut, id)) > 0) { Console.WriteLine("DeCryptFile error : {0}", ret); return(ret); } Wbotho.CryptoDone(); Console.WriteLine("File {0} decrypted to {1}", fileIn, fileOut); return(ret); }
/// <summary> /// Зашифровать файл /// </summary> /// <param name="fileIn">Исходный файл</param> /// <param name="fileOut">Зашифрованный файл</param> /// <param name="sec">Путь к секретному ключу</param> /// <param name="pub">Путь к открытым ключам</param> /// <param name="id">Номер отправителя (серия опционально)</param> /// <param name="to">Номера получателей (той же серии) ...</param> /// <remarks> /// wftesto.exe e file.txt file.cry a:\ c:\pub 0001 0002 /// wftesto.exe e file.txt file.cry a:\ c:\pub 0001 0003 0004 /// wftesto.exe e file.txt file.cry c:\key\ c:\pub 0005[999999] 0006 0007 /// </remarks> public static int Encrypt(string fileIn, string fileOut, string sec, string pub, string id, params string[] to) { int ret; if ((ret = Wbotho.CryptoInit(sec, pub)) > 0) { Console.WriteLine("CryptoInit error : {0}", ret); return(ret); } if ((ret = Posh.Encrypt(fileIn, fileOut, id, to)) > 0) { Console.WriteLine("EnCryptFile error : {0}", ret); return(ret); } Wbotho.CryptoDone(); Console.WriteLine("File {0} encrypted to {1}", fileIn, fileOut); return(ret); }