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, è necessariaprivateKeyBlob
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
certBlob
parametro ,identifier
oprivateKeyBlob
è NULL.EINVAL: il
identifier
parametro non è null-terminated, ocertBlob
privateKeyBlob
include dati non validi.ENOSPC: lo spazio di archiviazione del certificato per questo certificato non è sufficiente.
ERANGE: il
certBlobLength
valore oprivateKeyBlobLength
è uguale a zero o maggiore di CERTSTORE_MAX_CERT_SIZE o laprivateKeyPassword
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.