Как получить сертификат из файла pkcs7 - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть файл pkcs # 7 с включенным сертификатом подписавшего, сертификат CA, CRL.Теперь для проверки подписи из этого файла я получаю от него сертификат.Я пытаюсь сделать:

HANDLE hFile; 
if(!(hFile = CreateFile(L"c:\\users\\timur\\desktop\\sign_pkcs7.sig",
                            GENERIC_READ,
                            0,
                            NULL,
                            OPEN_EXISTING,
                            FILE_ATTRIBUTE_NORMAL,
                            NULL)))
{
    printf("Error opening file %d\n", GetLastError());
}

HCERTSTORE hPkcsStore = 0;
if(!(hPkcsStore = CertOpenStore(
                    CERT_STORE_PROV_PKCS7,
                    MY_TYPE,
                    NULL,
                    CERT_STORE_OPEN_EXISTING_FLAG,
                    hFile)))
{
    printf("Cert not found in pkcs7 store error %d.\n",GetLastError());
}

Но при вызове программы CertOpenStore происходит сбой с Место чтения нарушения доступа 0x0000001c.

1 Ответ

1 голос
/ 03 марта 2012

Вы можете использовать CryptQueryObject , чтобы открыть файл P7B или файлы во многих других форматах (код будет таким же, как здесь ).

...