функция 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: или
certBlob
identifier
имеет значение 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"
- "." или "-" или "_"
Осторожностью
Так как идентификаторы сертификатов являются общесистемными, команда azsphere или вызов функции, добавляющий новый сертификат, может перезаписать сертификат, добавленный ранее командой или вызовом функции, что может привести к сбоям сетевого подключения. Настоятельно рекомендуется разработать четкие процедуры обновления сертификатов и тщательно выбирать идентификаторы сертификатов.
Дополнительные сведения о том, как Azure Sphere использует идентификаторы сертификатов, см. в разделе Идентификаторы сертификатов.
Требования к манифесту приложения
Манифест приложения должен включать возможность CertStore.