Commit b14033ba by Szeberényi Imre

mod. of requirements + _mask fix

parent 3d8f6266
...@@ -78,8 +78,10 @@ class ProxyClientFactory(protocol.ReconnectingClientFactory): ...@@ -78,8 +78,10 @@ class ProxyClientFactory(protocol.ReconnectingClientFactory):
class VNCWebSocketHandler(Protocol): class VNCWebSocketHandler(Protocol):
src = None
def makeConnection(self, transport): def makeConnection(self, transport):
try: try:
if not settings.configured:
settings.configure() settings.configure()
value = signing.loads(transport.request.args[b'd'][0].decode(), value = signing.loads(transport.request.args[b'd'][0].decode(),
key=PROXY_SECRET, max_age=KEY_MAX_AGE) key=PROXY_SECRET, max_age=KEY_MAX_AGE)
...@@ -93,7 +95,7 @@ class VNCWebSocketHandler(Protocol): ...@@ -93,7 +95,7 @@ class VNCWebSocketHandler(Protocol):
except Exception as e: except Exception as e:
src = getattr(self, 'src', None) src = getattr(self, 'src', None)
logger.warning('Server(%s): bad connection, key=%s err=%s', logger.warning('Server(%s): bad connection, key=%s err=%s',
src, transport.request.args['d'][0], e) src, transport.request.args[b'd'][0], e)
transport.loseConnection() transport.loseConnection()
return return
logger.info("Server(%s): new connection, host=%s, port=%s", logger.info("Server(%s): new connection, host=%s, port=%s",
......
cryptography==36.0.1 cryptography==36.0.1
Django==3.2.3 Django==3.2.3
Twisted==16.6.0 Twisted==22.4.0
pyOpenSSL==21.0.0 pyOpenSSL==21.0.0
service-identity service-identity
...@@ -12,6 +12,7 @@ factory. ...@@ -12,6 +12,7 @@ factory.
@since: 13.2 @since: 13.2
""" """
import six
import base64 import base64
import struct import struct
from hashlib import sha1 from hashlib import sha1
...@@ -108,7 +109,7 @@ def _mask(buf, key): ...@@ -108,7 +109,7 @@ def _mask(buf, key):
buf = list(buf) buf = list(buf)
for i, char in enumerate(buf): for i, char in enumerate(buf):
buf[i] = chr(char ^ key[i % 4]) buf[i] = chr(char ^ key[i % 4])
return "".join(buf) return six.b("".join(buf))
def _makeFrame(buf, opcode, fin, mask=None): def _makeFrame(buf, opcode, fin, mask=None):
...@@ -163,7 +164,7 @@ def _parseFrames(frameBuffer, needMask=True): ...@@ -163,7 +164,7 @@ def _parseFrames(frameBuffer, needMask=True):
removing the parsed content from it. removing the parsed content from it.
@param frameBuffer: A buffer of bytes. @param frameBuffer: A buffer of bytes.
@type frameBuffer: C{list} @type frameBuffer: C{list} --- NO C(bytes) !!!!!
@param needMask: If C{True}, refuse any frame which is not masked. @param needMask: If C{True}, refuse any frame which is not masked.
@type needMask: C{bool} @type needMask: C{bool}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment