是否有SSL_get_current_cipher的pyOpenSSL包装器?

时间:2013-08-23 12:53:03

标签: openssl pyopenssl

这是一种获取用于连接的实际密码套件的方法吗? get_cipher_list似乎返回客户端(或服务器)支持的“可能”密码套件。

2 个答案:

答案 0 :(得分:1)

from OpenSSL._util import (
ffi as _ffi,
lib as _lib)

...

c_cipher_obj = _lib.SSL_get_current_cipher(con._ssl)
cur_cipher = _ffi.string( _lib.SSL_CIPHER_get_name(c_cipher_obj))

其中'con'是您已用于连接服务器或进行握手的OpenSSL.SSL.Connection对象。

我不知道为什么pyOpenSSL开发人员没有添加这个方法。 M2Crypto确实拥有它。

答案 1 :(得分:1)

master @ HEAD引入了OpenSSL.SSL.Connection.get_cipher_name。和OpenSSL.SSL.Connection.get_cipher_bits。这些将在pyOpenSSL 0.15中提供。