función CertStore_InstallClientCertificate
Encabezado: #include <applibs/certstore.h>
Instala un certificado de cliente que consta de un certificado público y una clave privada con el id. especificado. El id. se puede utilizar para hacer referencia al certificado en otras funciones. Si ya hay algún tipo de certificado instalado con el mismo id., se reemplazará por el nuevo certificado.
int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);
Parámetros
identifier
El id. del certificado.certBlob
Puntero a un blob que contiene el certificado público en formato PEM. El blob solo debe contener el contenido entre las-----BEGIN...
etiquetas y-----END...
. Por ejemplo, las etiquetas de un certificado son-----BEGIN CERTIFICATE-----
y-----END CERTIFICATE-----
.certBlobLength
La longitud del blob del certificado, sin incluir el carácter de terminador nulo.privateKeyBlob
Puntero a un blob que contiene la clave privada en formato PEM.privateKeyBlobLength
La longitud del blob del certificado, sin incluir el carácter de terminador nulo.privateKeyPassword
Puntero a una matriz de caracteres terminada en null que contiene la contraseña de clave privada. La longitud de la matriz debe ser menor o igual que CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH bytes. Si está cifrada, se requiereprivateKeyBlob
una contraseña.
Errores
Devuelve -1 si se encuentra un error y se establece errno
en el valor de error.
EACCES: la operación no está permitida porque la funcionalidad CertStore no está establecida en el manifiesto de la aplicación.
EAGAIN: el componente de almacén de certificados de OS aún no está listo.
EFAULT: el
certBlob
parámetro ,identifier
oprivateKeyBlob
es NULL.EINVAL: el
identifier
parámetro no termina en NULL,certBlob
oprivateKeyBlob
incluye datos no válidos.ENOSPC: no hay suficiente espacio en el almacenamiento de certificados para este certificado.
ERANGE: o
certBlobLength
privateKeyBlobLength
es cero o mayor que CERTSTORE_MAX_CERT_SIZE o laprivateKeyPassword
longitud es mayor que CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH.
También se puede especificar cualquier otro errno
error; estos errores no son deterministas y no hay ninguna garantía de que el mismo comportamiento se conservará a través de las actualizaciones del sistema.
Valor devuelto
Devuelve 0 para éxito o -1 para error, en cuyo caso errno
se establece en el valor de error.
Observaciones
Un identificador válido debe ser una cadena única de uno a CERTSTORE_MAX_IDENTIFIER_LENGTH caracteres de longitud. Los siguientes caracteres son válidos en un identifer:
- "A" a "Z"
- De 'a' a 'z'
- De '0' a '9'
- '.' o '-' o '_'
Precaución
Dado que los id. de certificado son de todo el sistema, un comando azsphere o una llamada de función que agrega un certificado nuevo puede sobrescribir un certificado agregado por una llamada de función o comando anterior, lo que puede provocar errores en la conexión de red. Le recomendamos encarecidamente que desarrolle procedimientos claros de actualización de certificados y elija cuidadosamente los identificadores de certificado.
Consulte Identificadores de certificado para obtener más información sobre cómo Azure Sphere usa identificadores de certificado.
Requisitos del manifiesto de la aplicación
El manifiesto de la aplicación debe incluir la funcionalidad CertStore.