Beispiel #1
0
        /// <summary>
        /// Получить список получателей зашифрованного файла
        /// </summary>
        /// <param name="file">Зашифрованный файл</param>
        /// <remarks>wftesto.exe g file.cry</remarks>
        public static int GetAbonents(string file)
        {
            int ret;

            if ((ret = Wbotho.CryptoInit("", "")) > 0)
            {
                Console.WriteLine("CryptoInit error : {0}", ret);
                return(ret);
            }
            ushort count;

            ushort[] list;
            if ((ret = Wbotho.GetCryptKeysF(file, out count, out list, "")) > 0)
            {
                Console.WriteLine("GetCryptKeysF error : {0}", ret);
                return(ret);
            }
            Wbotho.CryptoDone();
            Console.WriteLine("File {0} is encrypted for these abonents :", file); //новое: исправлено слово
            for (int i = 0; i < count; i++)
            {
                Console.WriteLine("ID{0} - {1}", i + 1, list[i]);
            }
            Wbotho.FreeMemory(list);
            return(ret);
        }
Beispiel #2
0
        /// <summary>
        /// Проверка подписи, сохраненной в отдельном файле
        /// </summary>
        /// <param name="file">Подписанный файл</param>
        /// <param name="fileSig">Файл с подписями</param>
        public static int VerifySeparate(string file, string fileSig)
        {
            int       ret;
            byte      count;
            CheckList list;

            if ((ret = Wbotho.CheckFileSeparate(file, out count, out list, fileSig)) > 0)
            {
                return(ret);
            }
            for (int i = 0; i < (int)count; i++)
            {
                switch (list.Signs[i].Status)
                {
                case 0:     //CORRECT
                    break;

                case 1:     //NOT_CORRECT
                    ret = 26;
                    break;

                case 2:     //OKEY_NOT_FOUND
                    ret = 6;
                    break;
                }
            }
            Wbotho.FreeMemory(list);
            return(ret);
        }
Beispiel #3
0
        /// <summary>
        /// Проверить все подписи в конце файла (новое: они реально проверяются)
        /// </summary>
        /// <param name="file">Подписанный файл</param>
        /// <param name="fileSig">Файл с подписями</param>
        /// <param name="pub">Путь к открытым ключам</param>
        /// <remarks>wftesto.exe v2 file.txt file.sig c:\pub</remarks>
        public static int VerifySeparate(string file, string fileSig, string pub)
        {
            int ret;

            if ((ret = Wbotho.SignInit("", pub)) > 0)
            {
                Console.WriteLine("SignInit error : {0}", ret);
                return(ret);
            }
            byte      count;
            CheckList list;

            if ((ret = Wbotho.CheckFileSeparate(file, out count, out list, fileSig)) > 0)
            {
                Console.WriteLine("CheckFileSeparate error : {0}", ret);
                return(ret);
            }
            Wbotho.SignDone();
            for (int i = 0; i < count; i++)
            {
                Console.Write("{0} - ", list.Signs[i].Alias);
                switch (list.Signs[i].Status)
                {
                case 0:     //CORRECT
                    Console.WriteLine("sign is OK");
                    break;

                case 1:     //NOT_CORRECT
                    Console.WriteLine("sign is corrupted");
                    ret = 26;
                    break;

                case 2:     //OKEY_NOT_FOUND
                    Console.WriteLine("key not found");
                    ret = 6;
                    break;
                }
            }
            Wbotho.FreeMemory(list);
            Console.WriteLine("File {0} verified with {1}", file, fileSig);
            return(ret);
        }