IX509CertificateRequestPkcs7 介面 (certenroll.h)
IX509CertificateRequestPkcs7 介面代表 PKCS #7 憑證訊息語法, (CMS) 物件。 PKCS #7 定義傳送至認證或註冊授權單位的訊息格式,以要求公鑰憑證。 IX509CertificateRequestPkcs7 介面可能會造成混淆,因為其實作不會完全反映大部分安全性專業人員對 PKCS #7 標準的想法。 若要避免這種混淆,請記住下列幾點:
- 雖然 PKCS #7 訊息是用來包裝 CMC 要求, 但 IX509CertificateRequestPkcs7 物件不能包含 IX509CertificateRequestCmc 物件。 相反地, IX509CertificateRequestCmc 介面會繼承並實作 IX509CertificateRequestPkcs7 介面。 因此,CMC 要求是 PKCS #7 SignedData 物件,其中包含 CMC 內容、以 Null 簽署或密鑰為基礎的主要簽章,以及零或多個憑證型簽章。 相較之下,PKCS #7 要求是包含 PKCS #10 內容的 SignedData 物件, (在此清單中看到下一個專案) ,且只有一個憑證型簽章。
- IX509CertificateRequestPkcs7 必須包含IX509CertificateRequestPkcs10 物件。 在 PKCS #7 訊息中包裝 PKCS #10 要求的主要優點是能夠新增多個簽署者。 PKCS #10 要求是由相關聯的私鑰簽署,而包裝 PKCS #10 要求的 PKCS #10 訊息也會簽署。 第二個簽署者會針對更新要求使用更新要求 () 或註冊代理程序憑證 (進行更新的憑證,以代表要求) 。
- 您可以建立及註冊獨立 IX509CertificateRequestPkcs10 憑證要求,而不需要將它包裝在 IX509CertificateRequestPkcs7 物件中。
下列語法範例中 PKCS #7 物件的 ASN.1 表示法顯示它可以由各種數據類型組成。
PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
{
data | signed-data | enveloped-data | signed-and-enveloped-data |
digested-data | encrypted-data | authenticated-data, ...
}
在這些情況下,如下所示的 SignedData 物件最相關。 SignedData 物件中所參考的 SignerInfo 物件包含簽章資訊。 如需更完整的討論,請參閱 PKCS #7 屬性。
-------------------------------------------------------------------
-- signed-data
-------------------------------------------------------------------
SignedData ::= SEQUENCE
{
version INTEGER,
digestAlgorithms DigestAlgorithmIdentifiers,
contentInfo ContentInfo,
certificates [0] IMPLICIT Certificates OPTIONAL,
crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
signerInfos SignerInfos
}
SignerInfo ::= SEQUENCE
{
version INTEGER,
sid CertIdentifier,
digestAlgorithm DigestAlgorithmIdentifier,
authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature SignatureValue,
unauthenticatedAttributes [1] IMPLICIT Attributes
}
繼承
IX509CertificateRequestPkcs7 介面繼承自 IX509CertificateRequest。 IX509CertificateRequestPkcs7 也有下列類型的成員:
方法
IX509CertificateRequestPkcs7 介面具有這些方法。
IX509CertificateRequestPkcs7::get_RequesterName 指定或擷取包含安全性帳戶管理員 (SAM) 要求憑證之結束實體名稱的字串。 (取得) |
IX509CertificateRequestPkcs7::get_SignerCertificate 指定或擷取用來簽署憑證要求的憑證。 (取得) |
IX509CertificateRequestPkcs7::InitializeDecode 譯碼現有的已簽署或未簽署 PKCS (IX509CertificateRequestPkcs7.InitializeDecode) |
IX509CertificateRequestPkcs7::InitializeFromCertificate 使用現有的憑證,初始化憑證要求。 (IX509CertificateRequestPkcs7.InitializeFromCertificate) |
IX509CertificateRequestPkcs7::InitializeFromInnerRequest 從內部 PKCS 初始化憑證要求 |
IX509CertificateRequestPkcs7::InitializeFromTemplateName 使用範本初始化憑證要求。 (IX509CertificateRequestPkcs7.InitializeFromTemplateName) |
IX509CertificateRequestPkcs7::p ut_RequesterName 指定或擷取包含安全性帳戶管理員 (SAM) 要求憑證之結束實體名稱的字串。 (Put) |
IX509CertificateRequestPkcs7::p ut_SignerCertificate 指定或擷取用來簽署憑證要求的憑證。 (Put) |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | certenroll.h |