gpt4 book ai didi

c++ - OpenSSL 生物链 : Clarrification on documentation

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:40 25 4
gpt4 key购买 nike

Openssl 内存 BIO 接收器的文档是 here .

我正在创建一个 BIO 链以将二进制字符串转换为 base64 字符串。源/汇始终是一个内存位置,这使我能够保持相同的链。然而,当我写入数据时,数据(应该)进入由 OpenSSL 管理的内存缓冲区,并且当从链中读取时,它应该来自用户提供的内存缓冲区。

BIO_set_mem_buf() 是用于设置用户提供的缓冲区的函数,我将在使用 new 管理内存时设置 BIO_NOCLOSE 属性。现在,为了使用相同的链进行写入,我需要将内存生物更改为管理自己的内存。我的问题是:“在用户提供自定义缓冲区后,BIO_reset() 是否会将其改回管理自己的内存?使用单链对我想做的事情有任何性能影响吗?”

最佳答案

我不确定是否正确,但这是我通常使用 OpenSSL 的方式:

我认为 OpenSSL 的 BIO 结构是某种不透明流。

无论我必须传递给 OpenSSL(或从中获取)什么数据,它通常都存储在我自己的自定义数据结构中,然后复制到/从 OpenSSL BIO 进行处理。

正如您所说,OpenSSL 的文档在某些方面并不是很清楚。由于我们无法合理地假设其内部行为,我相信这种做事方式会更安全。

但是,如果您需要高性能并希望避免无用 拷贝(这是合法的),您最好询问 OpenSSL Users mailing-list .他们的回答会很准确,我相信只有他们才能回答文档中没有准确描述的问题。

关于c++ - OpenSSL 生物链 : Clarrification on documentation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682760/

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