IX509CertificateRequestPkcs10 接口 (certenroll.h)

IX509CertificateRequestPkcs10 接口表示 PKCS #10 证书请求。 公钥加密标准 (PKCS) #10 定义了发送到认证或注册机构以请求公钥证书的消息的格式。

PKCS #10 ASN.1 请求对象包含版本标识符、使用者名称、公钥和一组属性,如以下语法示例所示。


--------------------------------------------------------------------
-- Certificate request.
--------------------------------------------------------------------
CertificationRequestInfo ::= SEQUENCE 
{
   version                 CertificationRequestInfoVersion,
   subject                 Name,
   subjectPublicKeyInfo    SubjectPublicKeyInfo,
   attributes              [0] IMPLICIT Attributes
}

-------------------------------------------------------
-- Version number.
-------------------------------------------------------
CertificationRequestInfoVersion ::= INTEGER

-------------------------------------------------------
-- Subject distinguished name (DN).
-------------------------------------------------------
Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

AttributeTypeValue ::= SEQUENCE 
{
   type               EncodedObjectID,
   value              ANY 
}

-------------------------------------------------------
-- Public key information.
-------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE 
{
   algorithm           AlgorithmIdentifier,
   subjectPublicKey    BITSTRING
}

-------------------------------------------------------
-- Attributes.
-------------------------------------------------------
Attributes ::= SET OF Attribute

Attribute ::= SEQUENCE 
{
   type               EncodedObjectID,
   values             AttributeSetValue
}

CertificationRequestInfo ASN.1 对象包装在 CertificationRequest 对象中,如以下语法所示。 CertificationRequest 对象还包括签名和签名算法。 PKCS #10 请求必须由关联的私钥签名,如果是交叉认证请求,则必须使用 null 签名。 可以调用 RawData 属性来检索签名的 CertificationRequest 对象,也可以调用 RawDataToBeSigned 属性来检索未签名的 CertificationRequestInfo 对象。


--------------------------------------------------------------------
-- Certificate request.
--------------------------------------------------------------------
CertificationRequest ::= SEQUENCE 
{
   certificationRequestInfo   CertificationRequestInfo,
   signatureAlgorithm         AlgorithmIdentifier,
   signature                  BIT STRING
}

--------------------------------------------
--  Algorithm Identifier
--------------------------------------------
AlgorithmIdentifier ::= SEQUENCE 
{
   algorithm           EncodedObjectID,
   parameters          ANY OPTIONAL
}

在调用 Encode 方法之前,可以设置以下属性:

此外,在调用初始化方法之前,通常会调用 SilentParentWindowUIContextMessage 属性。

在调用 Encode 方法之前,必须设置以下属性(如果有):

继承

IX509CertificateRequestPkcs10 接口继承自 IX509CertificateRequestIX509CertificateRequestPkcs10 还具有以下类型的成员:

方法

IX509CertificateRequestPkcs10 接口具有这些方法。

 
IX509CertificateRequestPkcs10::CheckSignature

验证证书请求是否已签名以及签名是否有效。 (IX509CertificateRequestPkcs10.CheckSignature)
IX509CertificateRequestPkcs10::get_CriticalExtensions

检索标识标记为关键版本 3 证书扩展的 IObjectIds 集合。 (IX509CertificateRequestPkcs10.get_CriticalExtensions)
IX509CertificateRequestPkcs10::get_CryptAttributes

检索可选证书属性的 ICryptAttributes 集合。 (IX509CertificateRequestPkcs10.get_CryptAttributes)
IX509CertificateRequestPkcs10::get_CspStatuses

检索与证书请求关联的私钥的预期用途匹配的 ICspStatus 对象的集合。
IX509CertificateRequestPkcs10::get_KeyContainerNamePrefix

指定或检索用于为新私钥创建容器名称的前缀。 (获取)
IX509CertificateRequestPkcs10::get_NullSigned

检索一个布尔值,该值指示证书请求是否为 null 签名。
IX509CertificateRequestPkcs10::get_OldCertificate

检索传递给 InitializeFromCertificate 方法的证书。
IX509CertificateRequestPkcs10::get_PrivateKey

检索包含用于对证书请求进行签名的私钥的 IX509PrivateKey 对象。
IX509CertificateRequestPkcs10::get_PublicKey

检索包含证书请求中包含的公钥的 IX509PublicKey 对象。
IX509CertificateRequestPkcs10::get_RawDataToBeSigned

检索由 Encode 方法创建的未签名证书请求。
IX509CertificateRequestPkcs10::get_ReuseKey

检索一个布尔值,该值指示是否使用现有私钥对请求进行签名。
IX509CertificateRequestPkcs10::get_Signature

检索由 Encode 方法创建的请求签名。
IX509CertificateRequestPkcs10::get_SignatureInformation

检索包含证书请求签名相关信息的 IX509SignatureInformation 对象。
IX509CertificateRequestPkcs10::get_SmimeCapabilities

指定或检索一个布尔值,该值告知 Encode 方法是否创建标识计算机支持的加密功能的 IX509ExtensionSmimeCapabilities 集合。 (获取)
IX509CertificateRequestPkcs10::get_Subject

指定或检索请求证书的实体的 X.500 可分辨名称。 (获取)
IX509CertificateRequestPkcs10::get_SuppressOids

检索默认扩展和属性对象标识符的集合, (编码请求时未添加到请求的 OID) 。
IX509CertificateRequestPkcs10::get_TemplateObjectId

检索用于创建证书请求的模板 (OID) 的对象标识符。 (IX509CertificateRequestPkcs10.get_TemplateObjectId)
IX509CertificateRequestPkcs10::get_X509Extensions

检索证书请求中包含的扩展的集合。 (IX509CertificateRequestPkcs10.get_X509Extensions)
IX509CertificateRequestPkcs10::GetCspStatuses

检索一个 ICspStatuses 集合,该集合包含与调用方指定的私钥的预期用途一致的所有提供程序/算法对。
IX509CertificateRequestPkcs10::InitializeDecode

(IX509CertificateRequestPkcs10.InitializeDecode (解码现有已签名或未签名) 的 PKCS
IX509CertificateRequestPkcs10::InitializeFromCertificate

使用现有证书初始化证书请求。 (IX509CertificateRequestPkcs10.InitializeFromCertificate)
IX509CertificateRequestPkcs10::InitializeFromPrivateKey

使用 IX509PrivateKey 对象和模板(可选)初始化证书请求。
IX509CertificateRequestPkcs10::InitializeFromPublicKey

使用 IX509PublicKey 对象和模板(可选)初始化 null 签名的证书请求。
IX509CertificateRequestPkcs10::InitializeFromTemplateName

. (IX509CertificateRequestPkcs10.InitializeFromTemplateName)
IX509CertificateRequestPkcs10::IsSmartCard

检索一个布尔值,该值指示与请求对象关联的任何加密提供程序是否为智能卡提供程序。
IX509CertificateRequestPkcs10::p ut_KeyContainerNamePrefix

指定或检索用于为新私钥创建容器名称的前缀。 (放置)
IX509CertificateRequestPkcs10::p ut_SmimeCapabilities

指定或检索一个布尔值,该值告知 Encode 方法是否创建标识计算机支持的加密功能的 IX509ExtensionSmimeCapabilities 集合。 (放置)
IX509CertificateRequestPkcs10::p ut_Subject

指定或检索请求证书的实体的 X.500 可分辨名称。 (放置)

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h

另请参阅

CertEnroll 接口

IX509CertificateRequest