iSignerCertificate 接口 (certenroll.h)
ISignerCertificate 接口表示一个签名证书,可用于对证书请求进行签名。 初始化接口时,证书注册控制从个人存储中检索签名证书,并使用它来查找关联的 私钥。 可以使用私钥对 PKCS #7 或 CMC 请求进行签名,但不能对 PKCS #10 请求进行签名。 必须使用与请求中包含的 公钥 关联的私钥对 PKCS #10 请求进行签名。 可以使用与请求关联的私钥或与签名证书关联的私钥对自签名证书进行签名。 下表对此进行了总结。
请求类型 (接口) | 签名证书 |
---|---|
PKCS #7 (IX509CertificateRequestPkcs7) | 1 |
PKCS #10 (IX509CertificateRequestPkcs10) | 0 |
CMC (IX509CertificateRequestCmc) | 0 个或更多 |
自签名 (IX509CertificateRequestCertificate) | 0 或 1 |
签名 CMC 请求时,要签名的数据由包装在 CMS SignedData 对象中的可辨别编码规则 (DER) 编码的 CmcData 对象组成。 SignerInfo 对象的 encryptedDigest 字段包含一个签名,多个 SignerInfo 对象可以与请求相关联。
---------------------------------------------------------------------
-- CMC request data
---------------------------------------------------------------------
CmcData ::= SEQUENCE
{
controlSequence SEQUENCE OF TaggedAttribute,
reqSequence SEQUENCE OF TaggedRequest,
cmsSequence SEQUENCE OF TaggedContentInfo,
otherMsgSequence SEQUENCE OF TaggedOtherMs
}
---------------------------------------------------------------------
-- SignedData object that wraps the CMC request
---------------------------------------------------------------------
SignedData ::= SEQUENCE
{
version INTEGER,
digestAlgorithms DigestAlgorithmIdentifiers,
contentInfo ContentInfo,
certificates [0] IMPLICIT Certificates OPTIONAL,
crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
signerInfos SignerInfos
}
DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
DigestAlgorithmIdentifiersNC ::= SET OF DigestAlgorithmIdentifierNC
SignerInfos ::= SET OF SignerInfo
SignerInfo ::= SEQUENCE
{
version INTEGER,
sid CertIdentifier,
digestAlgorithm DigestAlgorithmIdentifier,
authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
digestEncryptionAlgorithm DigestEncryptionAlgId,
encryptedDigest EncryptedDigest,
unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
}
每个 ISignerCertificate 对象都与一个标识使用的哈希和公钥算法的 IX509SignatureInformation 对象相关联。 此对象在初始化 ISignerCertificate 对象时创建并初始化。
继承
ISignerCertificate 接口继承自 IDispatch 接口。 ISignerCertificate 还具有以下类型的成员:
方法
ISignerCertificate 接口具有以下方法。
ISignerCertificate::get_Certificate 检索包含证书的可辨别编码规则 (DER) 编码的字节数组。 |
ISignerCertificate::get_ParentWindow 指定或检索用于显示签名证书信息的窗口的 ID。 (获取) |
ISignerCertificate::get_PrivateKey 检索与 ISignerCertificate 对象关联的私钥。 |
ISignerCertificate::get_SignatureInformation 检索包含证书签名相关信息的 IX509SignatureInformation 对象。 |
ISignerCertificate::get_Silent 指定或检索一个布尔值,该值指示使用私钥对证书请求进行签名时是否通知用户。 (获取) |
ISignerCertificate::get_UIContextMessage 指定或检索包含与签名证书关联的用户界面文本的字符串。 (获取) |
ISignerCertificate::Initialize 从签名证书初始化 对象。 |
ISignerCertificate::p ut_ParentWindow 指定或检索用于显示签名证书信息的窗口的 ID。 (放置) |
ISignerCertificate::p ut_Pin 指定用于对智能卡用户进行身份验证 (PIN) 个人标识号。 |
ISignerCertificate::p ut_Silent 指定或检索一个布尔值,该值指示使用私钥对证书请求进行签名时是否通知用户。 (放置) |
ISignerCertificate::p ut_UIContextMessage 指定或检索包含与签名证书关联的用户界面文本的字符串。 (放置) |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |