繁体   English   中英

OpenSSL BIO 线程安全

[英]OpenSSL BIO thread safety

OpenSSL 关于线程安全的常见问题解答如下:

可以,但有一些限制; 例如,一个 SSL 连接不能被多个线程同时使用。 大多数 OpenSSL 对象都是如此。

它不允许我理解以下内容是否安全:

  1. 我在 BIO 上调用阻塞读取
  2. 如果我的应用程序应该在收到响应之前终止,我会在该 BIO 上调用 close

如果您从 2 个不同的线程同时使用同一个 BIO 对象调用 2 个函数,OpenSSL 不保证线程安全。 然而,这不是你在做什么。

您正在两个不同的线程之间共享一个fd OpenSSL 库在一个线程中的BIO_read()调用中使用了 fd 的一份副本,而您在不同线程中的同一个 fd 上调用close()

在 Linux 上允许以这种方式共享 fd,因此您的情况应该没有问题。 我不能为 Windows 说话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM