CertStore_InstallClientCertificate fonction
En-tête : #include <applibs/certstore.h>
Installe un certificat client qui se compose d’un certificat public et d’une clé privée avec l’ID spécifié. L’ID peut ensuite être utilisé pour faire référence au certificat dans d’autres fonctions. Si un type de certificat est déjà installé avec le même ID, il est remplacé par le nouveau certificat.
int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);
Paramètres
identifier
ID du certificat.certBlob
Pointeur vers un objet blob qui contient le certificat public au format PEM. L’objet blob doit uniquement contenir le contenu entre les-----BEGIN...
balises et .-----END...
Par exemple, les balises d’un certificat sont-----BEGIN CERTIFICATE-----
et-----END CERTIFICATE-----
.certBlobLength
Longueur de l’objet blob de certificat, sans inclure le caractère de fin null.privateKeyBlob
Pointeur vers un objet blob qui contient la clé privée au format PEM.privateKeyBlobLength
Longueur de l’objet blob de certificat, sans inclure le caractère de fin null.privateKeyPassword
Pointeur vers un tableau de caractères terminé par null qui contient le mot de passe de clé privée. La longueur du tableau doit être inférieure ou égale à CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH octets. Un mot de passe est requis siprivateKeyBlob
est chiffré.
Erreurs
Retourne -1 si une erreur est rencontrée et définit errno
sur la valeur d’erreur.
EACCES : l’opération n’est pas autorisée, car la fonctionnalité CertStore n’est pas définie dans le manifeste de l’application.
EAGAIN : le composant certstore du système d’exploitation n’est pas encore prêt.
EFAULT : le
certBlob
paramètre ,identifier
ouprivateKeyBlob
a la valeur NULL.EINVAL : le
identifier
paramètre n’est pas terminé par NULL, ouprivateKeyBlob
inclut descertBlob
données non valides.ENOSPC : il n’y a pas suffisamment d’espace dans le stockage de certificat pour ce certificat.
ERANGE :
certBlobLength
ouprivateKeyBlobLength
est égal à zéro ou supérieur à CERTSTORE_MAX_CERT_SIZE ou laprivateKeyPassword
longueur est supérieure à CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH.
Toutes les autres errno
peuvent également être spécifiées ; ces erreurs ne sont pas déterministes et il n’existe aucune garantie que le même comportement sera conservé via les mises à jour système.
Valeur de retour
Retourne 0 pour la réussite, ou -1 en cas d’échec, auquel cas errno
est défini sur la valeur d’erreur.
Remarques
Un identificateur valide doit être une chaîne unique d’un à CERTSTORE_MAX_IDENTIFIER_LENGTH caractères de longueur. Les caractères suivants sont valides dans un identificateur :
- 'A' à 'Z'
- 'a' à 'z'
- '0' à '9'
- '.' ou '-' ou '_'
Attention
Étant donné que les ID de certificat sont à l’échelle du système, une commande azsphere ou un appel de fonction qui ajoute un nouveau certificat peut remplacer un certificat qui a été ajouté par une commande ou un appel de fonction antérieur, ce qui peut entraîner des échecs de connexion réseau. Nous vous recommandons vivement de développer des procédures de mise à jour de certificat claires et de choisir soigneusement les ID de certificat.
Pour plus d’informations sur la façon dont Azure Sphere utilise les ID de certificat, consultez ID de certificat.
Exigences du manifeste d’application
Le manifeste de l’application doit inclure la fonctionnalité CertStore.