CertStore_InstallRootCACertificate函数
标头: #include <applibs/certstore.h>
安装由 PEM 格式的公共证书组成的根 CA 证书,并为证书分配 ID。 然后,该 ID 可用于引用其他函数中的证书。 如果已安装具有相同 ID 的任何类型的证书,则会将其替换为新证书。
int CertStore_InstallRootCACertificate(const char *identifier, const char *certBlob,
size_t certBlobLength);
参数
identifier
证书的 ID。certBlob
指向包含 PEM 格式的公共证书的 Blob 的指针。certBlobLength
证书 Blob 的长度,不包括 null 终止符字符。
错误
如果遇到错误并设置为 errno
错误值,则返回 -1。
EACCES:不允许此操作,因为应用程序清单中未设置 CertStore 功能。
EAGAIN:OS 证书存储组件尚未准备就绪。
EFAULT:
certBlob
或identifier
为 NULL。EINVAL:
identifier
参数不以 NULL 结尾,或certBlob
包含无效字符。ENOSPC:证书存储中没有足够的空间用于此证书。
ERANGE:
certBlobLength
为零或大于 CERTSTORE_MAX_CERT_SIZE。
还可以指定任何其他 errno
错误;此类错误不是确定性的,也不能保证通过系统更新保留相同的行为。
返回值
如果成功,则返回 0,如果失败,则返回 -1,在这种情况下 errno
,将 设置为错误值。
言论
有效标识符必须是长度为 1 到 CERTSTORE_MAX_IDENTIFIER_LENGTH 个字符的唯一字符串。 以下字符在标识符中有效:
- “A”到“Z”
- “a”到“z”
- “0”到“9”
- “.”或“-”或“_”
谨慎
由于证书 ID 是系统范围的,因此添加新证书的 az sphere
命令或函数调用可能会覆盖先前的命令或函数调用添加的证书,这可能会导致网络连接失败。 强烈建议你制定明确的证书更新过程,并仔细选择证书 ID。
有关 Azure Sphere 如何使用 证书 ID 的详细信息,请参阅证书 ID。
应用程序清单要求
应用程序清单必须包含 CertStore 功能。