Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AndrewMuravev  
#1 Оставлено : 19 июня 2020 г. 11:46:58(UTC)
AndrewMuravev

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.06.2020(UTC)
Сообщений: 8
Российская Федерация

Есть простой код, который должен в тихом режиме импортировать закрытый ключ их pfx контейнера в реестр, но он выдает ошибку GetLastError = 87, почему?
Если открывать pfx без флага PKCS12_IMPORT_SILENT, то все работает, выдается окно для ввода пароля, и после ввода, ключ импортируется.
Версия CSP 5.0.11455 KC1
OC Win7 SP1 x64

Код:

HANDLE hfile = INVALID_HANDLE_VALUE;
hfile = CreateFileA(xFilePath.c_str(), FILE_READ_DATA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);

CRYPT_DATA_BLOB blob;
blob.cbData = GetFileSize(hfile, 0);
BYTE *fb = (BYTE*)malloc(blob.cbData * sizeof(BYTE));
DWORD dw = 0;
BOOL b1 = ReadFile(hfile, fb, blob.cbData, &dw, NULL);
blob.pbData = (BYTE*)fb;
BOOL b2 = PFXIsPFXBlob(&blob);
cout << "b2 = " << b2 << endl; //1

HCERTSTORE pfxStore = 0;
pfxStore = PFXImportCertStore(&blob, xPassword.c_str(), PKCS12_IMPORT_SILENT);
if (!pfxStore) cout << "Store not open" << endl;

cout << "GetLastError = " << GetLastError() << endl; //87
cout << "pfxStore = " << pfxStore << endl; //00000000
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.