Здравствуйте.
Столкнулся с такой проблемой - примерно через 13-15 мин. работы в IOS КриптоПро начинает выдавать ошибку: QueryTester FAIL: Flags 0x17ffffff. Запускаю на iPad в IOS 8.
Для чистоты эксперимента оставил две функции - открытие и освобождение контекста (cont - имя контейнера):
if (!CryptAcquireContext(&hCryptProv, cont, NULL, PROV_GOST_2001_DH, 0)) {
printf("CryptAcquireContext error: %x\n", CSP_GetLastError());
goto err;
}
if (!CryptReleaseContext(hCryptProv, 0)) {
printf("CryptReleaseContext error: %x\n", CSP_GetLastError());
goto err;
}
Запускаю их с заданным интервалом. Вот лог консоли при интервале 2 мин.:
2015-10-29 13:44:43.436 Stroytorgi[2137:1416039] Trying to encrypt /var/mobile/Containers/Data/Application/FA168B57-F113-4AC6-AB78-E764E5A53517/Documents/../Documents/cprocsp/keys, /var/mobile/Containers/Data/Application/FA168B57-F113-4AC6-AB78-E764E5A53517/Documents/../Documents/cprocsp/users/stores.
2015-10-29 13:44:43.437 Stroytorgi[2137:1416039] Encryption succeeded.
main_off:0x1143ef
size:12190792
Readers found: 1
HDIMAGE
Containers found: 2
260615
newsttr
cpcsp: 0x3204c9dc: :518 CPCAcquireContext (pszContainer=260615, dwFlags=0x0). Result=1, Err=0x0. hProv=-1044873169.
cpcsp: 0x3204c9dc: :717 CPCReleaseContext (hProv=-1044873169, dwFlags=0x0). Result=1, Err=0x80090020
cpcsp: 0x3204c9dc: :518 CPCAcquireContext (pszContainer=260615, dwFlags=0x0). Result=1, Err=0x0. hProv=702251129.
cpcsp: 0x3204c9dc: :717 CPCReleaseContext (hProv=702251129, dwFlags=0x0). Result=1, Err=0x80090020
cpcsp: 0x3204c9dc: :518 CPCAcquireContext (pszContainer=260615, dwFlags=0x0). Result=1, Err=0x0. hProv=-513310692.
cpcsp: 0x3204c9dc: :717 CPCReleaseContext (hProv=-513310692, dwFlags=0x0). Result=1, Err=0x80090020
cpcsp: 0x3204c9dc: :518 CPCAcquireContext (pszContainer=260615, dwFlags=0x0). Result=1, Err=0x0. hProv=-1546518286.
cpcsp: 0x3204c9dc: :717 CPCReleaseContext (hProv=-1546518286, dwFlags=0x0). Result=1, Err=0x80090020
cpcsp: 0x3204c9dc: :518 CPCAcquireContext (pszContainer=260615, dwFlags=0x0). Result=1, Err=0x0. hProv=1802371223.
cpcsp: 0x3204c9dc: :717 CPCReleaseContext (hProv=1802371223, dwFlags=0x0). Result=1, Err=0x80090020
cpcsp: 0x3204c9dc: :518 CPCAcquireContext (pszContainer=260615, dwFlags=0x0). Result=1, Err=0x0. hProv=918093870.
cpcsp: 0x3204c9dc: :717 CPCReleaseContext (hProv=918093870, dwFlags=0x0). Result=1, Err=0x80090020
cpcsp: 0x3204c9dc: :270 QueryTester FAIL: Flags 0x17ffffff
cpcsp: 0x3204c9dc: :472 CPCAcquireContext Tester fail cc=Ix hCSP=0x1813ca00
cpcsp: 0x3204c9dc: :518 CPCAcquireContext (pszContainer=260615, dwFlags=0x0). Result=0, Err=0x80090020. hProv=0.
CryptAquireContext error: 8009001a
Наверное, нужно добавить, что проверка целостности CSP на этом устройстве не проходит, но отключение проверки ни на что не влияет. И еще, смущает в логе ошибка 0x80090020 при освобождении контекста, хотя сама функция вроде как завершается без ошибки.