如何在网络内核扩展中使用 OpenSSL?

How to use OpenSSL in network kernel extension?

我正在构建一个网络内核扩展,它需要 OpenSSL 库,方法是在我的一些项目文件中包含一些 headers。

问题是 OpenSSL 包括 stdlib.h(以及其他 headers),它们都会抛出错误(找不到文件)。如果我在项目文件中包含 stdlib.h,也会发生同样的情况。

我猜这是因为它们在内核中不可用。 那么,我该如何包括它们呢?我错过了什么?

否则,我如何在内核中包含 CommonCrypto 或任何加密库?

谢谢!

OpenSSL 和 CommonCrypto 是用户空间库。它们在内核中不可用。

CoreCrypto 的某些部分在 <libkern/crypto/…><corecrypto/…> 下的内核中可用。然而,一般来说,这仅限于加密原语(AES、RSA、SHA 等),而不是更高级别的工具,如 X509 证书解析、密钥交换算法或 TLS。