Cómo obtener el cifrado actual en pyOpenSSL para DTLS

Necesito obtener un cifrado negociado para el protocolo DTLS en pyOpenSSL. Tuve éxito en hacer eso para los sockets TCP, pero cuando se trata de datagramas, no es tan obvio. Proporcione un ejemplo en C o Python. Esto es lo que he probado hasta ahora:

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


DTLSv1_METHOD = 7
SSL.Context._methods[DTLSv1_METHOD]=getattr(_lib, "DTLSv1_client_method")
ctx = SSL.Context(DTLSv1_METHOD)
ctx.set_cipher_list('AES128-SHA')
ctx.use_certificate_file("path-to-cert.pem")
ctx.use_privatekey_file("path-to-key.pem")
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('dtls-host', 443))
con = SSL.Connection(ctx, s)
con.set_connect_state()
con.connect(('dtls-host', 443))
cc = _lib.SSL_get_current_cipher(con._ssl)
print _ffi.string( _lib.SSL_CIPHER_get_name(cc))

El resultado impreso es (Ninguno)

Respuestas a la pregunta(1)

Su respuesta a la pregunta