【问题标题】:Sharing OpenSSL BIO between two different processes在两个不同的进程之间共享 OpenSSL BIO
【发布时间】:2012-07-03 04:26:08
【问题描述】:

我目前正在做一些 OpenSSL 编程,我需要创建一个 OpenSSL BIO 并基本上启动与远程服务器的 SSL 连接,然后将该连接传递给另一个进程。我目前计划这样做的方式是将 BIO “打包”到内存缓冲区中并通过套接字发送,因为我需要取消引用 BIO 结构中包含的许多指针,因此不能只是“转换” BIO 到 char * 并发送过去。有谁知道是否有更简单的方法可以做到这一点?我看到有内存 BIO,但在做了一些研究之后,我仍然不清楚它们是否是我需要的......

谢谢

【问题讨论】:

  • 为什么不在进程之间使用多线程而不是套接字通信?
  • 这是两个不同的程序:/ 发送 BIO 的一个是服务器,客户端连接到它以获取那些 SSL BIO,然后使用它进行通信。

标签: c sockets openssl


【解决方案1】:

重新设计您的解决方案要容易得多,这样您就不必将新创建的 SSL 套接字传递给另一个工作进程,而是为该进程打开一个常规套接字对。然后,您的 SSL 进程充当代理,在套接字到工作人员和 SSL 套接字之间传递数据。为了获得一些并行性,您可以在 SSL 进程中使用多个线程。

如果你真的想走将 SSL 套接字转移到另一个进程的路径,你将需要转移整个 SSL 状态,以便在工作进程中正确初始化加密和解密状态。这意味着您需要了解需要传输 SSL 上下文的哪些部分,以及传输 SSL_SESSION。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多