функция CertStore_InstallRootCACertificate

Заголовок: #include <applibs/certstore.h>

Устанавливает сертификат корневого ЦС, состоящий из общедоступного сертификата в формате PEM, и назначает сертификату идентификатор. Затем идентификатор можно использовать для ссылки на сертификат в других функциях. Если сертификат любого типа уже установлен с тем же идентификатором, он будет заменен новым сертификатом.

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

Параметры

  • identifier Идентификатор сертификата.

  • certBlob Указатель на большой двоичный объект, содержащий открытый сертификат в формате PEM.

  • certBlobLength Длина большого двоичного объекта сертификата, не включая символ конца null.

Ошибки

Возвращает значение -1 при обнаружении ошибки и задает errno значение ошибки.

  • EACCES: операция запрещена, так как возможность CertStore не задана в манифесте приложения.

  • EAGAIN: компонент certstore ОС еще не готов.

  • EFAULT: или certBlobidentifier имеет значение NULL.

  • EINVAL: identifier параметр не завершается null, или содержит недопустимые certBlob символы.

  • ENOSPC: недостаточно места в хранилище сертификатов для этого сертификата.

  • ERANGE: certBlobLength значение равно нулю или больше CERTSTORE_MAX_CERT_SIZE.

Можно также указать любой другой errno вариант. Такие ошибки не являются детерминированными, и нет никакой гарантии, что такое же поведение будет сохранено при обновлении системы.

Возвращаемое значение

Возвращает значение 0 для успешного выполнения или -1 для сбоя. В этом случае errno задается значение ошибки.

Замечания

Допустимый идентификатор должен быть уникальной строкой от одного до CERTSTORE_MAX_IDENTIFIER_LENGTH символов в длину. Следующие символы допустимы в идентификаторе:

  • От "A" до "Z"
  • от "a" до "z"
  • От "0" до "9"
  • "." или "-" или "_"

Осторожностью

Так как идентификаторы сертификатов являются общесистемными, az sphere команда или вызов функции, добавляющий новый сертификат, может перезаписать сертификат, добавленный ранее командой или вызовом функции, что может привести к сбоям сетевого подключения. Настоятельно рекомендуется разработать четкие процедуры обновления сертификатов и тщательно выбирать идентификаторы сертификатов.

Дополнительные сведения о том, как Azure Sphere использует идентификаторы сертификатов, см. в разделе Идентификаторы сертификатов.

Требования к манифесту приложения

Манифест приложения должен включать возможность CertStore.