wolfSSL/wolfssl-examples

GitHub: wolfSSL/wolfssl-examples

wolfSSL 轻量级 SSL/TLS 库的官方示例集合,涵盖 TLS/DTLS、证书管理、加密签名及多种嵌入式平台集成。

Stars: 283 | Forks: 202

# wolfSSL 示例应用程序 此仓库包含用 C 语言编写的示例应用程序,用于演示如何使用 wolfSSL 轻量级 SSL/TLS 库进行安全通信。 每个目录代表一个独特的主题(SSL/TLS、DTLS、PSK 等),并包含一个 Makefile 以及关于该主题的简单教程。 ## 当前示例 #### android (Android Studio 和 NDK 示例) 此目录包含的示例演示了如何在 Android 平台上使用 wolfSSL、wolfSSL JNI/JSSE 和 wolfCrypt JNI/JCE。示例使用带有 Gradle 的 Android Studio 或 Android NDK 独立工具链。 有关更多用法和详细信息,请参阅 [android/README.md](android/README.md)。
#### BTLE 此目录包含用于保护蓝牙低功耗链路(BTLE)安全的示例。BTLE 数据包很小且吞吐量低,因此这些示例演示了如何在不使用 BTLE 配对的情况下安全地交换数据。 有关更多用法和详细信息,请参阅 [btle/README.md](btle/README.md)。
#### can-bus 此目录包含一个示例回显服务器/客户端,演示了通过带有 ISO-TP 传输层的 CAN 总线使用 wolfSSL。它可以在 Linux 中与虚拟 CAN 总线一起使用。 有关更多用法和详细信息,请参阅 [can-bus/README.md](can-bus/README.md)。
#### certfields (X509 字段提取) 此目录包含的示例演示了如何使用 wolfSSL 读取 DER 编码的证书,并提取公钥和主题名称信息。 有关更多用法和详细信息,请参阅 [certfields/README.md](certfields/README.md)。
#### certgen (wolfSSL 证书生成) 此目录包含的示例演示了如何使用 wolfSSL 生成和签署证书。 有关更多用法和详细信息,请参阅 [certgen/README.md](certgen/README.md)。
#### certmanager (wolfSSL CertManager) 此目录包含的示例演示了如何使用 CertManager(证书管理器)功能。 有关更多用法和详细信息,请参阅 [certmanager/README.md](certmanager/README.md)。
#### crypto (wolfCrypt 示例) 此目录包含的示例演示了如何使用 wolfCrypt 功能通过不同的算法(aes、3des 等)加密文件。 有关更多用法和详细信息,请参阅 [crypto/README.md](crypto/README.md)。
#### CSharp (C# 封装示例) 此目录包含的示例演示了如何使用 C# 封装。 有关更多用法和详细信息,请参阅 [CSharp/README.md](CSharp/README.md)。
#### custom-io-callbacks (wolfSSL 自定义 IO 回调) 此目录包含的示例演示了如何使用自定义 IO 回调,以利用任何媒介建立 TLS 连接。 有关更多用法和详细信息,请参阅 [custom-io-callbacks/README.md](custom-io-callbacks/README.md)。
#### DTLS (Datagram TLS) 此目录包含使用 DTLS 的示例,其中的客户端和服务器示例演示了 UDP、DTLS、非阻塞、会话恢复和多线程。 在编译 wolfSSL 以配合这些示例使用时,需要启用 DTLS 支持来编译 wolfSSL: ``` cd wolfssl-[version] ./configure --enable-dtls ``` 此目录中的示例可以使用以下命令编译: ``` cd ./dtls make ``` 有关更多用法和详细信息,请参阅 [dtls/README.md](dtls/README.md)。
#### ecc (椭圆曲线加密) 此目录包含的示例演示了 wolfcrypt ECC 的各种用例。 有关更多用法和详细信息,请参阅 [ecc/README.md](ecc/README.md)。
#### ESP32 (Espressif) 此目录包含用于 Espressif ESP32 芯片的示例。 有关更多用法和详细信息,请参阅 [ESP32/README.md](ecc/README.md)。
#### embedded (嵌入式系统) 此目录包含的示例演示了通过缓冲区和使用 socket 进行通信的 TLS 客户端/服务器。 有关更多用法和详细信息,请参阅 [embedded/README.md](embedded/README.md)。
#### hash (wolfCrypt 哈希示例) 此目录包含的示例演示了如何使用 wolfCrypt 对输入文件进行哈希处理。 有关更多用法和详细信息,请参阅 [hash/README.md](hash/README.md)。
#### java (wolfJSSE 示例) 此目录包含的示例演示了在 wolfJSSE 中使用 HTTPS URL 以及示例密钥库。 有关更多用法和详细信息,请参阅 [java/README.md](java/README.md)。
#### mynewt (Apache Mynewt 示例) 此目录包含的示例演示了如何将 wolfSSL 与 Apache Mynewt OS 结合使用。 有关更多用法和详细信息,请参阅 [mynewt/README.md](mynewt/README.md)。
#### picotcp (picoTCP 示例) 此目录包含了一个通过 wolfSSL 自定义回调使用 picoTCP 创建的 TLS 服务器。 有关更多用法和详细信息,请参阅 [picotcp/README.md](picotcp/README.md)。
#### picotcp (picoTCP 示例) 此目录包含了一个通过 wolfSSL 自定义回调使用 picoTCP 创建的 TLS 服务器。 有关更多用法和详细信息,请参阅 [picotcp/README.md](picotcp/README.md)。
#### pk (Public-Key) 此目录包含的示例演示了各种 wolfCrypt 公钥功能(生成后存储和加载密钥、从私钥中提取公钥等)。 有关更多用法和详细信息,请参阅 [pk/README.md](pk/README.md)。
#### pkcs11 (PKCS #11) 此目录包含了使用 wolfSSL 的 PKCS #11 功能的示例,以及一个使用基于 PKCS 11 密钥的 TLS 服务器示例。 有关更多用法和详细信息,请参阅 [pkcs11/README.md](pkcs11/README.md)。
#### pkcs7 (PKCS #7) 此目录包含的示例应用程序演示了 [wolfSSL 嵌入式 SSL/TLS 库] 中包含的 wolfCrypt PKCS#7/CMS API 的用法。 它包含了多种不同内容类型(EncryptedData、SignedData、EnvelopedData、CompressedData)的示例,并演示了签名/加密以及验证/解密操作。 有关更多用法和详细信息,请参阅 [pkcs7/README.md](pkcs7/README.md)。
#### PUF (SRAM 物理不可克隆功能) 此目录包含一个裸机示例,演示了 wolfCrypt 的 SRAM PUF 支持。它使用带有 HKDF 密钥派生的 BCH(127,64,t=10) 模糊提取器,从 SRAM 内存的通电状态中派生出设备唯一的加密密钥。 在 NUCLEO-H563ZI (Cortex-M33) 上测试过。 有关更多用法和详细信息,请参阅 [puf/README.md](puf/README.md)。
#### PSK (Pre-Shared Keys) 此目录包含了使用 PSK 的示例,其中的客户端和服务器示例演示了 TCP/IP、PSK、非阻塞、会话恢复和多线程。 在编译 wolfSSL 以配合这些示例使用时,需要启用 PSK 支持来编译 wolfSSL: ``` cd wolfssl-[version] ./configure --enable-psk ``` 此目录中的示例可以使用以下命令编译: ``` cd ./psk make ``` 有关更多用法和详细信息,请参阅 [psk/README.md](psk/README.md)。
#### riot-os-posix-lwip (RIOT-OS) 此目录包含的示例演示了如何通过 RIOT-OS POSIX socket 使用 wolfSSL TLS socket。 有关更多用法和详细信息,请参阅 [riot-os-posix-lwip/README.md](riot-os-posix-lwip/README.md)。
#### RT1060 (i.MX RT1060-EVK) 此目录包含用于 i.MX RT1060-EVK 的 wolfCrypt 基准测试应用程序。 有关更多用法和详细信息,请参阅 [RT1060/README.md](RT1060/README.md)。
#### NXP SE050 此目录包含用于 NXP 的 SE050 的示例应用程序。这些示例已在带有 SE050 EdgeLock 的 Raspberry Pi 上进行了测试。 有关更多详细信息,请参阅 [SE050/README.md](SE050/README.md)。
#### SGX_Linux (Linux Enclave) 此目录包含一个用 C 语言编写的示例应用程序,演示了如何在 Linux 环境下将 wolfSSL 轻量级 SSL/TLS 库与一个简单的 Enclave 链接起来。该示例已在 Ubuntu 16.04 上进行了测试。 有关更多用法和详细信息,请参阅 [SGX_Linux/README.md](SGX_Linux/README.md)。
#### SGX_Windows (Windows Enclave) 此目录包含一个用 C++ 编写的示例应用程序,演示了如何在 Windows 环境下将 wolfSSL 轻量级 SSL/TLS 库与一个简单的 Enclave 链接起来。 有关更多用法和详细信息,请参阅 [SGX_Windows/README.md](SGX_Windows/README.md)。
#### signature (签名和验证示例) 此目录包含的示例演示了如何使用 wolfSSL 对二进制数据进行签名和验证(支持 RSA 和 ECC 签名,以及 MD2、MD4、MD5、SHA、SHA224、SHA256、SHA384 和 SHA512)。 有关更多用法和详细信息,请参阅 [signature/README.md](signature/README.md)。
#### tirtos_ccs_examples (TI-RTOS) 此目录包含的客户端/服务器示例演示了如何在 TI-RTOS 生态系统中使用 wolfSSL。 有关更多用法和详细信息,请参阅 [tirtos_ccs_examples/README.md](tirtos_ccs_examples/README.md)。
#### TLS 此目录包含了使用 SSL/TLS 的示例,其中的客户端和服务器示例演示了 TCP/IP、SSL/TLS、非阻塞、会话恢复和多线程。 此目录中的示例可以使用以下命令编译: ``` cd ./tls make ``` 有关更多用法和详细信息,请参阅 [tls/README.md](tls/README.md)。
#### utasker (uTasker wolfSSL 示例任务) 此目录包含的示例 uTasker 客户端和服务器任务演示了如何将 wolfSSL 与 uTasker 协议栈结合使用。这些任务已在 uTasker 模拟器上进行了测试。 有关更多用法和详细信息,请参阅 [utasker/README.md](utasker/README.md)。
#### uefi-static (wolfCrypt UEFI 应用程序示例) 此目录包含一个运行 wolfcrypt 测试的 UEFI 应用程序示例。 有关更多用法和详细信息,请参阅 [uefi-static/README.md](uefi-static/README.md)。
#### http-message-signatures (RFC 9421 HTTP 消息签名) 此目录包含的示例演示了使用 wolfCrypt Ed25519 的 RFC 9421 HTTP 消息签名,包括签名示例、客户端/服务器演示以及 RFC 9421 附录 B.2.6 的测试向量。 有关更多用法和详细信息,请参阅 [http-message-signatures/README.md](http-message-signatures/README.md)。
#### uefi-library (wolfCrypt UEFI 引导模块和测试应用程序) 此目录包含一个 UEFI wolfCrypt 协议驱动程序(`libwolfcrypt.efi`)和一个配套的测试应用程序(`test.efi`)。示例在 qemu 上运行。 有关更多用法和详细信息,请参阅 [uefi-library/README.md](uefi-library/README.md)。
## 注意事项 必要时,示例将使用位于 ./certs 目录中的示例证书和密钥。这些证书和密钥是从 wolfSSL 主仓库中提取的。 要生成您自己的证书文本,请参阅 [DER 转 C 脚本](https://github.com/wolfSSL/wolfssl/blob/master/scripts/dertoc.pl)。
## 支持 如有任何问题、Bug 修复或建议增加的功能,请通过 support@wolfssl.com 联系 wolfSSL。
标签:CAN总线, JS文件枚举, SSL/TLS库, 后台面板检测, 客户端加密, 数字证书, 物联网通信, 示例代码, 蓝牙低功耗(BTLE)