CertStore_InstallRootCACertificate-Funktion

Header: #include <applibs/certstore.h>

Installiert ein Zertifikat der Stammzertifizierungsstelle, das aus einem öffentlichen Zertifikat im PEM-Format besteht, und weist dem Zertifikat eine ID zu. Die ID kann dann verwendet werden, um in anderen Funktionen auf das Zertifikat zu verweisen. Wenn bereits ein Zertifikattyp mit derselben ID installiert ist, wird es durch das neue Zertifikat ersetzt.

int CertStore_InstallRootCACertificate(const char *identifier, const char *certBlob,
                                       size_t certBlobLength);

Parameter

  • identifier Die ID des Zertifikats.

  • certBlob Ein Zeiger auf ein Blob, das das öffentliche Zertifikat im PEM-Format enthält.

  • certBlobLength Die Länge des Zertifikatblobs, ohne das Nullabschlusszeichen.

Fehler

Gibt -1 zurück, wenn ein Fehler auftritt, und legt auf den Fehlerwert fest errno .

  • EACCES: Der Vorgang ist nicht zulässig, da die CertStore-Funktion im Anwendungsmanifest nicht festgelegt ist.

  • EAGAIN: Die Zertifikatspeicherkomponente des Betriebssystems ist noch nicht bereit.

  • EFAULT: oder certBlobidentifier ist NULL.

  • EINVAL: Der identifier Parameter ist nicht mit NULL beendet, oder der certBlob enthält ungültige Zeichen.

  • ENOSPC: Im Zertifikatspeicher ist nicht genügend Speicherplatz für dieses Zertifikat vorhanden.

  • ERANGE: ist certBlobLength null oder größer als CERTSTORE_MAX_CERT_SIZE.

Auch andere errno Fehler können angegeben werden. Solche Fehler sind nicht deterministisch, und es gibt keine Garantie, dass das gleiche Verhalten durch Systemupdates beibehalten wird.

Rückgabewert

Gibt 0 für erfolg oder -1 für Fehler zurück. In diesem Fall errno wird auf den Fehlerwert festgelegt.

Bemerkungen

Ein gültiger Bezeichner muss eine eindeutige Zeichenfolge zwischen einem und CERTSTORE_MAX_IDENTIFIER_LENGTH Zeichen sein. Die folgenden Zeichen sind in einem Identifer gültig:

  • "A" bis "Z"
  • "a" bis "z"
  • "0" bis "9"
  • "." oder "-" oder "_"

Vorsicht

Da Zertifikat-IDs systemweit sind, kann ein azsphere-Befehl oder ein Funktionsaufruf, der ein neues Zertifikat hinzufügt, ein Zertifikat überschreiben, das von einem früheren Befehl oder Funktionsaufruf hinzugefügt wurde, was zu Netzwerkverbindungsfehlern führen kann. Es wird dringend empfohlen, eindeutige Prozeduren für die Zertifikataktualisierung zu entwickeln und Zertifikat-IDs sorgfältig auszuwählen.

Weitere Informationen zur Verwendung von Zertifikat-IDs in Azure Sphere finden Sie unter Zertifikat-IDs .

Anforderungen an das Anwendungsmanifest

Das Anwendungsmanifest muss die CertStore-Funktion enthalten.