def _sslHandshake(sock, sslContext, reactor, callback=None): def doCancel(): acceptOp.cancel() sslAbort(sslConn) def onSSLAccept(err): if err is not None: sslAbort(sslConn) op.notify(None) return try: peerCert = sslConn.getPeerCertificate() peerKey = peerCert.getPublicKey() peerName = peerCert.getSubject().lookupEntry('commonName') except (SSLError, X509Error): sslAbort(sslConn) op.notify(None) return data = (sslConn, peerKey, peerName) op.notify(data) sslConn = SSLConnection(sslContext, sock) acceptOp = sslAccept(sslConn, reactor, onSSLAccept) op = AsyncOp(callback, doCancel) return op
def _sslHandshake( sock, sslContext, reactor, callback=None ) : def doCancel() : acceptOp.cancel() sslAbort( sslConn ) def onSSLAccept( err ) : global logger if err is not None : sslAbort( sslConn ) op.notify( None ) return try : peerCert = sslConn.getPeerCertificate() peerKey = RSAKey() peerKey.fromPKey_PublicKey(peerCert.get_pubkey()) CN = peerCert.get_subject().CN if CN.count('@'): peerName, peerKeyID = CN.split('@') else: peerName, peerKeyID = CN, '' except (SSLError,X509Error,RSAError) : logger.exception('ssl accept error') sslAbort( sslConn ) op.notify( None ) return data = (sslConn,peerKey,peerName,peerKeyID) # logger.info('onSSLAccept SUCCESSFUL with %s' % str(peerName)) op.notify( data ) sslConn = SSLConnection( sslContext, sock ) sslConn.setAcceptState() acceptOp = sslAccept( sslConn, reactor, onSSLAccept ) op = AsyncOp( callback, doCancel ) return op
def _sslHandshake( sock, sslContext, reactor, callback=None ) : def doCancel() : acceptOp.cancel() sslAbort( sslConn ) def onSSLAccept( err ) : if err is not None : sslAbort( sslConn ) op.notify( None ) return try : peerCert = sslConn.getPeerCertificate() peerKey = peerCert.getPublicKey() peerName = peerCert.getSubject().lookupEntry('commonName') except (SSLError,X509Error) : sslAbort( sslConn ) op.notify( None ) return data = (sslConn,peerKey,peerName) op.notify( data ) sslConn = SSLConnection( sslContext, sock ) acceptOp = sslAccept( sslConn, reactor, onSSLAccept ) op = AsyncOp( callback, doCancel ) return op