Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

已更新 2025年7月

corePKCS11

简介

corePKCS11 是基于软件的 PKCS #11 应用程序编程接口 (API) 子集的模拟实现 。在生产设备转向特定安全硬件实现之前, 该系统可实现独立于硬件的快速原型设计和开发。

PKCS #11external_link 是一种标准化且广泛使用的 API, 用于操作常见的加密对象。它之所以重要, 是因为它所规定的函数允许应用程序软件使用、创建、修改和删除加密对象, 而无需将这些对象暴露在应用程序的内存中。例如,FreeRTOS AWS 参考集成使用 PKCS #11 API 的一个小型子集, 除其他外,可访问创建网络连接所需的密钥(私钥), 该网络连接由传输层安全external_link (TLS)协议进行验证和保护,应用程序永远不会“看到”密钥。由 OASIS PKCS#11 技术委员会external_link 负责对 PKCS #11 进行维护。

一般来说,安全加密处理器(如可信平台模块(TPM)、硬件安全 模块(HSM)、安全元件或任何其他类型的安全硬件 Enclave)的供应商 都会随硬件一起发布 PKCS #11 实现。因此,只模拟 corePKCS11 软件的目的是 提供一个独立于硬件的 PKCS #11 实现,供开发使用, 然后再在生产设备中切换到特定于安全硬件的实现。

由于 PKCS #11 接口已被定义为 PKCS #11 规范external_link的一部分, 因此用另一种实现方法替换该库时, 由于接口不会发生变化,因此只需很少的移植工作。可以用与 corePKCS #11 一起发布的系统测试 来验证硬件特定的 PKCS #11 实现与 corePKCS11 的行为相同。

corePKCS11 代码大小(通过 ARM Cortex-M 的 GCC 生成的示例)

文件使用 -O1 优化使用 -Os 优化
core_pkcs11.c0.8 K0.8K
core_pki_utils.c0.5K0.3K
core_pkcs11_mbedtls.c8.9K7.5K
总估算10.2K8.6K