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: certBlobidentifier 为 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 功能。