Can this be used for DTLS-PSK?
Hi,
i want to know if is possible to use you library for Philips Hue Entertainment that has the following requirements:
UDP port 2100 is used for DTLS handshaking and streaming. Only DTLS mode version 1.2 with Pre-Shared Key (PSK) Key exchange method with TLS_PSK_WITH_AES_128_GCM_SHA256 set as Cipher Suite is supported.
Thanks, Marius.
It doesn't support DTLS currently. I haven't looked at PyDTLS, so I'm not sure how easy it would be to add support for PyDTLS as well.
Just wanted to say, I'm still trying to pursue this course of action. Unfortunately, I get the following error when I try to use sslpsk in conjunction with pyDTLS:
Process finished with exit code -1073741819 (0xC0000005)
def do_handshake(self):
print("Handshaking with ", self.bridge_ip)
ssl_sock = False
psk = binascii.unhexlify(self.bridge_key)
print("PSK", psk)
try:
do_patch() # dtls library doing its thing
print("Patched")
host = self.bridge_ip
port = 2100
print("Wrapping socket")
tcp_socket = socket(AF_INET, SOCK_DGRAM)
tcp_socket.connect((host, port))
ssl_sock = sslpsk.wrap_socket(tcp_socket,
ssl_version=258,
ciphers='PSK-AES128-GCM-SHA256',
psk=psk, hint=self.user)
print("Socket wrapped")
msg = "ping"
ssl_sock.sendall(msg.encode())
msg = ssl_sock.recv(4).decode()
print('Client received: %s' % msg)
except Exception as e:
print("Socket exception: ", e)
return ssl_sock
I feel like there's something simple here I need to do to fix this, but can't figure out what...
Similar discussion here:
https://www.reddit.com/r/learnpython/comments/7s03fa/question_about_sockets_dtls_handshaking/
Marking this as won't fix, since I have no plans to figure out DTLS support. I'm happy to take PR though, if someone else wants to take this on.