Поделиться через


Криптографические структуры

Следующие структуры используются функциями шифрования. Структуры шифрования классифицируются в соответствии с использованием следующим образом:

Структуры CryptXML

Следующие структуры используются функциями CryptXML.

Структура Описание
CRYPT_XML_ALGORITHM Задает алгоритм, используемый для подписывания или преобразования сообщения.
CRYPT_XML_ALGORITHM_INFO Содержит сведения об алгоритме.
CRYPT_XML_BLOB Содержит произвольный массив байтов.
CRYPT_XML_CRYPTOGRAPHIC_INTERFACE Передается указателю функции CryptXmlDllGetInterface для предоставления реализованных функций CryptXML.
CRYPT_XML_DATA_BLOB Содержит данные в кодировке XML.
CRYPT_XML_DATA_PROVIDER Указывает интерфейс для поставщика данных XML.
CRYPT_XML_DOC_CTXT Определяет контекстные сведения о документе.
CRYPT_XML_ISSUER_SERIAL Содержит пару различающихся имен и серийных номеров X.509 .
CRYPT_XML_KEY_DSA_KEY_VALUE Определяет значение ключа алгоритма цифровой подписи (DSA). Структура CRYPT_XML_KEY_DSA_KEY_VALUE используется в качестве элемента объединения значений ключа в структуре CRYPT_XML_KEY_VALUE .
CRYPT_XML_KEY_ECDSA_KEY_VALUE Определяет значение ключа алгоритма цифровой подписи (ECDSA) эллиптической кривой. Структура CRYPT_XML_KEY_ECDSA_KEY_VALUE используется в качестве элемента объединения ключевых значений в структуре CRYPT_XML_KEY_VALUE .
CRYPT_XML_KEY_INFO Инкапсулирует ключевые информационные данные.
CRYPT_XML_KEY_INFO_ITEM Инкапсулирует ключевые данные сведений, соответствующие элементу KeyInfo . Элемент KeyInfo позволяет получателю получить ключ, необходимый для проверки подписи.
CRYPT_XML_KEY_RSA_KEY_VALUE Определяет значение ключа RSA. Структура CRYPT_XML_KEY_RSA_KEY_VALUE используется в качестве элемента объединения значений ключа в структуре CRYPT_XML_KEY_VALUE .
CRYPT_XML_KEY_VALUE Содержит один открытый ключ , который может быть полезен при проверке подписи.
CRYPT_XML_KEYINFO_PARAM Используется функцией CryptXmlSign для указания элементов элемента KeyInfo для кодирования.
CRYPT_XML_OBJECT Описывает элемент Object в сигнатуре.
CRYPT_XML_PROPERTY Содержит сведения о свойстве CryptXML.
CRYPT_XML_REFERENCE Содержит сведения, используемые для заполнения элемента Reference .
CRYPT_XML_REFERENCES Определяет массив структур CRYPT_XML_REFERENCE .
CRYPT_XML_SIGNATURE Содержит сведения, используемые для заполнения элемента Signature .
CRYPT_XML_SIGNED_INFO Возвращает сведения о состоянии проверки подписи, сведения о состоянии сводки об элементе SignedInfo или сводной информации о состоянии массива элементов Reference .
CRYPT_XML_TRANSFORM_CHAIN_CONFIG Определяет определяемые приложением преобразования, которые разрешены для использования в цифровой подписи XML.
CRYPT_XML_TRANSFORM_INFO Содержит сведения, используемые при применении преобразования данных.
CRYPT_XML_X509DATA Представляет последовательность вариантов в элементе X509Data .
CRYPT_XML_X509DATA_ITEM Представляет данные X.509 , которые необходимо закодировать в именованном элементе X509Data.

 

Общие структуры шифрования

Следующие структуры используются базовыми функциями шифрования.

Структура Описание
CMS_DH_KEY_INFO Используется с параметром KP_CMS_DH_KEY_INFO в функции CryptSetKeyParam для хранения сведений о ключе Diffie-Hellman .
CMS_KEY_INFO Эта структура не используется.
CRYPT_AES_128_KEY_STATE Задает 128-разрядные сведения о симметричном ключе для шифра AES.
CRYPT_AES_256_KEY_STATE Задает 256-разрядные сведения о симметричном ключе для шифра AES.
CRYPT_ALGORITHM_IDENTIFIER Содержит идентификатор объекта (OID) алгоритма и все необходимые параметры для этого алгоритма.
CRYPT_ATTRIBUTE Указывает атрибут, имеющий одно или несколько значений.
CRYPT_ATTRIBUTE_TYPE_VALUE Содержит одно значение атрибута.
CRYPT_ATTRIBUTES Содержит массив атрибутов.
CRYPT_BIT_BLOB Содержит массив байтов.
CRYPT_BLOB_ARRAY Содержит массив структур CRYPT_DATA_BLOB .
CRYPT_CONTENT_INFO Содержит данные, закодированные в формате данных PKCS #7 ContentInfo.
CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY Содержит сведения, представляющие последовательность сертификатов Netscape сертификатов.
CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA Используется с функцией CryptInstallDefaultContext для хранения массива строк идентификатора объекта.
CRYPT_ECC_CMS_SHARED_INFO Представляет сведения о ключе шифрования ключей при использовании шифрования эллиптических кривых (ECC) в типе контента Cryptographic Message Syntax (CMS) EnvelopedData.
CRYPT_ENCRYPTED_PRIVATE_KEY_INFO Содержит сведения о зашифрованном закрытом ключе PKCS 8.
CRYPT_ENROLLMENT_NAME_VALUE_PAIR Эта структура используется для создания запросов на сертификаты от имени пользователя.
CRYPT_INTEGER_BLOB Содержит данные различных типов двоичных больших объектов под именами, соответствующими типу.
CRYPT_KEY_LIMITS Поддерживает неименованную функцию CryptGetLocalKeyLimits и не используется. Он будет удален в будущей версии Wincrypt.h.
CRYPT_KEY_PROV_INFO Содержит поля, передаваемые в качестве аргументов в CryptAcquireContext для получения дескриптора определенного контейнера ключей в определенном поставщике служб шифрования (CSP) или для создания или уничтожения контейнера ключей.
CRYPT_KEY_PROV_PARAM Содержит данные, передаваемые в качестве аргументов в CryptSetProvParam.
CRYPT_KEY_SIGN_MESSAGE_PARA Содержит сведения о CSP и алгоритмах, используемых для подписывания сообщения.
CRYPT_KEY_VERIFY_MESSAGE_PARA Содержит сведения, необходимые для проверки подписанных сообщений без сертификата для подписывателя.
CRYPT_MASK_GEN_ALGORITHM Определяет алгоритм, используемый для создания маски подписи RSA PKCS #1 версии 2.1.
CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE Содержит указатели на функции, реализованные поставщиком расположения объекта.
CRYPT_PKCS8_EXPORT_PARAMS Содержит сведения, определяющие закрытый ключ и указатель на функцию обратного вызова.
CRYPT_PKCS8_IMPORT_PARAMS Содержит закрытый ключ PKCS 8 и два указателя на функции обратного вызова.
CRYPT_PKCS12_PBE_PARAMS Содержит параметры, используемые для создания ключа шифрования, вектора инициализации (IV) или ключа кода проверки подлинности сообщений (MAC) для алгоритма шифрования на основе паролей PKCS #12 .
CRYPT_PRIVATE_KEY_INFO Содержит сведения о закрытом ключе PKCS #8.
CRYPT_PSOURCE_ALGORITHM Определяет алгоритм и (необязательно) значение метки для шифрования ключа RSAES-OAEP.
CRYPT_RETRIEVE_AUX_INFO Содержит необязательные сведения о синхронизации времени для передачи функции CryptRetrieveObjectByUrl .
CRYPT_RSA_SSA_PSS_PARAMETERS Содержит параметры для подписи RSA PKCS #1 версии 2.1.
CRYPT_RSAES_OAEP_PARAMETERS Содержит параметры для шифрования ключа RSAES-OAEP.
CRYPT_SEQUENCE_OF_ANY Содержит произвольный список закодированных BLOB-объектов.
CRYPT_SMART_CARD_ROOT_INFO Содержит идентификаторы смарт-карт и сеансов, связанные с контекстом сертификата.
CRYPT_TIME_STAMP_REQUEST_INFO Эта структура используется для метки времени.
CRYPT_URL_INFO Содержит сведения о группированиях URL-адресов.
CRYPT_X942_OTHER_INFO Содержит дополнительные сведения о создании ключей.
CRYPTNET_URL_CACHE_FLUSH_INFO Содержит сведения об истечении срока действия, используемые службой кэша URL-адресов Cryptnet (CUC) для сохранения записи кэша URL-адресов.
CRYPTNET_URL_CACHE_PRE_FETCH_INFO Содержит сведения об обновлении, используемые службой кэша URL-адресов Cryptnet (CUC) для поддержания записи кэша URL-адресов.
CRYPTNET_URL_CACHE_RESPONSE_INFO Содержит сведения об ответе, используемые службой кэша URL-адресов Cryptnet (CUC) для сохранения записи кэша URL-адресов.
CRYPT_INTEGER_BLOB Эта структура используется для произвольного массива байтов.
CRYPTPROTECT_PROMPTSTRUCT Предоставляет текст запроса и сведения о том, когда и где он должен отображаться при использовании функций CryptProtectData и CryptUnprotectData .
CRYPTUI_INITDIALOG_STRUCT Поддерживает структуру CRYPTUI_VIEWCERTIFICATE_STRUCT .
CRYPTUI_SELECTCERTIFICATE_STRUCT Содержит сведения о диалоговом окне, отображаемом функцией CryptUIDlgSelectCertificate .
CRYPTUI_VIEWCERTIFICATE_STRUCT Содержит сведения о сертификате для просмотра. Он используется в функции CryptUIDlgViewCertificate .
CRYPTUI_VIEWSIGNERINFO_STRUCT Содержит сведения для функции CryptUIDlgViewSignerInfo .
CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO Содержит сведения, управляющие операцией функции CryptUIWizExport при экспорте сертификата.
CRYPTUI_WIZ_EXPORT_INFO Содержит сведения, управляющие операцией функции CryptUIWizExport .
CRYPTUI_WIZ_IMPORT_SRC_INFO Содержит тему для импорта в функцию CryptUIWizImport .
DHPRIVKEY_VER3 Содержит сведения, относящиеся к конкретному закрытому ключу, содержаемого в ключевом BLOB-объекте.
DHPUBKEY Содержит сведения, относящиеся к конкретному Diffie-Hellman открытый ключ, содержащийся в ключевом BLOB-объекте.
DHPUBKEY_VER3 Содержит сведения, относящиеся к конкретному открытому ключу, содержаемого в ключевом BLOB-объекте.
BLOB-объекты закрытого ключа Diffie-Hellman версии 3 Используется для экспорта и импорта сведений о закрытом ключе DH.
BLOB-объекты с открытым ключом Diffie-Hellman версии 3 Используется для экспорта и импорта сведений об открытом ключе DH.
BLOB-объекты закрытого ключа DSS версии 3 Используется для экспорта и импорта сведений о закрытом ключе DH.
BLOB-объекты открытого ключа DSS версии 3 Используется для экспорта и импорта сведений об открытом ключе DH.
DSSPRIVKEY_VER3 Содержит сведения, относящиеся к конкретному закрытому ключу, содержаемого в ключевом BLOB-объекте.
DSSPUBKEY Содержит сведения, относящиеся к конкретному открытому ключу, содержаемого в ключевом BLOB-объекте.
DSSPUBKEY_VER3 Содержит сведения, относящиеся к конкретному открытому ключу, содержаемого в ключевом BLOB-объекте.
DSSSEED Содержит начальные значения и значения счетчиков, которые можно использовать для проверки основных значений открытого ключа DSS.
HMAC_INFO Указывает хэш-алгоритм и внутренние и внешние строки, которые будут использоваться для вычисления хэш-кода проверки подлинности сообщений (HMAC).
KEYSVC_BLOB Определяет большой двоичный объект службы ключей.
KEYSVC_UNICODE_STRING Определяет строку Юникода службы ключей.
OCSP_BASIC_RESPONSE_ENTRY Содержит текущее состояние сертификата для одного сертификата.
OCSP_BASIC_RESPONSE_INFO Содержит базовый ответ OCSP, указанный RFC 2560.
OCSP_BASIC_REVOKED_INFO Содержит причину отзыва сертификата.
OCSP_BASIC_SIGNED_RESPONSE_INFO Содержит базовый ответ OCSP с сигнатурой.
OCSP_CERT_ID Содержит сведения для идентификации сертификата в запросе или ответе OCSP.
OCSP_REQUEST_ENTRY Содержит сведения об одном сертификате в запросе OCSP.
OCSP_REQUEST_INFO Содержит сведения для запроса OCSP, указанного RFC 2560.
OCSP_RESPONSE_INFO Указывает на успешность или сбой соответствующего запроса OCSP. Для успешных запросов он содержит тип и значение сведений об ответе.
OCSP_SIGNATURE_INFO Содержит подпись для запроса или ответа OCSP.
OCSP_SIGNED_REQUEST_INFO Содержит сведения о запросе OCSP с необязательными сведениями о подписи.
PROV_ENUMALGS Возвращается вызовами CryptGetProvParam или CPGetProvParam.
PROV_ENUMALGS_EX Возвращается вызовами CryptGetProvParam или CPGetProvParam.
PUBLICKEYSTRUC Указывает тип BLOB ключа и алгоритм, который использует ключ.
ROOT_INFO_LUID Содержит локальный уникальный идентификатор (LUID) для сведений о корневом каталоге криптографических смарт-карт.
RSAPUBKEY Содержит сведения, относящиеся к конкретному открытому ключу, содержаемого в ключевом BLOB-объекте.
SCHANNEL_ALG Содержит сведения об алгоритме и размере ключа.
SIGNER_ATTR_AUTHCODE Задает атрибуты для сигнатуры Authenticode .
SIGNER_BLOB_INFO Указывает большой двоичный объект для подписывания.
SIGNER_CERT Указывает сертификат, используемый для подписывания документа. Сертификат может храниться в файле сертификата программного Publisher (SPC) или в хранилище сертификатов.
SIGNER_CERT_STORE_INFO Указывает хранилище сертификатов, используемое для подписывания документа.
SIGNER_CONTEXT Содержит подписанный BLOB-объект.
SIGNER_FILE_INFO Указывает файл для подписывания.
SIGNER_PROVIDER_INFO Указывает CSP и сведения о закрытом ключе, используемые для создания цифровой подписи.
SIGNER_SIGNATURE_INFO Содержит сведения о цифровой подписи.
SIGNER_SPC_CHAIN_INFO Указывает сертификат программного Publisher (SPC) и цепочку сертификатов, используемую для подписывания документа.
SIGNER_SUBJECT_INFO Указывает субъект для подписи.

 

Общие структуры сертификатов

Следующие структуры используются многими функциями сертификата.

Структура Описание
CERT_BIOMETRIC_DATA Содержит сведения о биометрических данных.
CERT_BIOMETRIC_EXT_INFO Содержит набор биометрических данных.
CERT_CONTEXT Содержит как закодированные, так и декодированные представления сертификата.
CERT_CRL_CONTEXT_PAIR Содержит контекст сертификата и связанный контекст списка отзыва сертификатов.
CERT_DH_PARAMETERS Содержит параметры, связанные с алгоритмом открытого ключа Diffie-Hellman .
CERT_DSS_PARAMETERS Содержит параметры, связанные с алгоритмом открытого ключа DSS.
CERT_ECC_SIGNATURE Содержит значения r и s для подписи алгоритма цифровой подписи эллиптических кривых (ECDSA).
CERT_EXTENSION Содержит сведения о расширении для сертификата, списка отзыва сертификатов (CRL) или списка доверия сертификатов (CTL).
CERT_EXTENSIONS Содержит массив расширений.
CERT_GENERAL_SUBTREE Используется в CERT_NAME_CONSTRAINTS_INFO структуре, эта структура предоставляет удостоверение сертификата, который можно включить или исключить.
CERT_HASHED_URL Содержит хэшированные URL-адреса.
CERT_ID Используется в качестве гибкого средства уникальной идентификации сертификата.
CERT_INFO Содержит сведения о сертификате.
CERT_KEY_CONTEXT Содержит данные для элемента pvData элемента ValueCERT_EXTENSION структуры, связанной со свойством CERT_KEY_CONTEXT_PROP_ID.
CERT_KEYGEN_REQUEST_INFO Содержит сведения, хранящиеся в запросе Netscape Keygen.
CERT_LDAP_STORE_OPENED_PARA Используется с функцией CertOpenStore , если поставщик CERT_STORE_PROV_LDAP указан с помощью флага CERT_LDAP_STORE_OPENED_FLAG , чтобы указать существующий сеанс LDAP для выполнения запроса, а также строки запроса LDAP.
CERT_LOGOTYPE_AUDIO Содержит сведения о звуковом логотипе.
CERT_LOGOTYPE_AUDIO_INFO Содержит более подробные сведения о звуковом логотипе.
CERT_LOGOTYPE_DATA Содержит данные логотипа.
CERT_LOGOTYPE_DETAILS Содержит дополнительные сведения о типе логотипа.
CERT_LOGOTYPE_EXT_INFO Содержит набор сведений о логотипе.
CERT_LOGOTYPE_IMAGE Содержит сведения о типе логотипа изображения.
CERT_LOGOTYPE_IMAGE_INFO Содержит более подробные сведения о типе логотипа изображения.
CERT_LOGOTYPE_INFO Содержит сведения о данных логотипа.
CERT_LOGOTYPE_REFERENCE Содержит справочные сведения о логотипе.
CERT_NAME_CONSTRAINTS_INFO Содержит сведения о сертификатах, которые специально разрешены или исключены из доверия.
CERT_NAME_INFO Содержит имена субъектов или издателей. Информация представлена в виде массива CERT_RDN структур.
CERT_NAME_VALUE Содержит относительное значение атрибута RDN.
CERT_OTHER_LOGOTYPE_INFO Содержит сведения о типах логотипов, которые не определены заранее.
CERT_PAIR Содержит сертификат и его пару перекрестных сертификатов.
CERT_PHYSICAL_STORE_INFO Содержит сведения о физических хранилищах сертификатов.
CERT_POLICY_CONSTRAINTS_INFO Содержит установленные политики для принятия сертификатов в качестве доверенных.
CERT_POLICY_MAPPING Содержит сопоставление между доменом издателя и идентификаторами OID политики предметной области.
CERT_POLICY_MAPPINGS_INFO Обеспечивает сопоставление идентификаторов OID политики из двух доменов.
CERT_PUBLIC_KEY_INFO Содержит открытый ключ и его алгоритм.
CERT_QC_STATEMENT Представляет одну инструкцию в последовательности одной или нескольких инструкций для включения в расширение инструкций QC.
CERT_QC_STATEMENTS_EXT_INFO Содержит последовательность из одной или нескольких инструкций, составляющих расширение инструкций QC для QC.
CERT_RDN Содержит относительное различающееся имя (RDN), состоящее из массива CERT_RDN_ATTR структур.
CERT_RDN_ATTR Содержит один атрибут относительного различающегося имени (RDN).
CERT_REQUEST_INFO Содержит сведения о запросе сертификата.
CERT_REVOCATION_CRL_INFO Содержит сведения, обновленные обработчиком типа отзыва списка отзыва сертификатов.
CERT_REVOCATION_PARA Эту структуру при необходимости можно передать в CertVerifyRevocation , чтобы помочь в поиске издателя контекста для проверки.
CERT_REVOCATION_STATUS Содержит сведения о состоянии отзыва сертификата.
CERT_SELECT_STRUCT Содержит условия для выбора сертификатов, представленных в диалоговом окне выбора сертификата. Эта структура используется в функции CertSelectCertificate .
CERT_SIGNED_CONTENT_INFO Содержит закодированное содержимое для подписи и BLOB-объект для хранения подписи.
CERT_STORE_PROV_FIND_INFO Эта структура используется многими функциями обратного вызова поставщика хранилища.
CERT_STORE_PROV_INFO Содержит сведения, возвращаемые установленным CertDllOpenStoreProv при открытии хранилища с помощью CertOpenStore.
CERT_STRONG_SIGN_PARA Содержит параметры, используемые для проверки наличия надежных подписей для сертификатов, списков отзыва сертификатов, отзыва OCSP и сообщений PKCS #7.
CERT_STRONG_SIGN_SERIALIZED_INFO Содержит алгоритм сигнатуры/ и пары длиныалгоритма открытого ключа,/ которые можно использовать для строгого подписывания.
CERT_SUBJECT_INFO_ACCESS Это синоним структуры CERT_AUTHORITY_INFO_ACCESS .
CERT_SYSTEM_STORE_INFO Содержит сведения, используемые функциями, работающими с системными хранилищами.
CERT_SYSTEM_STORE_RELOCATE_PARA Содержит данные, передаваемые в CertOpenStore , если параметр dwFlags этой функции имеет значение CERT_SYSTEM_STORE_RELOCATE_FLAG.
CERT_TEMPLATE_EXT Эта структура является шаблоном сертификата.
CERT_X942_DH_PARAMETERS Содержит параметры, связанные с алгоритмом открытого ключа Diffie-Hellman.
CERT_X942_DH_VALIDATION_PARAMS Эта структура при необходимости указывает на элемент структуры CERT_X942_DH_PARAMETERS и содержит дополнительные сведения о начальном значении.
CMC_ADD_ATTRIBUTES_INFO Содержит атрибуты сертификата, добавляемые в сертификат.
CMC_ADD_EXTENSIONS_INFO Содержит атрибуты элемента управления расширением сертификата, добавляемые в сертификат.
CMC_DATA_INFO Эта структура позволяет взаимодействовать с различными частями помеченной информации.
CMC_PEND_INFO Эта структура является возможным элементом структуры CMC_STATUS_INFO .
CMC_RESPONSE_INFO Эта структура позволяет взаимодействовать с различными частями помеченной информации.
CMC_STATUS_INFO Содержит сведения о состоянии сообщений управления сертификатами по протоколу CMS.
CMC_TAGGED_ATTRIBUTE Эта структура используется в структурах CMC_DATA_INFO и CMC_RESPONSE_INFO .
CMC_TAGGED_CERT_REQUEST Эта структура используется в структуре CMC_TAGGED_REQUEST .
CMC_TAGGED_CONTENT_INFO Эта структура используется в структурах CMC_DATA_INFO и CMC_RESPONSE_INFO .
CMC_TAGGED_OTHER_MSG Эта структура используется в структурах CMC_DATA_INFO и CMC_RESPONSE_INFO .
CMC_TAGGED_REQUEST Эта структура используется в структурах CMC_DATA_INFO для запроса сертификата.
CRL_CONTEXT Содержит как закодированные, так и декодированные представления списка отзыва сертификатов.
CRL_ENTRY Содержит сведения об одном отозванном сертификате. Он является членом структуры CRL_INFO .
CRL_INFO Содержит сведения о списке отзыва сертификатов (CRL).
CRL_ISSUING_DIST_POINT Содержит сведения о типах сертификатов, перечисленных в списке отзыва сертификатов.
CROSS_CERT_DIST_POINTS_INFO Эта структура предоставляет сведения, используемые для обновления динамических кросс-сертификатов.
CTL_ANY_SUBJECT_INFO Содержит объект SubjectAlgorithm для сопоставления в CTL и SubjectIdentifier , которые должны быть сопоставлены в одном из записей CTL в вызовах CertFindSubjectInCTL.
CTL_CONTEXT Содержит как закодированные, так и декодированные представления CTL.
CTL_ENTRY Эта структура является элементом списка доверия сертификатов (CTL).
CTL_FIND_SUBJECT_PARA Содержит данные , используемые CertFindCTLInStore с dwFindType CTL_FIND_SUBJECT для поиска списка доверия сертификатов (CTL).
CTL_FIND_USAGE_PARA Эта структура является членом структуры CTL_FIND_SUBJECT_PARA и используется CertFindCTLInStore.
CTL_INFO Содержит сведения, хранящиеся в списке доверия сертификатов (CTL).
CTL_MODIFY_REQUEST Содержит запрос на изменение списка доверия сертификатов. Эта структура используется в функции CertModifyCertificatesToTrust .
CTL_USAGE Содержит массив идентификаторов объектов (OID) для расширений списка доверия сертификатов (CTL).
CTL_VERIFY_USAGE_PARA Содержит параметры , используемые CertVerifyCTLUsage для установления допустимости использования CTL.
CTL_VERIFY_USAGE_STATUS Содержит сведения о списке доверия сертификатов (CTL), возвращаемом CertVerifyCTLUsage.

 

Структуры расширений сертификатов X.509

Следующие структуры связаны со структурами X.509 CERT_EXTENSION .

Структура Описание
CERT_ACCESS_DESCRIPTION Эта структура является членом CERT_AUTHORITY_INFO_ACCESS структуры.
CERT_ALT_NAME_ENTRY Содержит альтернативное имя в одной из различных форм имен.
CERT_ALT_NAME_INFO Используется в кодировке и декодировании расширений для сертификатов субъекта или издателя, списка отзыва сертификатов (CCL) и списка доверия сертификатов (CCL).
CERT_AUTHORITY_INFO_ACCESS Представляет доступ к информации центра и расширения доступа к сведениям субъекта и указывает, как получить доступ к дополнительным сведениям и службам для субъекта или издателя этого сертификата.
CERT_AUTHORITY_KEY_ID_INFO Идентифицирует ключ, используемый для подписи сертификата или списка отзыва сертификатов.
CERT_AUTHORITY_KEY_ID2_INFO Идентифицирует ключ, используемый для подписи сертификата или списка отзыва сертификатов. Он отличается от структуры CERT_AUTHORITY_KEY_ID_INFO в том, что издатель сертификата является CERT_ALT_NAME_INFO вместо CERT_NAME_BLOB.
CERT_BASIC_CONSTRAINTS_INFO Содержит сведения о том, может ли сертифицированный субъект выступать в качестве ЦС, конечной сущности или обоих.
CERT_BASIC_CONSTRAINTS2_INFO Содержит сведения, указывающие, может ли сертифицированный субъект выступать в качестве ЦС или конечной сущности.
CERT_KEY_ATTRIBUTES_INFO Содержит необязательные дополнительные сведения о сертифицированных открытых ключах.
CERT_KEY_USAGE_RESTRICTION_INFO Содержит ограничения, накладываемые на использование открытого ключа сертификата.
CERT_POLICIES_INFO Содержит массив CERT_POLICY_INFO.
CERT_POLICY_ID Содержит список политик сертификатов, которые сертификат явно поддерживает, а также дополнительные сведения о квалификатора, относящиеся к этим политикам.
CERT_POLICY_INFO Содержит идентификатор объекта (OID), указывающий политику и необязательный массив квалификаторов политики.
CERT_POLICY_QUALIFIER_INFO Содержит идентификатор объекта (OID), указывающий квалификатор и дополнительные сведения, относящиеся квалификатору.
CERT_PRIVATE_KEY_VALIDITY Указывает допустимый промежуток времени для закрытого ключа, соответствующего открытому ключу сертификата.
CRL_DIST_POINT Определяет одну точку распространения списка отзыва сертификатов, на которую может ссылаться пользователь сертификата, чтобы определить, были ли отозваны сертификаты.
CRL_DIST_POINT_NAME Определяет расположение, из которого можно получить список отзыва сертификатов.
CRL_DIST_POINTS_INFO Содержит список точек распространения списка отзыва сертификатов, на которые может ссылаться пользователь сертификата, чтобы определить, был ли отозван сертификат.

 

Эти структуры можно закодировать в элемент Valueструктуры CERT_EXTENSION с помощью функций CryptEncodeObject и CryptEncodeObjectEx . Они создаются и возвращаются функциями CryptDecodeObject и CryptDecodeObjectEx при декодировании элемента Value структуры CERT_EXTENSION .

Структура, закодированная или созданная, зависит от элемента строки pszObjId структуры CERT_EXTENSION .

Текущие предопределенные константы расширения и идентификаторы OID вместе со структурой, связанной с каждой из них, показаны в следующей таблице.

Примечание

Предопределенная константа (столбец 1) и соответствующий OID (столбец 2) могут использоваться взаимозаменяемо.

 

Предопределенная константа Идентификатор объекта (OID) Структура данных
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS CERT_AUTHORITY_INFO_ACCESS
X509_AUTHORITY_KEY_ID szOID_AUTHORITY_KEY_IDENTIFIER CERT_AUTHORITY_KEY_ID_INFO
X509_ALTERNATE_NAME szOID_SUBJECT_ALT_NAME — или —
szOID_ISSUER_ALT_NAME
CERT_ALT_NAME_INFO
X509_BASIC_CONSTRAINTS szOID_BASIC_CONSTRAINTS CERT_BASIC_CONSTRAINTS_INFO
X509_BASIC_CONSTRAINTS2 szOID_BASIC_CONSTRAINTS2 CERT_BASIC_CONSTRAINTS2_INFO
X509_CERT_POLICIES szOID_CERT_POLICIES CERT_POLICIES_INFO
X509_KEY_ATTRIBUTES szOID_KEY_ATTRIBUTES CERT_KEY_ATTRIBUTES_INFO
X509_KEY_USAGE szOID_KEY_USAGE CRYPT_BIT_BLOB
X509_KEY_USAGE_RESTRICTION szOID_KEY_USAGE_RESTRICTION CERT_KEY_USAGE_RESTRICTION_INFO
None szOID_POLICY_MAPPINGS Не реализовано
None szOID_SUBJECT_DIR_ATTRS Не реализовано

 

Структуры сообщений

Следующие структуры используются функциями криптографических сообщений.

Структура Описание
CMSG_CMS_RECIPIENT_INFO Эта структура используется с функцией CryptMsgGetParam для получения сведений о транспорте ключа, соглашении о ключе или получателе конвертного сообщения списка почты.
CMSG_CMS_SIGNER_INFO Эта структура содержит содержимое определенного SignerInfo в подписанных или подписанных и конвертированных сообщениях.
CMSG_CNG_CONTENT_DECRYPT_INFO Содержит все соответствующие сведения, передаваемые между CryptMsgControl и устанавливаемыми функциями OID для импорта и расшифровки API шифрования: ключ шифрования содержимого следующего поколения (CNG).
CMSG_CONTENT_ENCRYPT_INFO Содержит сведения, передаваемые между устанавливаемыми функциями PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY, PFN_CMSG_EXPORT_KEY_TRANS, PFN_CMSG_EXPORT_KEY_AGREE и PFN_CMSG_EXPORT_MAIL_LISTobject identifier (OID), используемыми для шифрования и экспорта ключа шифрования содержимого.
CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA Эта структура используется для добавления атрибута без проверки подлинности в подписыватель подписанного сообщения.
CMSG_CTRL_DECRYPT_PARA Эта структура содержит сведения, используемые для расшифровки конвертированного сообщения для получателя транспорта ключей. Эта структура передается в CryptMsgControl , если параметр dwCtrlType CMSG_CTRL_DECRYPT.
CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA Эта структура используется для удаления неавтономного атрибута подписывшего сообщения.
CMSG_CTRL_KEY_AGREE_DECRYPT_PARA Эта структура содержит сведения о получателе ключевого соглашения.
CMSG_CTRL_KEY_TRANS_DECRYPT_PARA Эта структура содержит сведения о получателе сообщения о транспорте ключа.
CMSG_CTRL_MAIL_LIST_DECRYPT_PARA Эта структура содержит сведения о получателе сообщения списка почты.
CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA Эта структура содержит сведения, используемые для проверки подписи сообщения. Он содержит индекс подписывания и открытый ключ подписи. Открытый ключ подписывающего может быть CERT_PUBLIC_KEY_INFO структурой, контекстом сертификата или контекстом цепочки.
CMSG_ENVELOPED_ENCODE_INFO Эта структура содержит сведения, необходимые для кодирования конвертированного сообщения. Он передается в CryptMsgOpenToEncode , если dwMsgType является CMSG_ENVELOPED.
CMSG_ENVELOPED_HASHED_INFO Эта структура используется с хэшированных сообщений. Он передается в CryptMsgOpenToEncode , если dwMsgType является CMSG_ENVELOPED.
CMSG_KEY_AGREE_ENCRYPT_INFO Содержит сведения о шифровании, применимые ко всем получателям соглашения о ключе конвертированного сообщения.
CMSG_KEY_AGREE_KEY_ENCRYPT_INFO Содержит зашифрованный ключ для получателя соглашения ключа конвертированного сообщения.
CMSG_KEY_TRANS_ENCRYPT_INFO Содержит сведения о шифровании для получателя передачи ключей конвертированных данных.
CMSG_MAIL_LIST_ENCRYPT_INFO Содержит сведения о шифровании для получателя списка рассылки конвертированных данных.
CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO Эта структура содержит сведения о получателе сообщения с помощью управления ключами соглашения ключей.
CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO Эта структура содержит закодированные сведения о транспорте ключа для получателя сообщения.
CMSG_KEY_TRANS_RECIPIENT_INFO Эта структура содержит сведения, используемые в ключевых транспортных алгоритмах.
CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO Эта структура используется с ранее распределенными симметричными ключами для расшифровки ключа шифрования ключей содержимого (KEK).
CMSG_MAIL_LIST_RECIPIENT_INFO Эта структура содержит сведения, используемые для ранее распределенных ключей шифрования симметричного ключа (KEK).
CMSG_RC2_AUX_INFO Эта структура содержит битовую длину ключа для алгоритмов шифрования RC2. Элемент pvEncryptionAuxInfo в CMSG_ENVELOPED_ENCODE_INFO может указывать на экземпляр этой структуры.
CMSG_RC4_AUX_INFO Эта структура содержит битовую длину ключа для алгоритмов шифрования RC4. Элемент pvEncryptionAuxInfo в CMSG_ENVELOPED_ENCODE_INFO может указывать на экземпляр этой структуры.
CMSG_RECIPIENT_ENCODE_INFO Эта структура содержит сведения о типе управления ключом шифрования содержимого получателя сообщения.
CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO Эта структура содержит сведения о приемнике сообщений, используемом для расшифровки ключа сеанса, необходимого для расшифровки содержимого сообщения. Эта структура используется с сообщениями низкого уровня CMS с помощью любого из методов управления ключами.
CMSG_RECIPIENT_ENCRYPTED_KEY_INFO Эта структура содержит сведения, используемые для получателя отдельного ключевого соглашения.
CMSG_SIGNED_ENCODE_INFO Эта структура содержит сведения, передаваемые в CryptMsgOpenToEncode , если dwMsgType является CMSG_SIGNED.
CMSG_SIGNER_ENCODE_INFO Эта структура содержит сведения о подписывшем. Он передается в CryptMsgCountersign, CryptMsgCountersignEncoded и при необходимости в CryptMsgOpenToEncode в качестве члена структуры CMSG_SIGNED_ENCODE_INFO , если параметр dwMsgType CMSG_SIGNED.
CMSG_SIGNER_INFO Эта структура содержит содержимое определяемого PKCS #7 SignerInfo в подписанных сообщениях.
CMSG_SP3_COMPATIBLE_AUX_INFO Эта структура содержит сведения, необходимые для шифрования, совместимого с пакетом обновления 3 (SP3).
CMSG_STREAM_INFO Эта структура используется для обработки потоковых данных, а не для обработки одного блока. Потоковая обработка чаще всего используется при обработке больших сообщений. Сообщения потоковой обработки могут исходить из любого сериализованного источника, например файла на жестком диске, сервере или компакт-диске.
CRYPT_DECRYPT_MESSAGE_PARA Содержит сведения о расшифровке сообщений.
CRYPT_ENCRYPT_MESSAGE_PARA Содержит сведения, используемые для шифрования сообщений.
CRYPT_HASH_MESSAGE_PARA Содержит данные для хэширования сообщений.
CRYPT_SIGN_MESSAGE_PARA Содержит сведения для подписывания сообщений с использованием указанного контекста сертификата подписи.
CRYPT_VERIFY_MESSAGE_PARA Содержит сведения, необходимые для проверки подписанного сообщения.

 

Структуры поддержки OID

Следующие структуры используются функциями поддержки OID.

Структура Описание
CRYPT_OID_FUNC_ENTRY Содержит идентификатор объекта (OID) и указатель на связанную функцию. Он используется с CryptInstallOIDFunctionAddress
CRYPT_OID_INFO Содержит сведения об идентификаторе объекта (OID).
CRYPT_RC2_CBC_PARAMETERS Содержит сведения, используемые при шифровании szOID_RSA_RC2CBC.
CRYPT_SMIME_CAPABILITIES Содержит приоритетный массив поддерживаемых возможностей.
CRYPT_SMIME_CAPABILITY Указывает одну возможность и связанные с ней параметры.

 

Структуры цепочки сертификатов

Следующие структуры используются в создании цепочек сертификатов, используемых для установления доверия к сертификату.

Структура Описание
AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA Содержит сведения о политике, используемые при проверке цепочек сертификатов для файлов.
AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS Содержит дополнительные сведения о политике Authenticode для проверки цепочки файлов.
AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA Содержит сведения о политике меток времени, которые можно использовать при проверке цепочки сертификатов файлов.
CERT_CHAIN_CONTEXT Содержит массив простых цепочек сертификатов и структуру состояния доверия, которая указывает сводные данные о действительности для всех подключенных простых цепочек.
CERT_CHAIN_ELEMENT Эта структура является одним элементом в простой цепочке сертификатов.
CERT_CHAIN_ENGINE_CONFIG Задает параметры для создания подсистемы цепочки сертификатов, отличной отdefault.
CERT_CHAIN_FIND_BY_ISSUER_PARA Содержит сведения, используемые в CertFindChainStore для создания цепочек сертификатов.
CERT_CHAIN_PARA Устанавливает критерии поиска и соответствия, которые будут использоваться при создании цепочки сертификатов.
CERT_CHAIN_POLICY_PARA Содержит сведения, используемые в CertVerifyCertificateChainPolicy для установления критериев политики для проверки цепочек сертификатов.
CERT_CHAIN_POLICY_STATUS Содержит сведения о состоянии цепочки сертификатов, возвращаемые CertVerifyCertificateChainPolicy из проверки цепочек сертификатов.
CERT_REVOCATION_INFO Указывает состояние отзыва сертификата в CERT_CHAIN_ELEMENT.
CERT_SELECT_CHAIN_PARA Содержит параметры, используемые для создания и выбора цепочек.
CERT_SIMPLE_CHAIN Содержит массив элементов цепочки и сводное состояние доверия для цепочки, которую представляет массив.
CERT_SELECTUI_INPUT Используется функцией CertSelectionGetSerializedBlob для сериализации сертификатов, содержащихся в хранилище или массиве цепочек сертификатов. Возвращаемый сериализованный BLOB-объект можно передать в функцию CredUIPromptForWindowsCredentials .
CERT_TRUST_LIST_INFO Указывает допустимое использование CTL.
CERT_TRUST_STATUS Содержит сведения о доверии о сертификате в цепочке сертификатов, сводную информацию о доверии о простой цепочке сертификатов или сводную информацию о массиве простых цепочек.
CERT_USAGE_MATCH Предоставляет параметры для поиска сертификатов издателя, используемых для создания цепочки сертификатов.
CTL_USAGE_MATCH Предоставляет параметры для поиска списков доверия сертификатов (CTL), используемых для создания цепочки сертификатов.
SSL_EXTRA_CERT_CHAIN_POLICY_PARA Содержит сведения о политике, используемые при проверке цепочек сертификатов клиента или сервера SSL.

 

Структуры CSP

Следующие структуры используются с функциями поставщика служб шифрования (CSP).

Структура Описание
BLOBHEADER Указывает тип BLOB ключа и алгоритм, который использует ключ.
VTableProvStruc Содержит указатели на функции обратного вызова, которые могут использоваться функциями CSP.
PLAINTEXTKEYBLOB Содержит сведения о заголовке параметра для ключа открытого текста.

 

Структуры WinTrust

Следующие структуры используются с функцией WinVerifyTrust .

Структура Описание
CRYPT_PROVIDER_DEFUSAGE Используется функцией WintrustGetDefaultForUsage для получения сведений о обратном вызове для использования поставщика по умолчанию.
CRYPT_PROVIDER_REGDEFUSAGE Используется функцией WintrustAddDefaultForUsage для регистрации сведений о обратном вызове использования поставщика по умолчанию.
SPC_INDIRECT_DATA_CONTENT Сохраняет дайджест и другие атрибуты файла с подписью Authenticode.
WINTRUST_BLOB_INFO Используется при вызове WinVerifyTrust для проверки большого двоичного объекта памяти.
WINTRUST_CATALOG_INFO Используется при вызове WinVerifyTrust для проверки члена каталога Майкрософт.
WINTRUST_CERT_INFO Используется при вызове WinVerifyTrust для проверки CERT_CONTEXT.
WINTRUST_DATA Используется при вызове WinVerifyTrust для передачи необходимых сведений поставщикам доверия
WINTRUST_FILE_INFO Используется при вызове WinVerifyTrust для проверки отдельного файла.
WINTRUST_SGNR_INFO Используется при вызове WinVerifyTrust для проверки структуры CMSG_SIGNER_INFO .

 

Структуры SIP

Следующие структуры используются пакетом интерфейса субъекта (функциями SIPP).

Структура Описание
SIP_ADD_NEWPROVIDER Определяет SIP.
SIP_CAP_SET Определяет возможности SIP.
SIP_DISPATCH_INFO Содержит набор указателей на функции SIP.
SIP_INDIRECT_DATA Содержит дайджест хэшированных данных субъекта.
SIP_SUBJECTINFO Указывает сведения о субъекте SIP.