Dela via


funktionen CertStore_InstallClientCertificate

Sidhuvud: #include <applibs/certstore.h>

Installerar ett klientcertifikat som består av ett offentligt certifikat och en privat nyckel med angivet ID. ID:et kan sedan användas för att referera till certifikatet i andra funktioner. Om någon typ av certifikat redan har installerats med samma ID ersätts det med det nya certifikatet.

int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);

Parametrar

  • identifier Certifikatets ID.

  • certBlob En pekare till en blob som innehåller det offentliga certifikatet i PEM-format. Blobben får bara innehålla innehållet mellan taggarna -----BEGIN... och -----END... . Taggarna för ett certifikat är -----BEGIN CERTIFICATE----- till exempel och -----END CERTIFICATE-----.

  • certBlobLength Längden på certifikat-blobben, inklusive null-avslutningstecknet.

  • privateKeyBlob En pekare till en blob som innehåller den privata nyckeln i PEM-format.

  • privateKeyBlobLength Längden på certifikat-blobben, inklusive null-avslutningstecknet.

  • privateKeyPassword En pekare till en null-avslutad teckenmatris som innehåller lösenordet för den privata nyckeln. Matrisens längd måste vara mindre än eller lika med CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH byte. Ett lösenord krävs om privateKeyBlob det är krypterat.

Fel

Returnerar -1 om ett fel uppstår och anger errno felvärdet.

  • EACCES: åtgärden är inte tillåten eftersom certStore-funktionen inte har angetts i programmanifestet.

  • EAGAIN: OS certstore-komponenten är inte klar än.

  • EFAULT: parametern certBlob, identifiereller privateKeyBlob är NULL.

  • EINVAL: parametern identifier är inte NULL-avslutad, certBlob eller privateKeyBlob innehåller ogiltiga data.

  • ENOSPC: det finns inte tillräckligt med utrymme i certifikatlagringen för certifikatet.

  • ERANGE: eller certBlobLengthprivateKeyBlobLength är noll eller större än CERTSTORE_MAX_CERT_SIZE eller privateKeyPassword längden är större än CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH.

errno Andra kan också anges, sådana fel är inte deterministiska och det finns ingen garanti för att samma beteende behålls via systemuppdateringar.

Returvärde

Returnerar 0 för lyckat resultat, eller -1 för fel, i vilket fall errno är inställt på felvärdet.

Anmärkningar

En giltig identifierare måste vara en unik sträng från en till CERTSTORE_MAX_IDENTIFIER_LENGTH tecken. Följande tecken är giltiga i en identifer:

  • 'A' till 'Z'
  • 'a' till 'z'
  • '0' till '9'
  • '.' eller '-' eller '_'

Försiktighet

Eftersom certifikat-ID:t är systemomfattande kan ett azsfärkommando eller ett funktionsanrop som lägger till ett nytt certifikat skriva över ett certifikat som har lagts till av ett tidigare kommando- eller funktionsanrop, vilket kan orsaka fel i nätverksanslutningen. Vi rekommenderar starkt att du utvecklar tydliga procedurer för certifikatuppdatering och väljer certifikat-ID:er noggrant.

Mer information om hur Azure Sphere använder certifikat-ID finns i Certifikat-ID :er.

Krav för programmanifest

Programmanifestet måste innehålla CertStore-funktionen.