Skip to content

feat(tls): use pyOpenSSL for export_keying_material#772

Open
gijzelaerr wants to merge 1 commit into
masterfrom
feat/pyopenssl-keying-material
Open

feat(tls): use pyOpenSSL for export_keying_material#772
gijzelaerr wants to merge 1 commit into
masterfrom
feat/pyopenssl-keying-material

Conversation

@gijzelaerr

Copy link
Copy Markdown
Owner

Summary

  • Add _BioTLS wrapper class that prefers pyOpenSSL when available, falls back to stdlib ssl
  • pyOpenSSL's Connection object supports export_keying_material() (RFC 5705), which CPython's ssl.SSLObject does not
  • This unblocks password legitimation on TLS-connected PLCs — the OMS exporter secret can now be derived from the TLS session
  • pyOpenSSL added to the s7commplus optional dependency group
  • No behavior change when pyOpenSSL is not installed (stdlib fallback, oms_secret=None)

Context

Confirmed by @ale-rinaldi in #718: CPython 3.13/3.14 ssl.SSLObject lacks export_keying_material, so oms_secret is always None and password legitimation is dead code. @Erik1000's S7-1512SP-1 (#760) connects over TLS 1.3 but can't authenticate because of this.

Test plan

  • All 1596 tests pass (including TLS BIO plumbing tests updated for _BioTLS)
  • pre-commit clean
  • Erik1000 to test against S7-1512SP-1 with pip install "python-snap7[s7commplus] @ git+...@feat/pyopenssl-keying-material"

🤖 Generated with Claude Code

CPython's ssl module does not expose export_keying_material on
SSLObject/SSLSocket, which blocks password legitimation on TLS-
connected PLCs (the OMS exporter secret cannot be derived).

Add a _BioTLS wrapper that prefers pyOpenSSL when available — it
supports export_keying_material via its Connection object with memory
BIOs. Falls back to stdlib ssl (oms_secret=None) when pyOpenSSL is
not installed.

pyOpenSSL added to the s7commplus optional dependency group.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment thread s7/connection.py Dismissed
@Erik1000

Copy link
Copy Markdown

cant confirm it working no change to master it seems:

s7_comm_isp14-1  | DEBUG:snap7.connection:TCP connected to 172.25.250.129:102
s7_comm_isp14-1  | DEBUG:snap7.connection:Sent COTP Connection Request
s7_comm_isp14-1  | DEBUG:snap7.connection:Negotiated PDU size: 1024
s7_comm_isp14-1  | DEBUG:snap7.connection:Unsupported COTP parameter: code=0xc1, length=2
s7_comm_isp14-1  | DEBUG:snap7.connection:Unsupported COTP parameter: code=0xc2, length=16
s7_comm_isp14-1  | DEBUG:snap7.connection:Received COTP Connection Confirm
s7_comm_isp14-1  | INFO:snap7.connection:Connected to 172.25.250.129:102, PDU size: 1024
s7_comm_isp14-1  | DEBUG:s7.connection:=== InitSSL === sending (26 bytes): 72 01 00 12 31 00 00 05 b3 00 00 00 00 00 00 00 00 30 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:snap7.connection:Sent 33 bytes: 03 00 00 21 02 f0 80 72 01 00 12 31 00 00 05 b3 00 00 00 00 00 00 00 00 30 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:snap7.connection:Received TPKT: version=3 length=31 payload (27 bytes): 02 f0 80 72 01 00 10 32 00 00 05 b3 00 00 00 00 70 00 00 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:s7.connection:=== InitSSL === received (24 bytes): 72 01 00 10 32 00 00 05 b3 00 00 00 00 70 00 00 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:s7.connection:InitSSL response: version=V1, data_length=16
s7_comm_isp14-1  | DEBUG:s7.connection:InitSSL response body (20 bytes): 32 00 00 05 b3 00 00 00 00 70 00 00 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:s7.connection:TLS backend: stdlib
s7_comm_isp14-1  | DEBUG:snap7.connection:Sent 228 bytes: 03 00 00 e4 02 f0 80 16 03 01 00 d8 01 00 00 d4 03 03 37 f6 ec c5 14 5b 62 0b 7d 05 79 f8 be ce 2d 5c 73 ae d5 c7 38 05 ed 46 4f 51 25 0a ec e9 b4 9f 20 ea a6 80 48 a1 68 59 b6 4a f3 ac ed da b4 be a1 ce ae 83 ba 04 d7 14 3a 90 e5 62 a1 80 e6 e3 aa 00 14 13 02 13 03 13 01 c0 2f c0 30 00 9c 00 9d 00 3c 00 3d 00 ff 01 00 00 77 00 0b 00 04 03 00 01 02 00 0a 00 04 00 02 00 1d 00 0d 00 2a 00 28 04 03 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 06 01 03 03 03 01 03 02 04 02 05 02 06 02 00 2b 00 05 04 03 04 03 03 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 20 6b 21 99 cd 87 52 88 2f 9b 01 5a 75 fb 37 e0 ca 22 db 21 4f 5e 39 31 09 52 0c c1 6d 97 bf 39 58
s7_comm_isp14-1  | DEBUG:snap7.connection:Received TPKT: version=3 length=1024 payload (1020 bytes): 02 f0 80 16 03 03 00 7a 02 00 00 76 03 03 d9 02 4f 28 57 82 9f a9 ab 6c 1c 7b 45 ab d5 4d 77 27 3b 59 29 d1 83 2e da 61 5b e5 c6 c7 82 90 20 ea a6 80 48 a1 68 59 b6 4a f3 ac ed da b4 be a1 ce ae 83 ba 04 d7 14 3a 90 e5 62 a1 80 e6 e3 aa 13 02 00 00 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 66 94 a8 6d 60 c7 e6 0a b8 94 45 01 de 36 86 c3 24 53 3e 43 d9 d2 41 cd 08 46 9e e4 01 84 b3 02 14 03 03 00 01 01 17 03 03 00 17 fa 93 12 bc e6 f3 f8 54 9c c2 b6 77 1a ae c3 a2 a5 05 54 f0 66 ab a3 17 03 03 02 cf 55 b7 01 cd 22 c4 04 d7 b4 ff 16 1f 37 ff 30 1e 2f 95 13 9a 1a b5 d1 4b 07 d8 34 6d f8 55 fa cb c8 db 89 89 3f 23 94 52 6f 11 48 84 4c 2f 21 ac 8d 7b c8 02 d9 7c 72 fe 02 91 51 95 90 89 5d 2c 48 7d af 95 b4 17 e3 ef 1c a1 b1 09 d2 93 09 13 2d 64 d5 22 3c 75 04 a9 ae 7a 9b 63 83 4f 06 9c d9 5d f3 24 27 0a 76 8d 94 3a ea 20 1b 4c a2 4d 60 20 bd 5d 22 d5 37 36 74 9c 5c a7 7e 3c 7b b8 36 45 a5 c2 90 a8 d7 6d 4e 9b 64 a9 a4 3c 54 30 72 4f 7c e2 73 e4 89 fc d9 83 fd 1a 72 b2 15 bf 9e ea 00 2e 13 4e fc 3f e8 9a 01 50 bf ed e2 2f d1 ce 49 21 89 8a b5 f0 ca 90 18 0d 7f 39 3a e1 cb 0b 62 19 19 93 18 0e dc 98 05 fe 3f 76 b5 0c 57 35 6d 2d 3e 1a 59 f7 eb 1f bc 69 c0 11 74 1b 9a ca b4 8a 4e 50 91 11 24 ab 7b 69 f1 e4 cb 67 77 32 be 05 36 f8 4b a8 e7 d6 18 d5 d8 9f 10 40 c2 7a 4b 83 a6 cb b5 51 6a 12 38 b7 62 70 48 24 e0 88 7e dc a0 b2 9f 20 2c e6 a7 50 b8 c8 11 78 e7 27 2e 20 6a ed 1f 34 32 36 15 a2 79 f4 83 a2 52 53 38 0c 1f 45 a4 0d a9 7d 81 c7 58 64 49 e6 7f d3 12 02 37 fc f7 5c b1 a1 8c 3e 62 5d 7f b3 35 7c a7 13 4f c0 22 2f c8 ca 7f 15 2c eb e5 56 51 c2 e1 61 1c 86 7d 23 ac 48 ce e7 c4 27 75 3f cb bf 5e 5d 33 57 58 cf 72 9f 21 f2 0c 60 27 c1 8c 1f 24 aa d6 c3 73 81 71 a5 09 ef b8 8b 49 f5 1c 15 6a 43 96 2b 96 6e d6 70 49 4b 69 d0 1b 69 18 49 7c a7 b9 2c 38 d7 14 a1 f0 10 56 ec 7b 5b ac 43 79 d5 a8 69 98 9c c7 b4 43 ad 5a ef f0 4d 07 52 35 0b 1d a1 12 32 8d 8c b2 80 d4 1b 59 4b c8 1d bc de 9a 31 ca f5 fe af 29 8d fb 02 d1 0a ac a9 3e 13 fe 48 af 32 36 23 f6 a5 df df e1 38 ca 45 3e c5 b0 01 9d f2 9a 9c 0e 23 ca bb 7f 6f e9 92 8f 30 90 fc 2b e2 6e 13 6c 4e d9 64 44 45 b0 dd 5a dd 2f b6 ec 63 22 3f e2 c3 3e fb e1 47 fd 36 1d 55 e1 aa aa 28 84 de ac 8a be 85 98 9b 63 c5 fa bd ba 04 69 42 fe 64 e2 47 9d fd 69 88 d5 34 22 92 e6 22 c0 b0 4d 47 41 47 31 e0 a4 29 9c fb f2 30 d6 da 6b 80 c3 ab f4 d6 d5 98 fc 0b c4 86 92 4b de c2 b1 2b 5c 0f 86 13 de a4 27 02 10 59 21 4b 5c 4e 42 8f 3a c0 7d 98 6f b2 ad 0e 67 77 ae ff 1e 89 59 12 2b ce 53 0c 6f da ce 97 53 67 a6 18 46 8f 74 0d 39 a4 25 fe d3 1c 6a e4 1b db 85 73 0f 2e fc 05 af f0 8d ac 3e bf 7b 2d bc 22 aa ca c9 b3 ad c1 7e 72 bc 87 fa 45 32 62 74 6b 54 54 03 73 fe b6 43 9e 65 5f 06 02 11 17 03 03 00 61 ca 9c 30 70 17 cb 79 45 f5 56 6b e2 84 44 29 b6 3e cd 30 48 f3 e6 d9 5f 78 d0 89 31 4c f3 96 92 38 76 f1 66 ea cb a6 de 87 aa 34 ff 95 17 76 59 7d 65 cf a8 e7 3f da 5e f8 30 51 73 6f 7f ac b3 a5 8a ef cd b0 05 4d f4 9b fc 0d 63 96 50 84 60 6c 26 1f 66 9d 2d 4b 44 40 56 3f 0e 66 5a ad fd ef 17 03 03 00 45 9c e8 59 c8 b0 8b 3b 45 6d 28 35 9e 32 13 76 b6 4c df bf 9d 57 94 70 5a bf
s7_comm_isp14-1  | DEBUG:snap7.connection:Received TPKT: version=3 length=51 payload (47 bytes): 02 f0 80 8e 83 52 a0 cb 54 d6 c0 c3 39 12 a7 17 97 47 87 b9 4b 90 8c dc a6 9f 22 9e 35 6d 53 ce 40 dd a4 6d 79 5c 93 91 c3 b9 3f ce 15 10 7e
s7_comm_isp14-1  | DEBUG:snap7.connection:Sent 87 bytes: 03 00 00 57 02 f0 80 14 03 03 00 01 01 17 03 03 00 45 8b fd 0a 91 b7 e4 f1 c2 28 49 f7 a0 d5 9a 9a a6 e8 8f 6a f0 11 6c df cc 8a 9e e9 98 ea 35 86 bd 3c 9a 1f 4b 5f 9e 24 fd c2 f7 1e a4 a1 8d ef 63 7b bc 53 d2 b6 2c c5 f8 95 06 b4 6c cb ff a7 e9 b8 b9 79 8f af
s7_comm_isp14-1  | WARNING:s7.connection:Could not extract OMS exporter secret (legitimation will be unavailable)
s7_comm_isp14-1  | INFO:s7.connection:TLS activated (tunneled inside COTP frames)
s7_comm_isp14-1  | DEBUG:s7.connection:=== CreateObject === sending (66 bytes): 72 01 00 3a 31 00 00 04 ca 00 00 00 01 00 00 01 20 36 00 00 01 1d 00 04 00 00 00 00 00 a1 00 00 00 d3 82 1f 00 00 a3 82 2c 00 12 80 c3 c9 01 a1 00 00 00 d3 81 7f 00 00 a2 a2 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:snap7.connection:Sent 95 bytes: 03 00 00 5f 02 f0 80 17 03 03 00 53 18 27 ac a3 7e d1 dd c1 cb 8c 35 33 36 ad 9f 1f 11 da d6 9c f6 54 06 61 80 5b 6c e4 ae dc 49 05 08 cc 47 83 fe 3f 42 ee e7 62 df 1d 1d 8d 15 ac 05 36 c2 5d 1e eb 55 dd 6f 8f 3a 30 21 e9 b2 dd c2 e9 64 2f 73 d1 04 5f 4f 68 3d c6 3f 2b ab a8 c0 cb f1
s7_comm_isp14-1  | DEBUG:snap7.connection:Received TPKT: version=3 length=517 payload (513 bytes): 02 f0 80 17 03 03 00 fa c1 7a 04 49 b8 e8 15 bf 90 c0 83 8b 3c 24 c0 3d 9d 45 c9 21 ff a8 58 ea ab 62 b1 77 bb c8 8d ca 3e 76 fe 0a b9 b3 5c 61 58 c5 f8 35 4c 03 6a 1d 9d 91 a4 cd e8 a0 15 f3 f8 28 1e f0 90 5b 0d 24 89 70 f5 51 26 2a e0 7c 2a d2 19 cf c7 ef 9c 53 f7 2c 0c fc ff db 0d 49 4e 1f a0 86 bb 52 60 d6 a3 b6 70 b9 ee 16 da bf 11 49 32 e9 42 e3 d4 d8 a9 51 0d f0 57 eb e6 dd 4e 8a c9 32 3d b6 c8 33 a3 6d 78 a7 eb 13 7e ee 62 ac ac 15 ad 0c 73 ce 2d 9c ee 25 a9 7a 85 a1 79 71 b4 a3 91 08 fc c1 da 40 c0 03 0e a1 27 b9 c2 04 fd 2d a3 7d c2 d9 b8 f7 2b e4 ad 32 d1 09 60 41 43 2e aa 67 d1 bb ec dc 8c 21 d5 57 a3 05 71 96 38 c2 ec 52 78 1d e7 9a 2a 4b db 64 18 6b 3d 8b d1 6d e4 22 e3 c1 b3 0e e2 4f 29 c2 85 78 27 42 12 be f2 a7 d4 92 d4 ec 3c 3a e5 d6 26 f9 a2 c5 17 03 03 00 fa b7 81 f6 19 6c 88 b2 37 63 2b 96 e5 2e 6b 7a c1 17 2e 68 fd 14 8c dc f0 8c 47 36 e3 eb b2 78 d4 9c c7 dc bc 8a 79 72 5b 1a 35 8d 7c 2a 6c 88 b2 b8 f4 af 91 e7 73 da a8 2e 37 7e 5b 4b 86 94 d8 9a 4d 4c 52 4b ba 29 fd 15 b6 7b 94 7c 34 a3 f3 f1 ff 61 43 78 a3 7b 92 12 ff b8 14 f5 29 9b 77 36 bc a4 d2 6c 95 53 fe 53 d7 f6 55 b7 34 3d c1 4d 98 24 35 b1 11 16 5b eb c0 50 6d de 99 6d ab d1 6f 36 30 dc 68 bc 8d 5c 1f e5 e4 f7 1c 09 07 5f 25 7a 01 0f 20 a8 7d fa 4b e8 5b 83 4e f0 9d 4e ce d9 b8 9e 1b 9d 14 00 26 72 32 0e 18 e5 57 38 46 e7 e7 b8 32 8f 03 63 78 c9 cc 84 52 c5 39 93 8b ce 90 a6 4e 70 44 86 69 37 1f da 94 7c 73 f1 39 b1 3c e4 47 d0 71 ff 16 ae ae 51 f4 d2 18 da e1 4c cd 16 dc b6 0e 20 81 d6 08 35 1c 9e 5b 5a 17 26 fd 05 65 33 26 af e0
s7_comm_isp14-1  | DEBUG:snap7.connection:Received TPKT: version=3 length=268 payload (264 bytes): 02 f0 80 17 03 03 01 00 1c 72 f6 90 70 61 8a 88 e5 64 8b 4e 86 bb ab 9d c0 e3 38 1d 3b 2b 08 1c 96 9d 8f 36 67 30 e3 50 44 df 6e f3 5d 13 4c 4d 1b 1c 1d a1 f8 43 43 cd 01 19 67 8e b8 4c 0a ac bf 19 b7 7a 4c b5 7e 1e 72 d6 59 a0 1c 65 66 a7 cf b3 69 22 aa ac db 86 4c ff 52 d2 43 f2 14 d1 78 78 18 7e 83 bf ef 72 06 b8 dc 29 00 72 39 de 49 82 2b a2 31 b1 36 c9 f1 7e 4d 05 08 3e 04 a0 b7 01 0b 7c 6f 12 50 bd e9 b7 02 b7 f5 2c aa 44 b3 64 69 18 aa c8 12 37 f9 b3 dc 73 91 bf 3b 19 ea 46 9f 66 b7 8e fa f4 1f 6d c5 81 73 40 fe 6a fd 46 75 53 44 b3 9d 3f 2b 55 b3 e4 ac 13 32 52 83 d1 d7 b7 bb 4f 05 07 79 7f 9a 7b 15 ec ce 3b a5 97 29 1b 43 85 2d 99 a4 03 23 ad fc a8 81 54 ed 42 f2 cd b6 e5 36 5f 57 05 32 a3 5b 77 fe a3 58 46 f6 2f e8 67 6e 05 b4 c2 2e ea fd e3 d4 ab 22 65 45 97 01 7e 38 9d
s7_comm_isp14-1  | DEBUG:s7.connection:=== CreateObject === received (239 bytes): 72 01 00 e7 32 00 00 04 ca 00 00 00 01 36 b0 88 d0 80 80 84 d6 80 11 02 87 80 80 9c 41 87 80 80 9c 42 a1 00 00 01 20 82 1f 01 00 a3 81 69 00 15 13 30 30 3a 31 38 31 42 37 42 30 38 34 37 44 31 31 36 39 34 a3 82 2b 00 04 02 a3 82 2d 00 15 24 53 65 72 76 65 72 3a 20 4f 4d 53 50 5f 31 36 2e 30 30 2e 30 30 2e 30 35 5f 30 31 2e 31 35 2e 30 30 2e 30 31 a3 82 2f 10 02 14 24 1d dc 14 56 61 9d c7 50 f1 d9 7e 10 6b d7 d5 26 13 6a dd a3 82 32 00 17 00 00 01 3a 82 3b 00 04 88 00 82 3c 00 04 87 01 82 3d 00 04 84 81 86 40 82 3e 00 04 84 81 85 40 82 3f 00 15 1a 31 3b 36 45 53 37 20 35 31 32 2d 31 44 4d 30 33 2d 30 41 42 30 3b 56 34 2e 31 82 40 00 15 08 32 3b 39 33 34 37 33 38 82 41 00 03 00 03 00 a2 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:s7.connection:CreateObject response: version=V1, data_length=231
s7_comm_isp14-1  | DEBUG:s7.connection:CreateObject response body (235 bytes): 32 00 00 04 ca 00 00 00 01 36 b0 88 d0 80 80 84 d6 80 11 02 87 80 80 9c 41 87 80 80 9c 42 a1 00 00 01 20 82 1f 01 00 a3 81 69 00 15 13 30 30 3a 31 38 31 42 37 42 30 38 34 37 44 31 31 36 39 34 a3 82 2b 00 04 02 a3 82 2d 00 15 24 53 65 72 76 65 72 3a 20 4f 4d 53 50 5f 31 36 2e 30 30 2e 30 30 2e 30 35 5f 30 31 2e 31 35 2e 30 30 2e 30 31 a3 82 2f 10 02 14 24 1d dc 14 56 61 9d c7 50 f1 d9 7e 10 6b d7 d5 26 13 6a dd a3 82 32 00 17 00 00 01 3a 82 3b 00 04 88 00 82 3c 00 04 87 01 82 3d 00 04 84 81 86 40 82 3e 00 04 84 81 85 40 82 3f 00 15 1a 31 3b 36 45 53 37 20 35 31 32 2d 31 44 4d 30 33 2d 30 41 42 30 3b 56 34 2e 31 82 40 00 15 08 32 3b 39 33 34 37 33 38 82 41 00 03 00 03 00 a2 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:s7.connection:CreateObject response header: opcode=0x32 function=0x04CA seq=1 session=0x70000E41 transport=0x36
s7_comm_isp14-1  | DEBUG:s7.connection:CreateObject response payload: b0 88 d0 80 80 84 d6 80 11 02 87 80 80 9c 41 87 80 80 9c 42 a1 00 00 01 20 82 1f 01 00 a3 81 69 00 15 13 30 30 3a 31 38 31 42 37 42 30 38 34 37 44 31 31 36 39 34 a3 82 2b 00 04 02 a3 82 2d 00 15 24 53 65 72 76 65 72 3a 20 4f 4d 53 50 5f 31 36 2e 30 30 2e 30 30 2e 30 35 5f 30 31 2e 31 35 2e 30 30 2e 30 31 a3 82 2f 10 02 14 24 1d dc 14 56 61 9d c7 50 f1 d9 7e 10 6b d7 d5 26 13 6a dd a3 82 32 00 17 00 00 01 3a 82 3b 00 04 88 00 82 3c 00 04 87 01 82 3d 00 04 84 81 86 40 82 3e 00 04 84 81 85 40 82 3f 00 15 1a 31 3b 36 45 53 37 20 35 31 32 2d 31 44 4d 30 33 2d 30 41 42 30 3b 56 34 2e 31 82 40 00 15 08 32 3b 39 33 34 37 33 38 82 41 00 03 00 03 00 a2 00 00 00 00 72 01 00 00
s7_comm_isp14-1  | DEBUG:s7.connection:Session created: id=0x70000E41 (1879051841), version=V1
s7_comm_isp14-1  | WARNING:s7.connection:CreateObject returned error 0x60228000012B0011 — PLC may require TLS (use_tls=True)
s7_comm_isp14-1  | INFO:s7.connection:ServerSessionVersion captured: 85 bytes
s7_comm_isp14-1  | DEBUG:s7.connection:=== SetupSession === sending (144 bytes): 72 02 00 88 31 00 00 05 42 00 00 00 02 70 00 0e 41 36 70 00 0e 41 01 01 82 32 01 00 17 00 00 01 3a 82 3b 00 04 88 00 82 3c 00 04 87 01 82 3d 00 04 84 81 86 40 82 3e 00 04 84 81 85 40 82 3f 00 15 1a 31 3b 36 45 53 37 20 35 31 32 2d 31 44 4d 30 33 2d 30 41 42 30 3b 56 34 2e 31 82 40 00 15 08 32 3b 39 33 34 37 33 38 82 41 00 03 00 03 00 00 00 00 04 e8 89 69 00 12 00 00 00 00 89 6a 00 13 00 89 6b 00 04 00 00 00 00 00 00 72 02 00 00
s7_comm_isp14-1  | DEBUG:snap7.connection:Sent 173 bytes: 03 00 00 ad 02 f0 80 17 03 03 00 a1 8f bb 37 ee cb 52 6d 16 8b 9f f3 d1 82 8b b2 d9 36 bd b9 cc c6 a6 79 73 c4 37 c6 f3 85 d5 f5 e9 17 41 29 c1 42 58 44 c8 b2 3f d5 e1 8b 93 52 d3 f2 10 bb 06 b1 c9 e7 37 84 06 86 e4 c6 6c 96 8b 11 bd ec 2e 2a cf 50 ad 9c 28 12 c3 12 a5 ce 73 45 81 e3 38 20 91 f6 44 7a 26 09 f1 c0 84 e0 68 4f d9 02 15 51 6b 9e ea 1e 4b b8 e3 5e 76 1d 37 fe f3 4b 9a 92 0b ec 36 55 eb b2 28 cd 56 3d b2 11 c8 2e a5 b5 a4 87 46 77 53 5f 53 a3 63 ca ab 69 dd 29 a0 ca 0b 8f f7 59 19 e1 f3 11 12 e0 c4 9c
s7_comm_isp14-1  | DEBUG:snap7.connection:Received TPKT: version=3 length=54 payload (50 bytes): 02 f0 80 17 03 03 00 2a 25 d2 a0 c9 33 4a e4 11 be b7 5f b1 2b fe 67 b8 b0 83 6b d9 32 9b 33 fd ae ed b8 31 10 7b eb c5 a4 6a 70 fb e1 8f e5 86 0e c4
s7_comm_isp14-1  | DEBUG:s7.connection:=== SetupSession === received (25 bytes): 72 02 00 11 32 00 00 05 42 00 00 00 02 34 00 00 00 00 00 00 00 72 02 00 00
s7_comm_isp14-1  | DEBUG:s7.connection:SetupSession response: function=0x0542
s7_comm_isp14-1  | INFO:s7.connection:Session setup completed successfully
s7_comm_isp14-1  | INFO:s7.connection:V2 IntegrityId tracking enabled
s7_comm_isp14-1  | INFO:s7.connection:S7CommPlus connected to 172.25.250.129:102, version=V2, session=1879051841, tls=True
s7_comm_isp14-1  | INFO:s7._s7commplus_client:Performing PLC legitimation (password authentication)
s7_comm_isp14-1  | DEBUG:s7.client:S7CommPlus connection failed: Legitimation requires TLS. Connect with use_tls=True.
s7_comm_isp14-1  | Traceback (most recent call last):
s7_comm_isp14-1  |   File "<frozen runpy>", line 198, in _run_module_as_main
s7_comm_isp14-1  |   File "<frozen runpy>", line 88, in _run_code
s7_comm_isp14-1  |   File "/app/s7_comm/__main__.py", line 9, in <module>
s7_comm_isp14-1  |     client.connect(
s7_comm_isp14-1  |     ~~~~~~~~~~~~~~^
s7_comm_isp14-1  |         "172.25.250.129",
s7_comm_isp14-1  |         ^^^^^^^^^^^^^^^^^
s7_comm_isp14-1  |     ...<4 lines>...
s7_comm_isp14-1  |         protocol=Protocol.S7COMMPLUS,
s7_comm_isp14-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
s7_comm_isp14-1  |     )
s7_comm_isp14-1  |     ^
s7_comm_isp14-1  |   File "/app/.venv/lib/python3.14/site-packages/s7/client.py", line 124, in connect
s7_comm_isp14-1  |     raise RuntimeError(
s7_comm_isp14-1  |         f"S7CommPlus connection to {address}:{tcp_port} failed and protocol=S7COMMPLUS was explicitly requested"
s7_comm_isp14-1  |     )
s7_comm_isp14-1  | RuntimeError: S7CommPlus connection to 172.25.250.129:102 failed and protocol=S7COMMPLUS was explicitly requested
s7_comm_isp14-1 exited with code 1 (restarting)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants