Condividi tramite


CertStore_InstallClientCertificate

Intestazione: #include <applicazioni/certstore.h>

Installa un certificato client costituito da un certificato pubblico e una chiave privata con l'ID specificato. L'ID può quindi essere usato per fare riferimento al certificato in altre funzioni. Se un tipo di certificato è già installato con lo stesso ID, verrà sostituito con il nuovo certificato.

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

Parametri

  • identifier ID del certificato.

  • certBlob Puntatore a un BLOB che contiene il certificato pubblico in formato PEM. Il BLOB deve contenere solo il contenuto tra i -----BEGIN... tag e -----END... . Ad esempio, i tag per un certificato sono -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----.

  • certBlobLength Lunghezza del BLOB del certificato, senza includere il carattere di terminazione Null.

  • privateKeyBlob Puntatore a un BLOB che contiene la chiave privata in formato PEM.

  • privateKeyBlobLength Lunghezza del BLOB del certificato, senza includere il carattere di terminazione Null.

  • privateKeyPassword Puntatore a una matrice di caratteri con terminazione nulla che contiene la password della chiave privata. La lunghezza della matrice deve essere minore o uguale a CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH byte. Se è crittografata, è necessaria privateKeyBlob una password.

Errori

Restituisce -1 se si verifica un errore e imposta errno il valore di errore.

  • EACCES: l'operazione non è consentita perché la funzionalità CertStore non è impostata nel manifesto dell'applicazione.

  • EAGAIN: il componente OS certstore non è ancora pronto.

  • EFAULT: il certBlobparametro , identifiero privateKeyBlob è NULL.

  • EINVAL: il identifier parametro non è null-terminated, o certBlobprivateKeyBlob include dati non validi.

  • ENOSPC: lo spazio di archiviazione del certificato per questo certificato non è sufficiente.

  • ERANGE: il certBlobLength valore o privateKeyBlobLength è uguale a zero o maggiore di CERTSTORE_MAX_CERT_SIZE o la privateKeyPassword lunghezza è maggiore di CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH.

Potrebbero anche essere specificati altri errno errori. Tali errori non sono deterministici e non vi è alcuna garanzia che lo stesso comportamento verrà mantenuto tramite gli aggiornamenti di sistema.

Valore restituito

Restituisce 0 per operazione riuscita o -1 per errore, nel qual caso errno è impostato sul valore di errore.

Osservazioni

Un identificatore valido deve essere una stringa univoca di lunghezza da uno a CERTSTORE_MAX_IDENTIFIER_LENGTH caratteri. In un identifer sono validi i caratteri seguenti:

  • 'A' a 'Z'
  • 'a' a 'z'
  • '0' a '9'
  • '.' oppure '-' o '_'

Attenzione

Poiché gli ID certificato sono a livello di sistema, un az sphere comando o una chiamata di funzione che aggiunge un nuovo certificato può sovrascrivere un certificato aggiunto da una chiamata di comando o funzione precedente, causando potenzialmente errori di connessione di rete. È consigliabile sviluppare procedure di aggiornamento dei certificati chiare e scegliere con attenzione gli ID certificato.

Per altre informazioni su come Azure Sphere usa gli ID certificato, vedere ID certificato .

Requisiti del manifesto dell'applicazione

Il manifesto dell'applicazione deve includere la funzionalità CertStore.