CertStore_InstallClientCertificate funkce
Hlavička: #include <applibs/certstore.h>
Nainstaluje klientský certifikát, který se skládá z veřejného certifikátu a privátního klíče se zadaným ID. ID se pak dá použít k odkaz na certifikát v jiných funkcích. Pokud už je nějaký typ certifikátu se stejným ID nainstalovaný, nahradí se novým certifikátem.
int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);
Parametry
identifier
ID certifikátu.certBlob
Ukazatel na objekt blob, který obsahuje veřejný certifikát ve formátu PEM. Objekt blob musí obsahovat pouze obsah mezi značkami-----BEGIN...
a-----END...
. Například značky pro certifikát jsou-----BEGIN CERTIFICATE-----
a-----END CERTIFICATE-----
.certBlobLength
Délka objektu blob certifikátu bez znaku ukončovací znak nullprivateKeyBlob
Ukazatel na objekt blob, který obsahuje privátní klíč ve formátu PEM.privateKeyBlobLength
Délka objektu blob certifikátu bez znaku ukončovací znak nullprivateKeyPassword
Ukazatel na pole znaků s ukončenou hodnotou null, které obsahuje heslo privátního klíče. Délka pole musí být menší nebo rovna CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH bajtů. Heslo se vyžaduje, pokudprivateKeyBlob
je zašifrované.
Chyby
Vrátí hodnotu -1, pokud dojde k chybě, a nastaví errno
se na chybovou hodnotu.
EACCES: Operace není povolená, protože v manifestu aplikace není nastavená funkce CertStore.
EAGAIN: Komponenta certstore operačního systému ještě není připravená.
EFAULT:
certBlob
Parametr ,identifier
neboprivateKeyBlob
má hodnotu NULL.EINVAL:
identifier
Parametr není null-terminated,certBlob
neboprivateKeyBlob
obsahuje neplatná data.ENOSPC: V úložišti certifikátů pro tento certifikát není dostatek místa.
ERANGE:
certBlobLength
hodnota neboprivateKeyBlobLength
je nula nebo větší než CERTSTORE_MAX_CERT_SIZE neboprivateKeyPassword
je délka větší než CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH.
Je také možné zadat jakékoli jiné errno
chyby. Tyto chyby nejsou deterministické a neexistuje žádná záruka, že se stejné chování zachová prostřednictvím aktualizací systému.
Vrácená hodnota
Vrátí hodnotu 0 pro úspěch nebo -1 pro selhání. V tomto případě errno
je nastavená na chybovou hodnotu.
Poznámky
Platným identifikátorem musí být jedinečný řetězec o délce od jednoho do CERTSTORE_MAX_IDENTIFIER_LENGTH znaků. Následující znaky jsou platné v identiferu:
- A až Z
- "a" až "z"
- Od 0 do 9
- '.' nebo '-' nebo '_'
Pozor
Vzhledem k tomu, že ID certifikátů jsou pro celý systém, příkaz azsphere nebo volání funkce, které přidává nový certifikát, může přepsat certifikát přidaný dřívějším příkazem nebo voláním funkce, což může způsobit selhání síťového připojení. Důrazně doporučujeme vyvinout jasné postupy aktualizace certifikátů a pečlivě zvolit ID certifikátů.
Další informace o tom, jak Azure Sphere používá ID certifikátů, najdete v tématu ID certifikátů.
Požadavky manifestu aplikace
Manifest aplikace musí obsahovat funkci CertStore.