CERT_RDN_ATTR 结构 (wincrypt.h)

CERT_RDN_ATTR 结构包含 RDN) (相对可分辨名称的单个属性。 整个 RDN 以 包含CERT_RDN_ATTR 结构的数组的 CERT_RDN 结构表示。

语法

typedef struct _CERT_RDN_ATTR {
  LPSTR               pszObjId;
  DWORD               dwValueType;
  CERT_RDN_VALUE_BLOB Value;
} CERT_RDN_ATTR, *PCERT_RDN_ATTR;

成员

pszObjId

对象标识符 (此结构中定义的属性类型的 OID) 。 此成员可以是以下 OID 之一。

含义
szOID_AUTHORITY_REVOCATION_LIST
安全属性。
szOID_BUSINESS_CATEGORY
不区分大小写的字符串。 解释性属性。
szOID_CA_CERTIFICATE
安全属性。
szOID_CERTIFICATE_REVOCATION_LIST
安全属性。
szOID_COMMON_NAME
不区分大小写的字符串。 标记属性。
szOID_COUNTRY_NAME
双字符可打印字符串。 地理属性。
szOID_CROSS_CERTIFICATE_PAIR
安全属性。
szOID_DESCRIPTION
不区分大小写的字符串。 解释性属性。
szOID_DESTINATION_INDICATOR
可打印的字符串。 电信寻址属性。
szOID_DEVICE_SERIAL_NUMBER
可打印的字符串。 标记属性。
szOID_DOMAIN_COMPONENT
IA5 字符串。 DNS 名称组件,例如“com”。
szOID_FACSIMILE_TELEPHONE_NUMBER
电信寻址属性。
szOID_GIVEN_NAME
不区分大小写的字符串。 名称属性。
szOID_INITIALS
不区分大小写的字符串。 名称属性。
szOID_INTERNATIONAL_ISDN_NUMBER
数值字符串。 电信寻址属性。
szOID_LOCALITY_NAME
不区分大小写的字符串。 地理属性。
szOID_MEMBER
关系应用程序属性。
szOID_ORGANIZATION_NAME
不区分大小写的字符串。 组织属性。
szOID_ORGANIZATIONAL_UNIT_NAME
不区分大小写的字符串。 组织属性。
szOID_OWNER
关系应用程序属性。
szOID_PHYSICAL_DELIVERY_OFFICE_NAME
不区分大小写的字符串。 邮政寻址属性。
szOID_PKCS_12_FRIENDLY_NAME_ATTR
PKCS #12 属性。
szOID_PKCS_12_LOCAL_KEY_ID
PKCS #12 属性。
szOID_POST_OFFICE_BOX
不区分大小写的字符串。 邮政寻址属性。
szOID_POSTAL_ADDRESS
可打印的字符串。 邮政寻址属性。
szOID_POSTAL_CODE
不区分大小写的字符串。 邮政寻址属性。
szOID_PREFERRED_DELIVERY_METHOD
首选项属性。
szOID_PRESENTATION_ADDRESS
OSI 应用程序属性。
szOID_REGISTERED_ADDRESS
电信寻址属性。
szOID_ROLE_OCCUPANT
关系应用程序属性。
szOID_RSA_emailAddr
IA5 字符串。 Email 属性。
szOID_SEARCH_GUIDE
解释性属性。
szOID_SEE_ALSO
关系应用程序属性。
szOID_STATE_OR_PROVINCE_NAME
不区分大小写的字符串。 地理属性。
szOID_STREET_ADDRESS
不区分大小写的字符串。 地理属性。
szOID_SUPPORTED_APPLICATION_CONTEXT
OSI 应用程序属性。
szOID_SUR_NAME
不区分大小写的字符串。 标记属性。
szOID_TELEPHONE_NUMBER
电信寻址属性。
szOID_TELETEXT_TERMINAL_IDENTIFIER
电信寻址属性。
szOID_TELEX_NUMBER
电信寻址属性。
szOID_TITLE
不区分大小写的字符串。 组织属性。
szOID_USER_CERTIFICATE
安全属性。
szOID_USER_PASSWORD
安全属性。
szOID_X21_ADDRESS
数值字符串。 电信寻址属性。

dwValueType

指示 Value 成员的解释。

此成员可以是以下值之一。

含义
CERT_RDN_ANY_TYPE
pszObjId 成员确定假定的类型和长度。
CERT_RDN_BMP_STRING
16 位) (Unicode 字符数组。
CERT_RDN_ENCODED_BLOB
编码的数据 BLOB。
CERT_RDN_GENERAL_STRING
当前未使用。
CERT_RDN_GRAPHIC_STRING
当前未使用。
CERT_RDN_IA5_STRING
IA5 (ASCII) 字符的任意字符串。
CERT_RDN_INT4_STRING
INT4 元素的数组 (32 位) 。
CERT_RDN_ISO646_STRING
128 个字符集 (8 位) 。
CERT_RDN_NUMERIC_STRING
只有字符 0 到 9 和空格字符 (8 位) 。
CERT_RDN_OCTET_STRING
(8 位) 的任意八位字节字符串。
CERT_RDN_PRINTABLE_STRING
8 位) (可打印字符的任意字符串。
CERT_RDN_T61_STRING
8 位) (T.61 字符的任意字符串。
CERT_RDN_TELETEX_STRING
8 位) (T.61 字符的任意字符串
CERT_RDN_UNICODE_STRING
16 位) (Unicode 字符数组。
CERT_RDN_UNIVERSAL_STRING
INT4 元素的数组 (32 位) 。
CERT_RDN_UTF8_STRING
一个 16 位 Unicode 字符 UTF8 的数组,在网络上编码为 1、2 或 3 个 8 位字符的序列。
CERT_RDN_VIDEOTEX_STRING
视频文本字符的任意字符串。
CERT_RDN_VISIBLE_STRING
95 个字符集 (8 位) 。
 

通过将按位 OR 操作合并到 dwValueType 成员中,可以合并以下标志。

含义
CERT_RDN_DISABLE_CHECK_TYPE_FLAG
用于编码。 设置后,不会检查字符以确定它们是否对值类型有效。
CERT_RDN_DISABLE_IE4_UTF8_FLAG
用于解码。 默认情况下, CERT_RDN_T61_STRING 编码值最初解码为 UTF8。 如果 UTF8 解码失败,值将解码为 8 位字符。 如果设置了此标志,它将跳过最初尝试将 UTF8 解码为 UTF8,并将值解码为 8 位字符。
CERT_RDN_ENABLE_T61_UNICODE_FLAG
用于编码。 设置时,如果所有 Unicode 字符均为 <= 0xFF,则选择 CERT_RDN_T61_STRING 值而不是 CERT_RDN_UNICODE_STRING 值。
CERT_RDN_ENABLE_UTF8_UNICODE_FLAG
用于编码。 设置后,字符串使用 CERT_RDN_UTF8_STRING 值而不是 CERT_RDN_UNICODE_STRING 值进行编码。
CERT_RDN_FORCE_UTF8_UNICODE_FLAG
用于编码。 设置后,字符串使用 CERT_RDN_UTF8_STRING 值而不是 DirectoryString 类型的CERT_RDN_PRINTABLE_STRING 值进行编码。 此外, 还启用了CERT_RDN_ENABLE_UTF8_UNICODE_FLAG

Windows Vista、Windows Server 2003 和 Windows XP: 不支持此标志。

CERT_RDN_ENABLE_PUNYCODE_FLAG
用于编码。 如果字符串包含电子邮件 RDN,并且电子邮件地址经过 Punycode 编码,则生成的电子邮件地址将编码为 IA5String。 主机名的 Punycode 编码是逐个标签执行的。

用于解码。 如果名称包含电子邮件 RDN,并且电子邮件地址的本地部分或主机名部分包含 Punycode 编码 的 IA5String,则 RDN 字符串值将转换为其 Unicode 等效值。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持此标志。

Value

包含属性值 的CERT_RDN_VALUE_BLOBValuecbData 成员是 pbData 成员的长度(以字节为单位)。 它不是 pbData 字符串中的元素数。

例如, DWORD 的长度为 32 位或 4 个字节。 如果 pbDataDWORD 数组, 则 cbData 将是数组中 DWORD 元素数的四倍。 SHORT 为 16 位或 2 字节长。 如果 pbDataSHORT 元素的数组, 则 cbData 的长度必须是数组长度的两倍。

ValuepbData 成员可以是以 null 结尾的 8 位或 16 位字符数组,也可以是固定长度的元素数组。 如果 dwValueType 设置为 CERT_RDN_ENCODED_BLOB,则 对 pbData 进行编码。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 wincrypt.h

另请参阅

CERT_RDN

CRYPT_INTEGER_BLOB

CertIsRDNAttrsInCertificateName