Функция CertCreateContext (wincrypt.h)
Функция CertCreateContext создает указанный контекст из закодированных байтов. Созданный контекст не включает расширенные свойства.
Синтаксис
const void * CertCreateContext(
[in] DWORD dwContextType,
[in] DWORD dwEncodingType,
[in] const BYTE *pbEncoded,
[in] DWORD cbEncoded,
[in] DWORD dwFlags,
[in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);
Параметры
[in] dwContextType
Указывает контексты, которые можно создать. Например, чтобы создать контекстсертификата, задайте параметру dwContextType значение CERT_STORE_CERTIFICATE_CONTEXT.
В следующей таблице показаны флаги определенных типов контекста.
Значение | Значение |
---|---|
|
Контекст сертификата. |
|
Контекст списка отзыва сертификатов. |
|
Контекст CTL. |
[in] dwEncodingType
Указывает используемый тип кодирования. В настоящее время используются только X509_ASN_ENCODING и PKCS_7_ASN_ENCODING; однако в будущем могут быть добавлены дополнительные типы кодирования. Для любого из текущих типов кодирования используйте:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pbEncoded
Указатель на буфер, содержащий существующее закодированное содержимое контекста для копирования.
[in] cbEncoded
Размер буфера pbEncoded в байтах.
[in] dwFlags
Следующие значения флагов определены и могут быть объединены с помощью побитовой операции ИЛИ .
Значение | Значение |
---|---|
|
Созданный контекст указывает непосредственно на содержимое, на которое указывает pbEncoded , а не на выделенную копию. |
|
Функция создает контекст с отсортированных записей. В настоящее время этот флаг применяется только к контексту CTL.
Для списков CCL элемент cCTLEntry возвращаемой структуры CTL_INFO всегда равен нулю. Для поиска или перечисления записей CTL необходимо вызывать CertFindSubjectInSortedCTL и CertEnumSubjectInSortedCTL. |
|
По умолчанию при создании контекста CTL создается дескриптор HCRYTPMSG для сообщения SignedData . Этот флаг можно установить для повышения производительности, не создавая этот дескриптор. Этот флаг можно использовать только в том случае, если параметр dwContextType имеет CERT_STORE_CTL_CONTEXT. |
|
По умолчанию при создании контекста CTL его записи декодируются. Если этот флаг установлен, записи не декодируются и производительность улучшается. Этот флаг можно использовать только в том случае, если параметр dwContextType имеет CERT_STORE_CTL_CONTEXT. |
[in, optional] pCreatePara
Указатель на структуру CERT_CREATE_CONTEXT_PARA .
Если pCreatePara и его элемент pfnFree не имеют значения NULL, элемент pfnFree используется для освобождения памяти, указанной элементом pvFree . Если элемент pvFree имеет значение NULL, то для освобождения указателя pbEncoded используется элемент pfnFree.
Если pCreatePara или его член pfnFree имеет значение NULL, попытка освободить pbEncoded не предпринимается.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение является указателем на только что созданный контекст. Для освобождения созданного контекста необходимо вызвать член pvFreepCreatePara .
Если функция завершается сбоем, возвращается значение NULL. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
Если GetLastError возвращает ERROR_CANCELLED, это означает, что функция обратного вызова PFN_CERT_CREATE_CONTEXT_SORT_FUNC вернула значение FALSE для остановки сортировки.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |