Share via


IX509CertificateRequest::Encode 方法 (certenroll.h)

編碼方法會簽署並編碼憑證要求,並在其中一個不存在時建立密鑰組。 要求會使用 可辨別編碼規則 (DER) 編碼,如抽象語法表示法一 (ASN.1) 標準所定義。 編碼程式會建立位元組陣列。 您可以呼叫 RawData 屬性來擷取位元組陣列。

Syntax

HRESULT Encode();

傳回值

如果函式成功,函式會傳回 S_OK

如果函式失敗,它會傳回 HRESULT 值,指出錯誤。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

傳回碼/值 Description
CERTSRV_E_ARCHIVED_KEY_REQUIRED
已針對 CMC 要求設定 ArchivePrivateKey 屬性,但找不到密鑰交換憑證。
OLE_E_BLANK
物件未初始化。

備註

針對 PKCS #10 要求,此方法:

  • 匯報 私鑰,或視需要建立金鑰。
  • 從私鑰填入公鑰。
  • 匯報 擴充功能,新增任何預設延伸模組,並考慮隱藏的 OID 集合和重大延伸模組 OID 集合。
  • 匯報 屬性,新增預設屬性並考慮隱藏的 OID 集合。
  • 組合和編碼未簽署的更新要求。
  • 建立並編碼簽章。
  • 編碼簽章和未簽署的要求。

針對 CMC 要求,此方法:

  • 編碼所有內部要求物件。
  • 匯報 外部要求物件的延伸模組,新增任何預設延伸模組,並考慮隱藏的 OID 集合和重大延伸模組 OID 集合。
  • 匯報 外部要求對象的屬性,新增預設屬性並考慮隱藏的 OID 集合。
  • 匯報 名稱/值組集合。
  • 編碼由編碼的內部要求和更新的外部要求所組成的 CMC 內容。
  • 建立並編碼每個簽署憑證的簽章。
  • 建立和編碼主要簽章。
  • 組合編碼的 CMC 內容 (包括內部要求和更新的外部要求) 和編碼簽章。
  • 將組合的內容編碼為 PKCS #7 訊息。

規格需求

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

另請參閱

IX509CertificateRequest

IX509CertificateRequestCertificate

IX509CertificateRequestCmc

IX509CertificateRequestPkcs10

IX509CertificateRequestPkcs7

IX509SignatureInformation