> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 开发可信应用和客户端应用

您可以使用全球平台接口中的默认文件开发和运行可信应用及客户端应用。可信应用在安全的可信执行环境 (TEE) 中运行，以保护代码和数据的完整性。而客户端应用在普通操作系统中运行，通过 TEE 客户端 API 来执行安全服务。

此功能仅面向拥有授权访问权限的许可用户开放，可用于开发和执行可信应用和客户端应用。如果您具有访问权限，请参见 [Qualcomm Linux Security Guide - Addendum](https://dragonwingdocs.qualcomm.com/Addendum-docs/Security/security-addendum-overview)。

如需开发提供基于硬件的证明、零接触设备配置以及芯片组功能管理的应用，请参见 [Qualcomm Linux Wireless Edge Services Guide](https://dragonwingdocs.qualcomm.com/Addendum-docs/Wireless-Edge-Services/addendum/Qualcomm-WES-overview)。此功能仅面向拥有授权访问权限的许可用户开放。

## **安全 API**

安全 API 提供了与 Linux 内核和设备硬件交互的能力。它们还便于运行各种可以在可信执行环境中运行的软件服务。

### **用户空间 API**

用户空间 API 是 Linux 操作系统用来与内核交互所访问的函数。

此功能仅面向拥有授权访问权限的许可开发者开放。如果您具有访问权限，请参见 [Qualcomm Linux Security Guide - Addendum](https://dragonwingdocs.qualcomm.com/Addendum-docs/Security/addendum/user-space-apis)。

### **面向 PKCS#11 公开的接口**

请参见 [Cryptographic Token Interface Usage Guide](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html) 和 [Cryptographic Token Interface Base Specification](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html)。

### **内核 API**

内核 API 是允许 Qualcomm Linux 软件与设备硬件交互的函数。

### **加密 API**

`qcrypto.ko` 驱动位于设备上的 `/lib/modules/<version>/kernel/drivers/crypto/qce`。内核级和用户级 API 都可以访问加密引擎。有关 API 的信息，请参见内核加密文档 [Index of crypto documentation](https://www.kernel.org/doc/Documentation/crypto/)。

支持以下加密算法：

* RFC 4309 (CCCM (AES))
* CCM (AES)
* Authenc (HMAC (SHA-256), CBC (AES))
* Authenc (HMAC (SHA-256), CBC (DES3\_EDE))
* Authenc (HMAC (SHA-256), CBC (DES))
* Authenc (HMAC (SHA-1), CBC (DES3\_EDE))
* Authenc (HMAC (SHA-1), CBC (DES))
* HMAC (SHA-256)
* HMAC (SHA-1)
* SHA-256
* SHA-1
* CBC (DES3\_EDE)
* ECB (DES3\_EDE)
* CBC (DES)
* ECB (DES)
* XTS (AES)
* CTR (AES)
* CBC (AES)
* ECB (AES)

有关 Qualcomm 加密核的更多信息，请参见[加密](./security-features#cryptography)。

如需更多信息，请参见 [Kernel.org](http://Kernel.org)[ ➝ Crypto API](https://www.kernel.org/doc/html/v6.6/crypto/index.html)。

### **硬件随机数生成器 API**

Qualcomm Linux 通过 `qcom-rng` Linux 驱动支持真随机数生成器。由 `qcom-rng` 生成的随机数使用内核加密来实现随机数生成器 API。

在用户空间中，可以通过 `/dev/hwrng` 访问随机数。有关硬件随机数生成器的更多信息，请参见内核文档 [Linux support for random number generator in i8xx chipsets](https://www.kernel.org/doc/Documentation/hw_random.txt)。

有关 PRNG API 的信息，请参见 [Qualcomm Linux Security Guide - Addendum](https://dragonwingdocs.qualcomm.com/Addendum-docs/Security/addendum/prng-apis)。此功能仅面向拥有授权访问权限的许可开发者开放。

### **Qualcomm TEE API**

Qualcomm TEE 提供一组 API，为安全应用提供服务。这些服务包括堆管理、日志记录、安全文件系统访问、监听器交互，以及加密和哈希函数。

此功能仅面向拥有授权访问权限的许可开发者开放。如果您具有访问权限，请参见 [Qualcomm Linux Security Guide - Addendum](https://dragonwingdocs.qualcomm.com/Addendum-docs/Security/addendum/qualcomm-tee-apis)。

## **使用安全服务示例**

运行安全服务时，使用不同接口加载客户端应用和可信应用的示例代码和示例仅面向拥有授权访问权限的许可用户开放。如果您具有访问权限，请参见 [Qualcomm Linux Security Guide - Addendum](https://dragonwingdocs.qualcomm.com/Addendum-docs/Security/addendum/use-security-services-examples)。

## **后续步骤**

* 要初始化和配置硬件以在 Linux 上安全运行，请参见[验证安全配置](verify-the-security-configurations-of-qualcomm-linux)。
* 要配置 Qualcomm TEE 以保护处理敏感数据并运行可信应用的设备，请参见[配置安全服务](configure)。
* 要自定义内存和 SEPolicy，请参见[自定义安全服务](customize-security-services)。
