2013-08-23 5 views
2

이것은 연결에 실제 암호 스위트를 사용하는 방법입니까? get_cipher_list는 클라이언트 (또는 서버)가 지원하는 "가능한"암호 모음을 반환하는 것으로 보입니다.SSL_get_current_cipher에 대한 pyOpenSSL 래퍼가 있습니까?

+0

이제이 문제가 TCP에 대해 해결되면 아마도 누군가가 DTLS에서 동일한 문제를 해결할 수 있습니다. 난 그냥 여기에 대한 새로운 질문을 게시했습니다 : http://stackoverflow.com/questions/23583508/how-to-get-current-cipher-in-pyopenssl-for-dtls –

답변

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)) 

'사기꾼'이미 서버에 연결하거나 악수를 수행하는 데 사용되었습니다 당신의 OpenSSL.SSL.Connection 개체입니다

.

왜 pyOpenSSL 개발자가이 방법을 추가하지 않았는지 알 수 없습니다. M2Crypto가 가지고 있습니다.

1

master @ HEAD는 OpenSSL.SSL.Connection.get_cipher_name을 도입했습니다. 및 OpenSSL.SSL.Connection.get_cipher_bits. 이들은 pyOpenSSL 0.15에서 사용할 수 있습니다.