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:,
certBlob
,identifier
或privateKeyBlob
參數是 Null。EINVAL:
identifier
參數並未以 Null 終止,certBlob
或privateKeyBlob
包含不正確資料。ENOSPC:此憑證的憑證儲存空間不足。
ERANGE:或
certBlobLength
privateKeyBlobLength
是零或大於 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 功能。