CertStore_InstallClientCertificate関数
ヘッダー: applibs </certstore.h #include>
公開証明書と、指定した ID を持つ秘密キーで構成されるクライアント証明書をインストールします。 その後、ID を使用して、他の関数の証明書を参照できます。 いずれかの種類の証明書が同じ ID で既にインストールされている場合は、新しい証明書に置き換えられます。
int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);
パラメーター
identifier
証明書の ID。certBlob
PEM 形式のパブリック証明書を含む BLOB へのポインター。 BLOB には、 と-----END...
タグの間-----BEGIN...
のコンテンツのみが含まれている必要があります。 たとえば、証明書のタグは-----BEGIN CERTIFICATE-----
と-----END CERTIFICATE-----
です。certBlobLength
NULL ターミネータ文字を含まない証明書 BLOB の長さ。privateKeyBlob
PEM 形式の秘密キーを含む BLOB へのポインター。privateKeyBlobLength
NULL ターミネータ文字を含まない証明書 BLOB の長さ。privateKeyPassword
秘密キー パスワードを含む null で終わる文字配列へのポインター。 配列の長さは、CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH バイト以下である必要があります。 が暗号化されている場合privateKeyBlob
は、パスワードが必要です。
エラー
エラーが発生した場合は -1 を返し、エラー値に設定します errno
。
EACCES: CertStore 機能がアプリケーション マニフェストに設定されていないため、操作は許可されません。
EAGAIN: OS 証明書ストア コンポーネントの準備がまだ整っていません。
EFAULT: 、
certBlob
identifier
、またはprivateKeyBlob
パラメーターは NULL です。EINVAL: パラメーターは
identifier
NULL で終わっていません。またはprivateKeyBlob
には無効なデータがcertBlob
含まれています。ENOSPC: この証明書の証明書ストレージに十分な領域がありません。
ERANGE:
certBlobLength
またはprivateKeyBlobLength
が 0 または CERTSTORE_MAX_CERT_SIZE より大きいか、privateKeyPassword
長さがCERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTHより大きい。
その他 errno
のエラーも指定できます。このようなエラーは決定的ではなく、システムの更新によって同じ動作が保持される保証はありません。
戻り値
成功の場合は 0、失敗の場合は -1 を返します。この場合 errno
はエラー値に設定されます。
発言
有効な識別子は、長さが 1 文字からCERTSTORE_MAX_IDENTIFIER_LENGTH文字までの一意の文字列である必要があります。 identifer では、次の文字が有効です。
- 'A' から 'Z'
- 'a' から 'z'
- '0' から '9'
- '.' または '-' または '_'
注意
証明書 ID はシステム全体であるため、azsphere コマンドまたは新しい証明書を追加する関数呼び出しによって、以前のコマンドまたは関数呼び出しによって追加された証明書が上書きされ、ネットワーク接続エラーが発生する可能性があります。 明確な証明書の更新手順を開発し、証明書 ID を慎重に選択することを強くお勧めします。
Azure Sphere で証明書 ID を使用する 方法の詳細については、「証明書 ID」を参照してください。
アプリケーション マニフェストの要件
アプリケーション マニフェストには、CertStore 機能が含まれている必要があります。