Константы для CryptEncodeObject и CryptDecodeObject
Функции CryptEncodeObject, CryptEncodeObjectEx, CryptSignAndEncodeCertificate, CryptDecodeObject и CryptDecodeObjectEx — это обобщенные функции кодирования и декодирования, способные кодировать и декодировать сертификаты в кодировке ASN.1 , списки отзыва сертификатов , списки доверия сертификатов (CTLs) и запросы сертификатов.
В следующей таблице перечислены предопределенные константы, расширения и атрибуты, используемые с операциями кодирования и декодирования, а также структура данных, на которую указывает параметр pvStructInfo .
Примечание
Некоторые предопределенные константы и строки OID имеют одинаковое значение. При этом любой из них можно использовать в качестве параметра lpszStuctType .
Констант/значение | Описание |
---|---|
|
Параметр pvStructInfo является указателем на структуру CMC_ADD_ATTRIBUTES_INFO . |
|
Параметр pvStructInfo является указателем на структуру CMC_ADD_EXTENSIONS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CRYPT_ALGORITHM_IDENTIFIER . |
|
Параметр pvStructInfo является указателем на структуру CERT_ALT_NAME_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_VALUE . |
|
Параметр pvStructInfo является указателем на CERT_POLICY_QUALIFIER_INFO структуру. |
|
Параметр pvStructInfo является указателем на структуру CERT_POLICY_CONSTRAINTS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_POLICY_MAPPINGS_INFO . |
|
Параметр pvStructInfo является указателем на CRYPT_ATTRIBUTE структуру. |
|
Параметр pvStructInfo является указателем на CERT_AUTHORITY_INFO_ACCESS структуру. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на CERT_AUTHORITY_INFO_ACCESS структуру. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на CERT_AUTHORITY_INFO_ACCESS структуру. |
|
Параметр pvStructInfo является указателем на CERT_AUTHORITY_INFO_ACCESS структуру. |
|
Параметр pvStructInfo является указателем на структуру CERT_AUTHORITY_KEY_ID_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_AUTHORITY_KEY_ID2_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_AUTHORITY_KEY_ID_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_AUTHORITY_KEY_ID2_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_BASIC_CONSTRAINTS_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_BASIC_CONSTRAINTS_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на CERT_BASIC_CONSTRAINTS2_INFO структуру. |
|
Параметр pvStructInfo является указателем на CERT_BASIC_CONSTRAINTS2_INFO структуру. |
|
Параметр pvStructInfo является указателем на структуру CERT_BIOMETRIC_EXT_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CERT_BIOMETRIC_EXT_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_BIT_BLOB . |
|
Параметр pvStructInfo является указателем на структуру CERT_SIGNED_CONTENT_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRL_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_EXTENSIONS . |
|
Параметр pvStructInfo является указателем на структуру CERT_PAIR . |
|
Параметр pvStructInfo является указателем на CERT_POLICIES_INFO структуру. |
|
Параметр pvStructInfo является указателем на CERT_POLICIES_INFO структуру. |
|
Параметр pvStructInfo является указателем на структуру CERT_REQUEST_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_TEMPLATE_EXT . |
|
Параметр pvStructInfo является указателем на структуру CERT_TEMPLATE_EXT . |
|
Параметр pvStructInfo является указателем на переменную FILETIME . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRYPT_CONTENT_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRL_DIST_POINTS_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRL_DIST_POINTS_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на переменную int . |
|
Параметр pvStructInfo является указателем на целое число, содержащее перечисленное значение. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на целое число, содержащее перечисленное значение. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на переменную int . |
|
Параметр pvStructInfo является указателем на структуру CROSS_CERT_DIST_POINTS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CROSS_CERT_DIST_POINTS_INFO . |
|
Параметр pvStructInfo является указателем на структуру blob-объектов открытого ключа Diffie-Hellman версии 3 или DSS версии 3 . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CTL_INFO . |
|
Параметр pvStructInfo является указателем на структуру CMC_DATA_INFO . |
|
Параметр pvStructInfo является указателем на переменную int . |
|
Параметр pvStructInfo является указателем на структуру CERT_DSS_PARAMETERS . |
|
Параметр pvStructInfo является указателем на структуру CRYPT_UINT_BLOB . |
|
Параметр pvStructInfo является указателем на массив размером 40 байт. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на LPSTR представления точки идентификатора объекта. |
|
Параметр pvStructInfo является указателем на CERT_ECC_SIGNATURE структуру. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRYPT_ECC_PRIVATE_KEY_INFO. Windows Server 2003, Windows XP, Windows 2000 и Windows Vista: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_ALGORITHM_IDENTIFIER . |
|
Параметр pvStructInfo является указателем на структуру CERT_ENHKEY_USAGE или CTL_USAGE . (Эти структуры одинаковы, но известны под разными именами.) |
|
Параметр pvStructInfo является указателем на структуру CERT_ENHKEY_USAGE или CTL_USAGE . (Эти структуры одинаковы, но известны под разными именами.) |
|
Параметр pvStructInfo является указателем на структуру CRYPT_ENROLLMENT_NAME_VALUE_PAIR . |
|
Параметр pvStructInfo является указателем на целое число, содержащее перечисленное значение. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_EXTENSIONS . |
|
Параметр pvStructInfo является указателем на структуру CRL_DIST_POINTS_INFO . |
|
Параметр pvStructInfo является указателем на целое число со знаком, равное 32 битам или меньше. |
|
Параметр pvStructInfo является указателем на структуру CERT_ALT_NAME_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_ALT_NAME_INFO . |
|
Параметр pvStructInfo является указателем на структуру CRL_ISSUING_DIST_POINT . |
|
Параметр pvStructInfo является указателем на структуру CRL_ISSUING_DIST_POINT . |
|
Параметр pvStructInfo является указателем на структуру CERT_KEY_ATTRIBUTES_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_KEY_ATTRIBUTES_INFO . |
|
Параметр pvStructInfo является указателем на структуру CRYPT_BIT_BLOB . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRYPT_BIT_BLOB . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на CERT_KEY_USAGE_RESTRICTION_INFO структуру. |
|
Параметр pvStructInfo является указателем на CERT_KEY_USAGE_RESTRICTION_INFO структуру. |
|
Параметр pvStructInfo является указателем на структуру CERT_KEYGEN_REQUEST_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_LOGOTYPE_EXT_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_LOGOTYPE_EXT_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_INTEGER_BLOB .
Большой двоичный объект находится в порядке с минимальным порядком байтов. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_UINT_BLOB . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_CONSTRAINTS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_CONSTRAINTS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_VALUE . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_ALT_NAME_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на LPSTR представления точки идентификатора объекта. Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_DATA_BLOB . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_DSS_PARAMETERS . |
|
Параметр pvStructInfo является указателем на структуру CERT_POLICY_CONSTRAINTS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_POLICY_CONSTRAINTS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_POLICY_MAPPINGS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_POLICY_MAPPINGS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_PUBLIC_KEY_INFO . |
|
Параметр pvStructInfo является указателем на структуру CRYPT_RC2_CBC_PARAMETERS . |
|
Параметр pvStructInfo является указателем на структуру CMC_RESPONSE_INFO . |
|
Параметр pvStructInfo является указателем на BCRYPT_RSAKEY_BLOB сразу же за которым следуют экспонента и байты модуля. Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на частную структуру BCRYPT_RSAKEY_BLOB . Windows Server 2003, Windows XP, Windows 2000 и Windows Vista: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на переменную FILETIME . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRYPT_SMIME_CAPABILITIES . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRYPT_RSA_SSA_PSS_PARAMETERS . Дополнительные сведения см. в разделе "Заметки". Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_RSA_SSA_PSS_PARAMETERS . Дополнительные сведения см. в разделе "Заметки". Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_RSAES_OAEP_PARAMETERS . Дополнительные сведения см. в разделе "Заметки". Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_ECC_CMS_SHARED_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_RSAES_OAEP_PARAMETERS . Дополнительные сведения см. в разделе "Заметки". Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_SEQUENCE_OF_ANY . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CMSG_SIGNER_INFO . |
|
Параметр pvStructInfo является указателем на структуру CMSG_CMS_SIGNER_INFO . |
|
Параметр pvStructInfo является указателем на структуру CRYPT_SMIME_CAPABILITIES . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CMC_STATUS_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_ALT_NAME_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_ALT_NAME_INFO . |
|
Параметр pvStructInfo является указателем на структуру CRYPT_DATA_BLOB . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CRYPT_TIME_STAMP_REQUEST_INFO . |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_VALUE . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_INFO . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на структуру CERT_NAME_VALUE . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на переменную FILETIME . Дополнительные сведения см. в разделе "Заметки". |
|
Параметр pvStructInfo является указателем на переменную OCSP_SIGNED_REQUEST_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на переменную OCSP_REQUEST_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на переменную OCSP_RESPONSE_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на переменную OCSP_BASIC_SIGNED_RESPONSE_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на переменную OCSP_BASIC_RESPONSE_INFO . Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр pvStructInfo является указателем на большой двоичный объект закрытого ключа RSA. Дополнительные сведения см. в разделах Большие двоичные объекты с закрытым ключом Diffie-Hellman версии 3 и BLOB-объекты закрытого ключа DSS версии 3. |
|
Параметр pvStructInfo является указателем на структуру CRYPT_PRIVATE_KEY_INFO . |
|
Параметр pvStructInfo является указателем на структуру CRYPT_ENCRYPTED_PRIVATE_KEY_INFO . |
Комментарии
В следующей таблице приведены дополнительные сведения о конкретных значениях lpszStructType .
Значение | Описание |
---|---|
X509_ALTERNATE_NAMEszOID_ISSUER_ALT_NAME szOID_SUBJECT_ALT_NAME |
Перед кодировкой варианты имен LPWSTR преобразуются в строки IA5. Если строка содержит недопустимую строку IA5, метод GetLastError возвращает CRYPT_E_INVALID_IA5_STRING, а *pcbEncoded обновляется с учетом недопустимого расположения недопустимого символа. Индексы расположения ошибок возвращаются в *pcbEncoded следующим образом: Бит 0 является наименее значимым битом DWORD. VALUE_INDEX ошибки находится в битах от 0 до 15. Это индекс символов Юникода. ENTRY_INDEX ошибки находится в битах от 16 до 23. Макросы GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) и GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) определяются для упрощения чтения битовых полей для VALUE_INDEX и ENTRY_INDEX из DWORD , содержащего их: SzOID_SUBJECT_ALT_NAME заменена szOID_SUBJECT_ALT_NAME2. Новые серверы сертификатов реализуют последнее. |
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_KEY_IDENTIFIER2 X509_AUTHORITY_KEY_ID2 |
Если функция кодирования возвращает CRYPT_E_INVALID_IA5_STRING как GetLastError, расположение ошибки, возвращаемое в *pcbEncoded , состоит из следующих значений: ENTRY_INDEX – 8 бит << 16 VALUE_INDEX — 16 бит (индекс символов Юникода) Индексы расположения ошибок возвращаются в *pcbEncoded следующим образом: Бит 0 является наименее значимым битом DWORD. VALUE_INDEX ошибки находится в битах от 0 до 15. Это индекс символов Юникода. ENTRY_INDEX ошибки находится в битах от 16 до 23. Макросы GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) и GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) определяются для упрощения чтения битовых полей для VALUE_INDEX и ENTRY_INDEX из содержащего их DWORD . |
X509_AUTHORITY_KEY_IDszOID_AUTHORITY_KEY_IDENTIFIER |
X509_AUTHORITY_KEY_ID заменена X509_AUTHORITY_KEY_ID2. Новые серверы сертификатов реализуют последнее. |
X509_BASIC_CONSTRAINTSszOID_BASIC_CONSTRAINTS |
X509_BASIC_CONSTRAINTS заменена X509_BASIC_CONSTRAINTS2. Новые серверы сертификатов реализуют последнее. |
X509_CERT | Структура CERT_SIGNED_CONTENT_INFO содержит закодированное содержимое для подписи, его подпись и алгоритм подписи. Элемент ToBeSigned — это закодированный CERT_INFO, CRL_INFO, CERT_REQUEST_INFO или CERT_KEYGEN_REQUEST_INFO выходные данные из предыдущего вызова CryptEncodeObject для одного из следующих значений lpszStructType :
|
szOID_CERT_EXTENSIONS | Может использоваться для одного из типов атрибутов в запросе сертификата. |
X509_CHOICE_OF_TIME | Для X509_ASN_ENCODING, если время после 1950 года и до 2050 года, это время в формате UTC, закодированное с помощью двухзначного года. В противном случае это обобщенное время, закодированное с помощью четырехзначного года. Дата точно соответствует секундам. |
PKCS_CONTENT_INFO | Для X509_ASN_ENCODING закодирована как структура ContentInfo PKCS #7. CRYPT_DER_BLOB указывает на уже закодированное содержимое ANY. |
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY | Для X509_ASN_ENCODING закодирована как структура ContentInfo PKCS #7, упаковающая последовательность ANY. Значение элемента contentType — pszObjId, а поле содержимого имеет следующую структуру: SequenceOfAny ::= SEQUENCE OF ANY CRYPT_DER_BLOB указывает на уже закодированное содержимое ANY. |
X509_CRL_DIST_POINTSszOID_CRL_DIST_POINTS |
Если функция кодирования завершается сбоем с getLastError , возвращающим CRYPT_E_INVALID_IA5_STRING, *pcbEncoded обновляется с ошибкой, указывая недопустимое расположение символа: CRL_ISSUER_BIT – 1 бит << 31 (0 для FullName, 1 для CRLIssuer). POINT_INDEX — 7 бит< < 24 ENTRY_INDEX — 8 бит< < 16 VALUE_INDEX — 16 бит (индекс символов Юникода) Индексы расположения ошибок возвращаются в *pcbEncoded следующим образом: Бит 0 является наименее значимым битом DWORD. VALUE_INDEX ошибки находится в битах от 0 до 15. Это символьный индекс Юникода. ENTRY_INDEX ошибки находится в битах от 16 до 23. Макросы GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) и GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X) определяются для упрощения чтения битовых полей для VALUE_INDEX и ENTRY_INDEX из содержащего их DWORD . |
szOID_CRL_NUMBER | Используется только со списками отзыва базовых сертификатов (CRL). Это монотонно увеличивающееся порядковое число для каждого списка отзыва сертификатов, выдаваемых центром сертификации. |
X509_CRL_REASON_CODEszOID_CRL_REASON_CODE X509_ENUMERATED |
Для целого числа можно задать одно из перечисленных ниже значений.
|
szOID_CRL_VIRTUAL_BASE | Используется только с разностными списками отзыва сертификатов. Он содержит базовый номер списка отзыва сертификатов соответствующего базового списка отзыва сертификатов. |
X509_CROSS_CERT_DIST_POINTSszOID_CROSS_CERT_DIST_POINTS |
Для CRYPT_E_INVALID_IA5_STRING расположение ошибки возвращается в *pcbEncoded by CryptEncodeObject(X509_CRL_DIST_POINTS) — расположение ошибки:
|
RSA_CSP_PUBLICKEYBLOB | Функция CryptExportKey выводит указанное выше значение pvStructInfo для dwBlobType publicKEYBLOBB. Функция CryptImportKey ожидает указанное выше значение pvStructInfo при импорте открытого ключа. Если параметр dwCertEncodingType имеет X509_ASN_ENCODING, RSA_CSP_PUBLICKEYBLOB кодируется как PKCS #1 RSAPublicKey, состоящий из последовательности модулей INTEGER и publicExponent INTEGER. Модуль кодируется как целое число без знака. Для функций декодирования pvStructInfo указывает на большой двоичный объект с открытым ключом , за которым следует RSAPUBKEY и байты модуля. (Сведения о BLOB-объектах с открытым ключом см. в разделе CRYPT_INTEGER_BLOB.) CryptExportKey выводит значение pvStructInfo для dwBlobType publicKEYBLOBB. Функция CryptImportKey ожидает значение pvStructInfo при импорте открытого ключа. Если параметр dwCertEncodingType имеет X509_ASN_ENCODING, RSA_CSP_PUBLICKEYBLOB кодируется как PKCS #1 RSAPublicKey, состоящий из последовательности модулей INTEGER и publicExponent INTEGER. При декодировании, если модуль был закодирован как целое число без знака с 0 байтами в начале, 0-байт удаляется перед преобразованием в байты модуля CSP. Поскольку структура PKCS ) всегда имеет значение CALG_RSA_KEYX. |
szOID_DELTA_CRL_INDICATOR | Используется только с разностными списками отзыва сертификатов. Он помечен как критический и содержит минимальный базовый номер списка отзыва сертификатов, который можно использовать с разностным списком отзыва сертификатов. |
X509_DSS_SIGNATURE | Байты упорядочены в качестве выходных данных по CryptSignHash DSS CSP, где менее 20 байтов — это значение R, а более 20 байт — значение S. Значения R и S обрабатываются как целые числа без знака и кодируются как последовательность из них. |
X509_ECC_SIGNATURE | Использует ту же функцию кодирования и декодирования, что и X509_DH_PARAMETERS. Структура CERT_ECC_SIGNATURE идентична структуре CERT_DH_PARAMETERS , за исключением имен полей. |
X509_ENUMERATED | Используется при кодировании любого произвольного перечисления, например X509_CRL_REASON_CODE. |
szOID_FRESHEST_CRL | Используется только с базовыми списками отзыва сертификатов. Этот формат идентичен расширению CDP, вмещущему URL-адреса для получения разностного списка отзыва сертификатов. |
X509_ISSUING_DIST_POINTszOID_ISSUING_DIST_POINT |
Для CRYPT_E_INVALID_IA5_STRING расположение ошибки возвращается в *pcbEncoded by CryptEncodeObject(X509_ISSUING_DIST_POINT) — расположение ошибки:
|
X509_KEY_USAGEszOID_KEY_USAGE |
Используются определения битов, используемые для элемента IntendedKeyUsage структуры CERT_KEY_ATTRIBUTES_INFO . |
X509_KEYGEN_REQUEST_TO_BE_SIGNED | Для функций декодирования элемент pbEncoded является выходными данными одной из функций кодирования с помощью X509_CERT lpszStructType. Эти выходные данные включают данные для подписи, а также их сигнатуру. Для функций кодирования элемент pbEncoded является только данными для подписи. |
X509_MULTI_BYTE_UINT | Перед кодировкой вставляется начальная 0x00. После декодирования ведущий 0x00 удаляется. |
X509_NAME | Используется для декодирования и кодирования элементов Issuer и Subject в CERT_INFO структуре. |
X509_NAME_CONSTRAINTSszOID_NAME_CONSTRAINTS |
Для CRYPT_E_INVALID_IA5_STRING расположение ошибки возвращается в *pcbEncoded by CryptEncodeObject(X509_NAME_CONSTRAINTS) — расположение ошибки:
|
X509_UNICODE_ANY_STRING X509_UNICODE_NAME_VALUE |
Для функций кодирования элемент pbData структуры указывает на строку Юникода. Если элемент cbData равен нулю, строка Юникода имеет завершающий символ NULL ; в противном случае cbData — это число байтов строки Юникода. Число байтов в два раза превышает число символов. Если строка Юникода содержит символ, недопустимый для указанного dwValueType, *pcbEncoded обновляется индексом символов Юникода первого символа, который является недопустимым.
GetLastError возвращает: CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING Строка Юникода преобразуется перед кодированием в соответствии с указанным dwValueType. Если параметр dwValueType имеет значение 0, GetLastError возвращает E_INVALIDARG. Если dwValueType не указывает на символьную строку, CryptEncodeObject возвращает значение FALSE , а GetLastError возвращает CRYPT_E_NOT_CHAR_STRING. Для функций декодирования член pbData указывает на строку Юникода, завершающуюся null, а член cbData содержит число байтов строки Юникода, за исключением завершающего символа NULL . dwValueType содержит тип, используемый для кодирования объекта . Она не вынуждена CERT_RDN_UNICODE_STRING. Закодированное значение преобразуется в строку Юникода в соответствии с dwValueType. Если закодированный объект не является одним из типов строк символов, функция декодирования возвращает значение FALSE , а GetLastError возвращает CRYPT_E_NOT_CHAR_STRING. Декодирование строк несимватора с помощью lpszStructType X509_ANY_STRING. |
szOID_NEXT_UPDATE_LOCATION | Используется со списками доверия сертификатов (CTL) для получения расположения для последнего допустимого срока жизни. Обычно в CERT_ALT_NAME_INFO используется URL-адрес, указывающий расположение. |
X509_OCTET_STRING | Структура содержит последовательность байтов. Он используется с некоторыми алгоритмами шифрования, для которых требуется вектор инициализации в виде строки октета. |
CNG_RSA_PUBLIC_KEY_BLOB | Соответствующий pvStructInfo указывает на BCRYPT_RSAKEY_BLOB сразу за которым следует экспонента и байты модуля. Экспонента и модуль имеют формат биг-эндиана. Поля закрытого ключа, состоящие из cbPrime1 и cbPrime2 , равны нулю. Если параметр dwCertEncodingType равен X509_ASN_ENCODING, то CNG_RSA_PUBLIC_KEY_BLOB кодируется как открытый ключ RSA PKCS #1, состоящий из последовательности модуля и publicExponent. |
PKCS_RSA_SSA_PSS_PARAMETERSszOID_RSA_SSA_PSS |
Для кодирования используйте следующие значения по умолчанию, если для полей структуры CRYPT_RSA_SSA_PSS_PARAMETERS задано значение NULL или ноль.
|
PKCS_RSAES_OAEP_PARAMETERSszOID_RSAES_OAEP |
Для кодирования используйте следующие значения по умолчанию, если для полей структуры CRYPT_RSAES_OAEP_PARAMETERS задано значение NULL или ноль.
|
X509_SEQUENCE_OF_ANY | CRYPT_DER_BLOBуказывают на уже закодированное содержимое ANY. |
PKCS_SMIME_CAPABILITIESszOID_RSA_SMIMECapabilities |
Эти значения lpszStructType работают по-разному для функций кодирования. Из-за спецификаций S/MIME( Secure/Multipurpose Internet Mail Extensions ), если Parameters.cbData равно нулю, закодированные параметры опущены и не кодируются как NULL (05 00). |
szOID_SUBJECT_KEY_IDENTIFIER | Структура CRYPT_INTEGER_BLOB содержит строку октета, произвольную последовательность байтов. |
X509_UNICODE_NAME | Для функций декодирования значения атрибутов относительного различающегося имени (RDN) представляют собой строки Юникода , за исключением dwValueTypes CERT_RDN_ENCODED_BLOB или CERT_RDN_OCTET_STRING. Эти значения dwValueTypeсовпадают с значениями для X509_NAME. Эти значения не преобразуются в Юникод. Элемент pbData значения атрибута RDN указывает на строку Юникода, завершаемую null. Элемент cbData значения атрибута RDN содержит число байтов строки Юникода, за исключением завершающего символа NULL . Элемент dwValueType значения атрибута RDN содержит тип, используемый в закодированном объекте. Она не вынуждена CERT_RDN_UNICODE_STRING. Закодированное значение преобразуется в строку Юникода в соответствии с dwValueType. Для функций кодирования значениями атрибутов RDN являются строки Юникода, за исключением dwValueTypeCERT_RDN_ENCODED_BLOB или CERT_RDN_OCTET_STRING. Эти значения dwValueTypeсовпадают с значениями для X509_NAME. Эти значения не должны быть юникодом. Для оставшихся строк dwValueTypeзначение атрибута pbDataотносительного различающегося имени (RDN) указывает на строку Юникода. Если значение атрибута RDN в элементе cbData равно нулю, строка Юникода имеет завершающий символ NULL . В противном случае элемент cbData значения атрибута RDN является строковым числом байтов в Юникоде. Число байтов в два раза превышает число символов и исключает завершающий символ NULL . Если элемент dwValueType значения атрибута RDN CERT_RDN_ANY_TYPE, pszObjId используется для поиска приемлемого dwValueType. Если строка Юникода содержит символ, недопустимый для найденного или указанного dwValueType, значение *pcbEncoded обновляется с указанием недопустимого расположения символа. Для недопустимого символа GetLastError возвращает: CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING Строка Юникода преобразуется перед кодированием в соответствии с указанным dwValueType или dwValueType идентификатора объекта. Индексы расположения ошибок функций кодирования возвращаются в *pcbEncoded следующим образом: VALUE_INDEX ошибки находится в битах от 0 до 15. ATTR_INDEX ошибки находится в битах от 16 до 21. RDN_INDEX ошибки находится в битах от 22 до 31. Бит 0 является наименее значимым битом DWORD. Макросы, определенные GET_CERT_UNICODE_RDN_ERR_INDEX(X), GET_CERT_UNICODE_ATTR_ERR_INDEX(X) и GET_CERT_UNICODE_VALUE_ERR_INDEX(X), позволяют легко считывать битовые поля для VALUE_INDEX, ATTR_INDEX и RDN_INDEX из содержащего их DWORD . |
PKCS_UTC_TIMEszOID_RSA_signingTime |
Для X509_ASN_ENCODING время в формате UTC кодируется точно в секунды и используется двухзначный год. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера |
Windows Server 2003 [классические приложения | Приложения UWP] |
Заголовок |
|
См. также раздел