Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,523   Сказал «Спасибо»: 555 раз Поблагодарили: 2252 раз в 1757 постах
|
tomparis написал:Добрый день! Хочу удалить уже существующий криптоконтейнер: Код:
// проверка наличия криптоконтейнера
if(CryptAcquireContext(&hCryptProv,"client",NULL,PROV_GOST_2001_DH,0)) {
// удаление
if(!CryptAcquireContext(&hCryptProv,"server",NULL,PROV_GOST_2001_DH,CRYPT_DELETEKEYSET)) {
DWORD err=GetLastError();
AnsiString str_err,desc;
str_err.printf("0x%08x",err);
}
}
// делаем новый
if(!CryptAcquireContext(&hCryptProv,"client",NULL,PROV_GOST_2001_DH,CRYPT_NEWKEYSET)) {
DWORD err=GetLastError();
AnsiString str_err,desc;
str_err.printf("0x%08x",err);
ShowMessage("Error in CryptAcquireContext in CRYPT_NEWKEYSET");
Close();
}
После CryptAcquireContext(CRYPT_DELETEKEYSET) выдает ошибку:"NTE_BAD_KEYSET"; После CryptAcquireContext(CRYPT_NEWKEYSET): "NTE_EXISTS". Исходные данные: Windows 7 x64 Borland C++ Builder 6 Крипто-Про 3.6.6497 (демонстрационная) Железный дровосек от Micosoft молвит: Цитата: NTE_EXISTS (0X8009000F) Контейнер ключа уже существует, но вы пытаетесь создать его. Не удалось выполнить предыдущие попытки открыть раздел с NTE_BAD_KEYSET, подразумевает, что запрещен доступ к контейнеру ключей.
ЧЯДНТ? Цитата:
После CryptAcquireContext(CRYPT_DELETEKEYSET) выдает ошибку:"NTE_BAD_KEYSET";
а где проверка, что он (с именем server) есть или она не нужна? // проверка наличия криптоконтейнера if(CryptAcquireContext(&hCryptProv," client",NULL,PROV_GOST_2001_DH,0)) { ... код ... } if(!CryptAcquireContext(&hCryptProv," client",NULL,PROV_GOST_2001_DH,CRYPT_NEWKEYSET)) { } а если он (" client") существует? все равно идем на if(!CryptAcquireContext(&hCryptProv,"client",NULL,PROV_GOST_2001_DH,CRYPT_NEWKEYSET)) ? Цитата: После CryptAcquireContext(CRYPT_NEWKEYSET): "NTE_EXISTS".
и удивляемся? Отредактировано пользователем 20 марта 2012 г. 3:48:22(UTC)
| Причина: Не указана |
|