- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
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/
Openssl 内存 BIO 接收器的文档是 here . 我正在创建一个 BIO 链以将二进制字符串转换为 base64 字符串。源/汇始终是一个内存位置,这使我能够保持相同的链。然而,当我写入数据
我是一名优秀的程序员,十分优秀!