Please read my Facebook post introducing the features of the new version 3.7 protocol of ParrotTalk, now a 5 message handshake, 3 messages like TLS 1.3 and an initial 2 message negotiation to determine which version of the protocol to use. My release of the Squeak/Pharo implementation which is capable of supporting both v3.6 and v3.7 in the same SessionAgent, spawning Sessions with either version, based on the negotiation. The Java version at https://github.com/CallistoHouseLtd/ParrotTalk can only talk v3.6 right now. The interesting feature of the Squeak/Pharo implementation is that it supports version negotiation for either version. Tests are all green.
Hello everyone, I have just updated the Smalltalk implementation of ParrotTalk and Raven. I thought to share it with youse. Here is what I did....
ParrotTalk: Refactored the stack to use a SendFramesBuffer thunk so mjessages can be sent to the connection immediately and are buffered until connection completes. Due to the possibility that there are thunks above the session, as is now the case with Raven, added behavior to #popStackUpTo: to pop a substack of thunks to a specified thunk, as well as a #pushStack:, using #reverse, to push a substack of thunks onto the receiving stack. This behavior allows a stack gaining crypto thunks to pop stack to the session, then pop the SendFramesBuffer thunk, then add the crypto thunks (immigration, cipher, customs, encoder) then push the substack including session back onto the subject stack and then flush the buffer thunk downcall: through the session. Renamed the FrameBuffer to ReceivingFrameBuffer.
Raven: Due to the addition of the SendFramesBuffer, replacing the BufferListLayer, now a fully formed Raven stack can be created on the call side, with the RavenTerminal pushed on top of the Session, still supporting early message sending prior to full connection. On the answer side, the creating of the scope creates the RaveenTerminal but it is not yet pushed. That occurs in reactToSession:, which ensures the head of the stack is not the RavenTerminal thunk, priot to pushing on top of the Session.
Here's the new code http://www.squeaksource.com/Cryptography/ParrotTalk-rww.20.mczhttp://www.squeaksource.com/Cryptography/Raven-rww.22.mcz
Now over to Java to bring it up.