winapi — импорт сертификата с использованием CryptUIWizImport автоматически в качестве доверенного корня с переполнением стека

Я использую следующий код для импорта сертификата в качестве доверенного корня:

#include "stdafx.h"#include "windows.h"#include "Cryptuiapi.h"
#pragma comment(lib, "Cryptui.lib")

int _tmain(int argc, _TCHAR* argv[]){
CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc;
memset(&importSrc, 0, sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO));
importSrc.dwSize = sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO);
importSrc.dwSubjectChoice = CRYPTUI_WIZ_IMPORT_SUBJECT_FILE;
importSrc.pwszFileName = L“C:\\PathToCert\\MyCertificate.cer”;
importSrc.pwszPassword = L"";
importSrc.dwFlags = CRYPT_EXPORTABLE | CRYPT_USER_PROTECTED;
if (CryptUIWizImport(
CRYPTUI_WIZ_NO_UI,
NULL,
NULL,
&importSrc,
NULL
) == 0)
{
printf(“CryptUIWizImport error 0x%x\n”, GetLastError());
}
return 0;
}

Тем не менее, этот подход импортирует мой сертификат как Intermediate Certificate Authorities в то время как мне нужно импортировать его как Trusted Root Certificate Authorities, Я не хочу использовать какой-либо мастерский подход и не могу изменить свой сертификат.

Можно ли импортировать этот сертификат в качестве доверенного корня?

Есть ли недвижимость в CryptUIWizImport установить тип сертификата в качестве доверенного корня?

Спасибо заранее

0

Решение

Мы должны выполнить команду пакетного файла изнутри кода C ++:

#include "stdafx.h";
#include "windows.h"#include "Cryptuiapi.h"#include <iostream>
#include <string>
using namespace std;

#pragma comment(lib,"Cryptui.lib")

int _tmain(int argc, _TCHAR* argv[])
{

char buffer[MAX_PATH];
GetModuleFileNameA(NULL, buffer, MAX_PATH);
string::size_type pos = string(buffer).find_last_of("\\/");
string myPath = string(buffer).substr(0,pos);
string myCommand = "certutil -addstore -f -enterprise -user root \""+myPath+"\\IRIPO CA.cer\"";
system(myCommand.c_str());
return 0;
}

Обратите внимание, что certificate файл должен быть помещен рядом с exe файл.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]