Delen via


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 als privateKeyBlob 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 certBlobparameter , identifier, of privateKeyBlob is NULL.

  • EINVAL: de identifier parameter is niet null-beëindigd, de certBlob of privateKeyBlob bevat ongeldige gegevens.

  • ENOSPC: er is onvoldoende ruimte in de certificaatopslag voor dit certificaat.

  • ERANGE: de certBlobLength of privateKeyBlobLength is nul of groter dan CERTSTORE_MAX_CERT_SIZE of de privateKeyPassword 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.