NickWaterton / Roomba980-Python

Python program and library to control iRobot Roomba 980 Vacuum Cleaner
MIT License
384 stars 108 forks source link

Connection Error [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) #64

Closed vanderhavecn closed 5 years ago

vanderhavecn commented 5 years ago

Getting this error when I run python3 ./getpassword.py.

Connection Error [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056)

It can find my roomba and gives back a blid. The password field stays empty though.

NickWaterton commented 5 years ago

Might need just a tad more information.. OS? Debian just increased their default SSL security requirement which causes this error.

Can you post the full output?

vanderhavecn commented 5 years ago

I'm using Hasbian, so I guess it might be related to the issue you mention. Is there a way for me to address this? Thank you for the fast response.

Received: { "ver": "3", "hostname": "Roomba-3162C22061810710", "robotname": "Roomba", "ip": "192.168.1.100", "mac": "40:9F:38:F6:5B:F1", "sw": "v2.4.6-3", "sku": "R969040", "nc": 0, "proto": "mqtt", "cap": { "pose": 1, "ota": 2, "multiPass": 2, "pp": 1, "binFullDetect": 1, "langOta": 1, "maps": 1, "edge": 1, "eco": 1, "svcConf": 1 } } Roomba (Roomba) IP address is: 192.168.1.100 Connection Error [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) blid is: 3162C22061810720 Password=> <= Yes, all this string. Use these credentials in roomba.py

NickWaterton commented 5 years ago

I'm trying to find out what version of password.py you re using, 2.5 is the latest and has some changes to the way TLS is done, you're cutting off the version level output.

As to workaround, you can lower the SSL secutity level to 1 by editing /etc/ssl/openssl.conf and entering:

CipherString=DEFAULT@SECLEVEL=1
NickWaterton commented 5 years ago

I have pushed a potential fix. V1.2.6 - try it and let me know what happens.

vanderhavecn commented 5 years ago

Works like a charm! Thanks a lot.