【问题标题】:OpenSSL with raw sockets for EAP-TLS带有用于 EAP-TLS 的原始套接字的 OpenSSL
【发布时间】:2014-08-31 01:52:00
【问题描述】:

我想设计一个 EAP-TLS 客户端。由于协议在以太网层上工作,我在 C 中使用原始套接字并逐步设计握手。我想将 TLS 数据放入我使用 OpenSSL 设计的数据包中。我在网上找到的示例使用 SSL_Connect() 和套接字描述符并发送数据。但是,我想将数据复制到我将使用原始套接字发送的缓冲区中。有没有办法做到这一点?谢谢!

【问题讨论】:

  • 听起来SSL_Connect() 可以满足您的所有需求。为什么不能只复制实现?如果您想将其作为学习练习,为什么不能只创建一个包含您想要的信息的打包结构,而只需 write(fileDesc, struct ptr, sizeof(struct))

标签: c sockets ssl openssl


【解决方案1】:

如果您想将所有内容都放在自己的缓冲区中而不是直接发送到套接字,则您必须使用的不是文件描述符,而是内存 BIO 作为 SSL 的底层,然后您可以在顶部使用常用的 SSL_ 函数其中。你可以看看Directly Read/Write Handshake data with Memory BIO。您可以在AnyEvent::Handle 中找到一个有效的实现。虽然这是 Perl,但 BIO_ 函数的用法是一样的。

【讨论】:

  • 好答案。我立即想到了那个帖子(以及那个家伙遇到的所有麻烦)。
  • 感谢您的参考!我想知道我是怎么错过这个问题的。
猜你喜欢
  • 1970-01-01
  • 2017-01-11
  • 2013-04-18
  • 1970-01-01
  • 2021-01-15
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多