Update on the S2 code I’ve been working on for a while now.
I wrote the majority of the code to handle the S2 negotiation in software in 2018/2019, but there are a few major barriers to moving forward with the software solution:
-
The powers that be technically open sourced the spec which theoretically include details of how to execute S2. BUT, they refuse to publish test vectors (you need an account to see the thread. There’s not much to see other than them saying they won’t do it). Which is clear signal that they don’t actually want anyone to implement it.
-
Parts of the spec are ambiguous when it comes to implementing the crypto, so it’s a slow, trial and error process getting this to work without test vectors or a reference implementation.
The alternate is to find a stick that implements most of the S2 stuff in hardware (handshake requires user input, so there would still be some software to write). Aeotec to the rescue!! (or so I thought)
-
The new Aeotec Z-Stick Gen5+ claims “native S2 support”. I ordered a stick as soon as they announced it. First one got lost in the mail. They sent me another which arrived yesterday.
-
While I was waiting, I asked Aeotec for the actual commands to use to invoke the native S2 operations and how to pass the user input data.
-
The support guy reached out to engineering but never got a clear answer
-
Then told me it needs to be done in software. This seems quite contradictory, but I will say the support guy I’m working with seems to be doing his best given that he hasn’t gotten a clear answer from the engineering dept.
-
If anyone has some pull or clout with Aeotec, please help as this is our best bet. I’m not sure why it would be marketed as having native support if doesn’t. I’m convinced it does, although maybe that’s just wishful thinking.
-
I’m getting my OH3 development env setup and I’ll play around with the new stick a little this weekend to see if I can find anything that way