Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        /// <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);
        }
Beispiel #6
0
        /// <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);
        }