我被困在检索SSL握手后生成的Key_block。我实现了一个简单的Client.cpp/Server.cpp程序,可以很好地交换加密数据。openSSL密钥块访问功能?
我想检索key_block,因为我想重新使用它并在另一个通信中执行我自己的加密,但不需要再次握手。
我想:
ssl->s3->tmp.key_block
,但它检索一个空字符串,当然
ssl->s3->tmp.key_block_length
检索0值(?!)。
我在SSL_accept(ssl)成功后立即调用这些方法。
一旦我已经能够抓住这个key_block,我需要找到SSL_write(...)所使用的加密功能
希望你能听到我,因为OpenSSL的文档加密,似乎我的眼睛.. =)
密钥块仅在握手过程中使用,用于构造*几个不同的工作密钥;如果这就是你想要的,那么没有单个'the'键或'the'函数可以用来模仿SSL_write。如果你只是想要一个共享密钥用于其他**,自1.0.1以来的OpenSSL版本实现rfc5707来产生派生的共享密钥;请参阅'tls1.h'头文件中的'SSL_export_keying_material'。 –
非常感谢dave_thompson_085!我会试着从这些功能中获得一个共享的秘密。自从一个星期以来,我一直在努力争取openSSL文档,你是否有特别的圣经推荐,或者你是否花了很多时间来研究这个主题? –