/// <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); }
/// <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); }
/// <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); }