diff --git a/kasa/transports/sslaestransport.py b/kasa/transports/sslaestransport.py index 525085b0..a517ca48 100644 --- a/kasa/transports/sslaestransport.py +++ b/kasa/transports/sslaestransport.py @@ -74,6 +74,7 @@ class SslAesTransport(BaseTransport): CIPHERS = ":".join( [ "ECDHE-RSA-AES128-GCM-SHA256", + "ECDHE-RSA-AES256-GCM-SHA384", "AES256-GCM-SHA384", "AES256-SHA256", "AES128-GCM-SHA256", diff --git a/tests/transports/test_sslaestransport.py b/tests/transports/test_sslaestransport.py index fe408195..cc11ccb3 100644 --- a/tests/transports/test_sslaestransport.py +++ b/tests/transports/test_sslaestransport.py @@ -48,6 +48,12 @@ MOCK_STOCK = "abcdefghijklmnopqrstuvwxyz1234)(" MOCK_UNENCRYPTED_PASSTHROUGH_STOK = "32charLowerCaseHexStok" +def test_ssl_ciphers_include_modern_tapo_suites() -> None: + """Keep compatibility with cameras that dropped legacy RSA ciphers.""" + assert "ECDHE-RSA-AES128-GCM-SHA256" in SslAesTransport.CIPHERS + assert "ECDHE-RSA-AES256-GCM-SHA384" in SslAesTransport.CIPHERS + + @pytest.mark.parametrize( ( "status_code",