gpt4 book ai didi

c - SSL BIO 和 FFI

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:31 30 4
gpt4 key购买 nike

我在 Haskell 中有一个流式 API(与 OpenSSL 的 BIO 不同),我想将 SSL/TLS“代理”注入(inject)其中。更具体地说,假设我有一个网络模型

Server| <---> |Logger>| <---> |<Logger| <---> |Client

(我在这里写 Logger> 表示“下游”记录器)并且我想写一个 FFI 来调用 OpenSSL 以将 TLS 注入(inject)到这里的中心

Server| <---> |Logger>| <---> |TLS>| <---> |<TLS| <---> |<Logger| <---> |Client

以便TLS>之间的通信和 <TLS已加密。让我构建的 OpenSSL 最简单的接口(interface)是什么 <TLS ?之后,构建最简单的界面是什么TLS>

换句话说,我的项目不同于我读过的大多数教程,因为我希望同时能够 BIO_getsBIO_puts一个 SSL 结构。这类似于我为 SSL 客户端连接管理自己的传输,但“传输”是通过将 C 指针提升到 Haskell 中来执行的。

(我确定我只是完全遗漏了关于 SSL + BIO 交互的一些基本知识。)


来自 http://www.openssl.org/docs/crypto/BIO_s_bio.html我看到了一个与我正在拍摄的应用程序类似的应用程序:

BIO *internal_bio, *network_bio;
...
BIO_new_bio_pair(internal_bio, 0, network_bio, 0);
SSL_set_bio(ssl, internal_bio, internal_bio);
SSL_operations();

这似乎大致正确。我可以同时putsgetsnetwork_bio .

最佳答案

如果您的项目不需要 openssl,并且您可以使用任何 TLS 库,你可以使用更简单的 tls ,它更好地与 Haskell 集成,并通过 Backend 内置了对自定义传输的支持。类型。这将比通过 Haskell 处理 openssl 低级 API 简单得多。

关于c - SSL BIO 和 FFI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14107880/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com