Netscape 扩展的常量

以下 Netscape 扩展用于编码和解码操作。 Netscape 预定义常量和对象标识符字符串不直接与编码或解码函数、 CryptEncodeObjectCryptEncodeObjectExCryptSignAndEncodeCertificateCryptDecodeObjectCryptDecodeObjectEx 一起使用。 相反,这些扩展需要使用显示的 lpszStructType

有关适用于某些 Netscape 扩展的其他详细信息,请参阅表后面的备注。

Netscape 证书扩展对象标识符 lpszStructType 相应的 pvStructInfo
szOID_NETSCAPE_BASE_URL“2.16.840.1.113730.1.2”
X509_ANY_STRING或X509_UNICODE_ANY_STRING
CERT_NAME_VALUEdwValueType 成员设置为 CERT_RDN_IA5_STRING。 Value 成员的 pbData 成员指向添加到证书中所有相对 URL 地址开头的IA5_STRING。 可以将此扩展视为一种优化,以减少 URL 扩展的大小。
szOID_NETSCAPE_CA_POLICY_URL“2.16.840.1.113730.1.8”
X509_ANY_STRING或X509_UNICODE_ANY_STRING
CERT_NAME_VALUEdwValueType 成员设置为 CERT_RDN_IA5_STRING。 Value 成员的 pbData 成员指向IA5_STRING,这是描述颁发证书的策略的网页的相对或绝对 URL。
szOID_NETSCAPE_CA_REVOCATION_URL“2.16.840.1.113730.1.4”
X509_ANY_STRING或X509_UNICODE_ANY_STRING
CERT_NAME_VALUEdwValueType 成员设置为 CERT_RDN_IA5_STRING。 Value 成员的 pbData 成员指向一个IA5_STRING,该IA5_STRING是用于检查当前证书所属证书颁发机构签名的证书的吊销状态的相对 URL 或绝对 URL。
szOID_NETSCAPE_CERT_RENEWAL_URL“2.16.840.1.113730.1.7”
X509_ANY_STRING或X509_UNICODE_ANY_STRING
CERT_NAME_VALUEdwValueType 成员设置为 CERT_RDN_IA5_STRING。 Value 成员的 pbData 成员指向证书续订表单的相对或绝对 URL IA5_STRING。
szOID_NETSCAPE_CERT_SEQUENCE“2.16.840.1.113730.2.5”
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY
szOID_NETSCAPE_CERT_TYPE“2.16.840.1.113730.1.1”
X509_BITS CRYPT_BIT_BLOB
szOID_NETSCAPE_COMMENT“2.16.840.1.113730.1.13”
X509_ANY_STRING或X509_UNICODE_ANY_STRING
CERT_NAME_VALUEdwValueType 成员设置为 CERT_RDN_IA5_STRING。 Value 成员的 pbData 成员指向IA5_STRING,这是查看证书时要显示的注释。
szOID_NETSCAPE_REVOCATION_URL“2.16.840.1.113730.1.3”
X509_ANY_STRING或X509_UNICODE_ANY_STRING
CERT_NAME_VALUEdwValueType 成员设置为 CERT_RDN_IA5_STRING。 Value 成员的 pbData 成员指向IA5_STRING,它是用于检查证书吊销状态的相对或绝对 URL。
szOID_NETSCAPE_SSL_SERVER_NAME“2.16.840.1.113730.1.12”
X509_ANY_STRING或X509_UNICODE_ANY_STRING
CERT_NAME_VALUEdwValueType 成员设置为 CERT_RDN_IA5_STRING。 Value 成员的 pbData 成员指向一个IA5_STRING,该IA5_STRING是一个 shell 表达式,用于将此证书与 SSL 服务器中的主机名匹配。

 

对于使用 X509_ANY_STRING 或 X5O9_UNICODE_ANY_STRING lpszStructType 的所有编码函数,如果 Value 成员 的 pbData 成员中的字符串格式为 ASCII,则使用 X509_ANY_STRING;如果字符串格式为 UNICODE,则使用 X509_UNICODE_ANY_STRING。 在 Unicode 的情况下,必须先将字符串转换为IA5_STRING,然后再将 CERT_NAME_VALUE 结构的 dwValueType 成员设置为 CERT_RDN_IA5_STRING。

对于解码函数,用户选择输出字符串的格式。 如果所需的字符串格式为 ASCII,请使用 X509_ANY_STRING;如果所需字符串格式为 Unicode,请使用 X509_UNICODE_ANY_STRING。

对于 szOID_NETSCAPE_CERT_RENEWAL_URL 扩展,数据结构包含指向证书续订表单的相对或绝对 URL。 将使用作为 renewal-URL 和 certificate-serial-number 串联的 URL 通过 HTTP GET 方法访问续订表单。 证书序列号编码为 ASCII 十六进制数字字符串。 例如,如果 netscape-base-url https:// 认证机构 URL/,netscape-cert-renewal-url 为 cgi-bin/检查-renew.cgi?,证书序列号为 173420,则生成的 URL 将为:https:// certification authority URL/cgi-bin/检查-renew.cgi?02a56c。 返回的文档应该是允许用户请求续订其证书的 HTML 表单。

对于使用 X509_ASN_ENCODING 的 szOID_NETSCAPE_CERT_SEQUENCE 扩展,证书编码为包装 ANY 序列的PKCS_CONTENT_INFO结构。 contentType 成员的值为 pszObjId,而内容字段的结构如下:

SequenceOfAny ::= SEQUENCE OF ANY

CRYPT_CONTENT_INFO_SEQUENCE_OF_ANYrgValue 成员中的 CRYPT_DER_BLOB 指向编码的 X509 证书。

对于szOID_NETSCAPE_CERT_TYPE扩展,定义了以下位。

位值 相应的类型
0x80 NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE
0x40 NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE
0x04 NETSCAPE_SSL_CA_CERT_TYPE

 

对于szOID_NETSCAPE_REVOCATION_URL扩展,可以使用相对或绝对 URL 来检查证书的吊销状态。 吊销检查将作为 HTTP GET 方法执行,该 URL 是 revocation-URL 和 certificate-serial-number 的串联。 证书序列号编码为 ASCII 十六进制数字字符串。 例如,如果 netscape-base-url 为 https://www.certs-r-us.com/,netscape-revocation-url 为 cgi-bin/检查-rev.cgi?,并且证书序列号为 173420,则生成的 URL 将为:https://www.certs-r-us.com/cgi-bin/check-rev.cgi?02a56c.

服务器应返回 Content-Type 为 application/x-netscape-revocation 的文档。 文档应包含一个 ASCII 数字;如果证书当前无效,则为“1”;如果证书当前有效,则为“0”。

请注意,对于包含证书序列号的所有 URL,序列号将编码为包含偶数个十六进制数字的字符串。 如果有效位数为奇数,则字符串将具有单个前导零,以确保生成偶数位数。