certificado de paso torcido para el controlador SSL

Estoy diseñando un servidor ssl en el que estoy usando trenzado con ssl y se requiere la autenticación del certificado del cliente para continuar con el progtwig. Cuando verifico el certificado ssl del cliente, devuelve True, pero quiero pasar el nombre de usuario y la dirección de correo electrónico en el. certificado de cliente para que pueda obtener la configuración para ese cliente específico en la clase de manejador, ¿puede ayudarme?

from OpenSSL import SSL from twisted.internet import ssl, reactor from twisted.internet.protocol import Factory, Protocol from twisted.web import server, resource, static, twcgi class Handler(Protocol): def dataReceived(self, data): self.transport.write(data) def connectionMade(self): self.transport.write('hello world') def verifyCallback(connection, x509, errnum, errdepth, ok): global client_username if not ok: return False else: return True if __name__ == '__main__': #setting up ssl json server factory = Factory() factory.protocol = Handler myContextFactory = ssl.DefaultOpenSSLContextFactory('server.key', 'server.crt',SSL.TLSv1_METHOD) ctx = myContextFactory.getContext() ctx.load_verify_locations("ca.crt") ctx.set_verify(SSL.VERIFY_PEER | SSL.VERIFY_FAIL_IF_NO_PEER_CERT,verifyCallback) reactor.listenSSL(8080, factory,myContextFactory) reactor.run() 

Llame a transport.getPeerCertificate en Protocol.dataReceived u otro método de protocolo (solo después de haber recibido algunos datos).