共用方式為


CertStore_InstallClientCertificate 函數

頁首: #include < applibs/certstore。h>

安裝由公用憑證和具有指定識別碼之私密金鑰組成的用戶端憑證。 識別碼則可用來參照其他函數中的憑證。 如果任何類型的憑證都已安裝相同識別碼,則會以新憑證取代。

int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);

參數

  • identifier 憑證的識別碼。

  • certBlob 指標指向包含 PEM 格式公用憑證的 blob。 blob 只能包含和標籤之間的 -----BEGIN...-----END... 內容。 例如,憑證的標籤是 -----BEGIN CERTIFICATE----------END CERTIFICATE-----

  • certBlobLength 憑證 blob 的長度,不包括 Null-terminator 字元。

  • privateKeyBlob 指標指向含有 PEM 格式之私密金鑰的 blob。

  • privateKeyBlobLength 憑證 blob 的長度,不包括 Null-terminator 字元。

  • privateKeyPassword 指向包含私密金鑰密碼之 Null 字元陣列的指標。 陣列的長度必須小於或等於CERTSTORE_MAX_PRI加值稅E_KEY_PASSWORD_LENGTH位元組。 若 privateKeyBlob 已加密,則需要密碼。

錯誤

如果發生錯誤並設定為 errno 錯誤值,則傳回 -1。

  • EACCES:不允許執行此作業,因為應用程式資訊清單中並未設定 CertStore 功能。

  • EAGAIN:作業系統認證元件尚未準備就緒。

  • EFAULT:, certBlobidentifierprivateKeyBlob 參數是 Null。

  • EINVAL: identifier 參數並未以 Null 終止, certBlobprivateKeyBlob 包含不正確資料。

  • ENOSPC:此憑證的憑證儲存空間不足。

  • ERANGE:或 certBlobLengthprivateKeyBlobLength 是零或大於 CERTSTORE_MAX_CERT_SIZE 或 privateKeyPassword 長度大於 CERTSTORE_MAX_PRI加值稅E_KEY_PASSWORD_LENGTH。

您也可以指定任何其他 errno 錯誤;這類錯誤並非確定性錯誤,而且不保證會透過系統更新保留相同的行為。

傳回值

會傳回 0 表示成功,而失敗則傳回 -1,在這種情況下 errno 會設定為錯誤值。

言論

有效的識別碼必須是長度從一到CERTSTORE_MAX_IDENTIFIER_LENGTH字元的唯一字串。 下列字元在識別碼中有效:

  • 'A' 對 'Z'
  • 'a' 對 'z'
  • '0' 到 '9'
  • '.' 或 '-' 或 '_'

謹慎

由於憑證識別碼是全系統,因此新增憑證的 azsphere 命令或函數呼叫可能會覆寫先前命令或函數通話所新增的憑證,而可能導致網路連線失敗。 我們強烈建議您開發清楚的憑證更新程式,並謹慎選擇憑證識別碼。

如需Azure 球體如何使用憑證識別碼的詳細資訊,請參閱憑證識別碼。

應用程式資訊清單需求

應用程式 資訊清單 必須包含 CertStore 功能。