rbit / pydtls

Datagram Transport Layer Security for Python
Apache License 2.0
72 stars 45 forks source link

OpenSSL 1.1 support #13

Open chrysn opened 7 years ago

chrysn commented 7 years ago

The quest for DTLS support for CoAP led me to find that the needed CCM cipher suites are only supported in OpenSSL 1.1, while pydtls currently imports libssl 1.0.0.

I've tried raising the version, and many changes are rather straight forward (function renames done in C with macros, eg. SSL_library_init to OPENSSL_init_ssl, SSLeay to OpenSSL_version_num); technically, that's just replacing, though the question which of them should be compatibility wrappers in Python depends on how much the openssl module is considered external APi by pydtls. Some functions around threading vanished, I just commented them out to get quick results.

After that, I'm still stuck with my scn = SSLConnection(sock, server_side=False, ciphers="PSK-AES128-CCM") raising "no ciphers available", but at least one cause of why it can't work is eliminated.