Encrypted Data over Sockets

Bob Sneidar bobsneidar at iotecdigital.com
Fri Jul 8 19:14:40 EDT 2022


Hi all. 

I'm running into a curious thing. I am sending encrypted data over a socket connection. When I send the data, I am using blocking mode, where the commands look like this:

         if tCurrentConnectionA ["ssl"] is true then
            put slyEncrypt(tSocketData) into tSocketData
         end if
         
         close socket tSocket -- in case it was left open
         open socket to tSocket
         write tSocketData & linefeed to socket tSocket
         read from socket tSocket until linefeed
         put it into tReceivedData
         
         if the last char of tReceivedData is linefeed then \
               delete last char of tReceivedData
         
         close socket tSocket
         
         if tCurrentConnectionA ["ssl"] is true then
            put slyDecrypt(tReceivedData) into tReceivedData
         end if

Now just to belay questions that might be asked, I know that the read from socket is working because I get a salted hash back, so the server is doing what it is supposed to on the other end. 

However when I go to decrypt the hash I am SOMETIMES getting the dreaded Wrong final block length as an error. Curiously, sometimes it works! 

My suspicion is that the hash contains a linefeed (sometimes). So the question I have is, what character is GUARANTEED to NOT be in an aes256 hash? I need a delimiter. Read from socket until eof fails with a timeout. That is intensly unfortunate by the way, it ought to work. 

Bob S




More information about the use-livecode mailing list