共用方式為


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

指定或擷取用來顯示簽署憑證資訊的視窗標識碼。 (取得)
ISignerCertificate::get_PrivateKey

擷取與 ISignerCertificate 對象相關聯的私鑰。
ISignerCertificate::get_SignatureInformation

擷取包含憑證簽章相關信息的IX509SignatureInformation 物件。
ISignerCertificate::get_Silent

指定或擷取布爾值,指出是否在私鑰用來簽署憑證要求時通知使用者。 (取得)
ISignerCertificate::get_UIContextMessage

指定或擷取包含與簽署憑證相關聯之使用者介面文字的字串。 (取得)
ISignerCertificate::Initialize

從簽署憑證初始化物件。
ISignerCertificate::p ut_ParentWindow

指定或擷取用來顯示簽署憑證資訊的視窗標識碼。 (Put)
ISignerCertificate::p ut_Pin

指定用來驗證智慧卡用戶的個人標識碼 (PIN) 。
ISignerCertificate::p ut_Silent

指定或擷取布爾值,指出是否在私鑰用來簽署憑證要求時通知使用者。 (Put)
ISignerCertificate::p ut_UIContextMessage

指定或擷取包含與簽署憑證相關聯之使用者介面文字的字串。 (Put)

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 certenroll.h

另請參閱

CertEnroll 介面

IDispatch

ISignerCertificates