CertStore_InstallClientCertificate functie
Header: #include <applibs/certstore.h>
Installeert een clientcertificaat dat bestaat uit een openbaar certificaat en een persoonlijke sleutel met de opgegeven id. De id kan vervolgens worden gebruikt om te verwijzen naar het certificaat in andere functies. Als een type certificaat al is geïnstalleerd met dezelfde id, wordt dit vervangen door het nieuwe certificaat.
int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);
Parameters
identifier
De id van het certificaat.certBlob
Een aanwijzer naar een blob die het openbare certificaat in PEM-indeling bevat. De blob mag alleen de inhoud tussen de-----BEGIN...
tags en-----END...
bevatten. De tags voor een certificaat zijn-----BEGIN CERTIFICATE-----
bijvoorbeeld en-----END CERTIFICATE-----
.certBlobLength
De lengte van de certificaat-blob, exclusief het null-terminatorteken.privateKeyBlob
Een aanwijzer naar een blob die de persoonlijke sleutel in PEM-indeling bevat.privateKeyBlobLength
De lengte van de certificaat-blob, exclusief het null-terminatorteken.privateKeyPassword
Een aanwijzer naar een matrix met null-beëindigde tekens die het wachtwoord voor de persoonlijke sleutel bevat. De lengte van de matrix moet kleiner zijn dan of gelijk aan CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH bytes. Een wachtwoord is vereist alsprivateKeyBlob
deze is versleuteld.
Fouten
Retourneert -1 als er een fout optreedt en wordt ingesteld errno
op de foutwaarde.
EACCES: de bewerking is niet toegestaan omdat de CertStore-mogelijkheid niet is ingesteld in het toepassingsmanifest.
EAGAIN: het besturingssysteemcertificaatonderdeel is nog niet gereed.
EFAULT: de
certBlob
parameter ,identifier
, ofprivateKeyBlob
is NULL.EINVAL: de
identifier
parameter is niet null-beëindigd, decertBlob
ofprivateKeyBlob
bevat ongeldige gegevens.ENOSPC: er is onvoldoende ruimte in de certificaatopslag voor dit certificaat.
ERANGE: de
certBlobLength
ofprivateKeyBlobLength
is nul of groter dan CERTSTORE_MAX_CERT_SIZE of deprivateKeyPassword
lengte is groter dan CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH.
errno
Andere fouten kunnen ook worden opgegeven; dergelijke fouten zijn niet deterministisch en er is geen garantie dat hetzelfde gedrag wordt behouden via systeemupdates.
Retourwaarde
Retourneert 0 voor geslaagd, of -1 voor fout, in welk geval errno
is ingesteld op de foutwaarde.
Opmerkingen
Een geldige id moet een unieke tekenreeks zijn van één tot CERTSTORE_MAX_IDENTIFIER_LENGTH tekens lang. De volgende tekens zijn geldig in een identifer:
- 'A' naar 'Z'
- 'a' naar 'z'
- '0' naar '9'
- '.' of '-' of '_'
Voorzichtigheid
Omdat certificaat-id's systeembreed zijn, kan een az sphere
opdracht of functieaanroep waarmee een nieuw certificaat wordt toegevoegd een certificaat overschrijven dat is toegevoegd door een eerdere opdracht of functieaanroep, waardoor netwerkverbindingsfouten kunnen optreden. We raden u ten zeerste aan duidelijke procedures voor het bijwerken van certificaten te ontwikkelen en certificaat-id's zorgvuldig te kiezen.
Zie Certificaat-id's voor meer informatie over hoe Azure Sphere certificaat-id's gebruikt.
Vereisten voor toepassingsmanifest
Het toepassingsmanifest moet de CertStore-mogelijkheid bevatten.