Compartilhar via


função CertStore_InstallRootCACertificate

Cabeçalho: #include <applibs/certstore.h>

Instala um certificado de AC Raiz que consiste em um certificado público no formato PEM e atribui uma ID ao certificado. Em seguida, a ID pode ser usada para consultar o certificado em outras funções. Se qualquer tipo de certificado já estiver instalado com a mesma ID, ele será substituído pelo novo certificado.

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

Parâmetros

  • identifier A ID do certificado.

  • certBlob Um ponteiro para um blob que contém o certificado público no formato PEM.

  • certBlobLength O comprimento do blob de certificado, não incluindo o caractere null-terminator.

Erros

Retorna -1 se um erro for encontrado e definir errno como o valor do erro.

  • EACCES: a operação não é permitida porque o recurso CertStore não está definido no manifesto do aplicativo.

  • EAGAIN: o componente do certstore do sistema operacional ainda não está pronto.

  • EFAULT: o certBlob ou identifier é NULL.

  • EINVAL: o identifier parâmetro não é encerrado por NULL ou inclui certBlob caracteres inválidos.

  • ENOSPC: não há espaço suficiente no armazenamento de certificados para este certificado.

  • ERANGE: o certBlobLength é zero ou maior que CERTSTORE_MAX_CERT_SIZE.

Qualquer outro errno também pode ser especificado; esses erros não são determinísticos e não há garantia de que o mesmo comportamento será mantido por meio de atualizações do sistema.

Valor retornado

Retorna 0 para êxito ou -1 para falha, nesse caso errno é definido como o valor do erro.

Observações

Um identificador válido deve ser uma cadeia de caracteres exclusiva de um para CERTSTORE_MAX_IDENTIFIER_LENGTH caracteres de comprimento. Os seguintes caracteres são válidos em um identifer:

  • 'A' para 'Z'
  • 'a' para 'z'
  • '0' a '9'
  • '.' ou '-' ou '_'

Cuidado

Como as IDs de certificado são em todo o sistema, um az sphere comando ou uma chamada de função que adiciona um novo certificado pode substituir um certificado que foi adicionado por um comando ou chamada de função anterior, potencialmente causando falhas de conexão de rede. Recomendamos que você desenvolva procedimentos claros de atualização de certificado e escolha as IDs de certificado cuidadosamente.

Consulte IDs de certificado para obter mais informações sobre como o Azure Sphere usa IDs de certificado.

Requisitos de manifesto do aplicativo

O manifesto do aplicativo deve incluir o recurso CertStore.