(name 'Whisper-rww.115' message 'protocol breakout' id '2b43f543-530f-974d-9f70-c4d80e3dc253' date '14 December 2016' time '6:40:25.257 pm' author 'rww' ancestors ((name 'Whisper-rww.114' message 'setup protocols' id 'b8f495dd-a197-c941-b3e9-2a2c257383b0' date '14 December 2016' time '2:53:20.258 pm' author 'rww' ancestors ((name 'Whisper-rww.113' message 'workingagain' id '1e742c8f-9206-db47-9aed-d77b44111085' date '14 December 2016' time '2:22:38.246 pm' author 'rww' ancestors ((name 'Whisper-rww.112' message 'fixed init for protocols' id 'ee0e9b54-69d3-8a4d-ba78-c220120c3010' date '13 November 2016' time '5:24:26.715 pm' author 'rww' ancestors ((name 'Whisper-rww.111' message 'added dataEncoder selection, serverSpec, tracing.

See the Java/Squeak code-base at https://gitlab.com/des-lapins-internationale

My vm started crashing during the performance test and the AESede rate dropped from 118 Mbps to 3 Mbps. I have no idea what''s going on and I don''t see the cryptoPlugins on this vm either, Will try to build cog.spur since months.

mumkin netu ''araf?' id 'f15fa6e1-8861-3441-82a1-799691834774' date '27 October 2016' time '2:19:11.635 pm' author 'rww' ancestors ((name 'Whisper-rww.110' message 'cleaned up PBEDBLayer and added dataEncoder negotiation to the protocol and cleaned upcryptoProtocols.' id '14015ade-d461-c841-9232-533b12f7502a' date '27 October 2016' time '9:33:01.851 am' author 'rww' ancestors ((name 'Whisper-rww.109' message 'added PBE and allow restricted protocols and added an ''DBL-AESede'' protocol using PBE for double encryption. Added CryptoProtocol. changed connection installation.' id '295f16b8-07e6-e643-913a-65d08fd34dab' date '26 October 2016' time '1:11:02.817 am' author 'rww' ancestors ((name 'Whisper-rww.107' message 'cleanup' id '28aaee1a-4833-5d4f-9f01-5ab070148c23' date '24 October 2016' time '7:15:20.157 am' author 'rww' ancestors ((name 'Whisper-rww.106' message 'repaired cipher and PBE use' id '8d20169e-4b86-6347-a413-2e33d0129c58' date '20 October 2016' time '1:01:07.601 pm' author 'rww' ancestors ((name 'Whisper-rww.105' message 'socket address changes' id 'd5b179a3-3cd9-2840-8fd2-e92622275078' date '20 October 2016' time '10:07:18.415 am' author 'rww' ancestors ((name 'Whisper-rww.104' message 'shhh' id '0fda34ce-3e15-3046-97a7-ddffebd63269' date '18 October 2016' time '10:02:36.33 pm' author 'rww' ancestors ((name 'Whisper-rww.103' message 'updated sample identities and set the nickname to the vatId when unset.' id '66b727d1-4daa-7244-a38c-b713989363b0' date '18 October 2016' time '8:36:01.006 am' author 'rww' ancestors ((name 'Whisper-rww.102' message 'updated sample identities' id '6ff0fe8f-74b4-9c44-b21b-c42a03c2f886' date '18 October 2016' time '7:55:35.613 am' author 'rww' ancestors ((name 'Whisper-rww.101' message 'added differential code to select a viable exception class to cover for Pharo''s use of PrimitiveFailed, which is thrown during TransportEndpoit>>#getData' id '9d77ad5e-95f6-084e-b62f-fc1036cd02a9' date '18 October 2016' time '4:53:29.649 am' author 'rww' ancestors ((name 'Whisper-rww.100' message 'Changed the Encryptor to set the initialization vector (IV) after encryption of the current unencryptedBytes to the last blockSize of the encryptedBytes, such that the IV will roll forwards and change each moment of encryption. Previously the same IV was being reused over and over and that is a weakness that needed fixing. Also fixed on the Java side.' id 'bb329522-b3b3-2948-be1a-aabdc3b70eb2' date '17 October 2016' time '6:21:21.936444 am' author 'rww' ancestors ((name 'Whisper-rww.99' message 'fixed use of padding mode' id '567e8444-4bb0-8b41-9153-542e4a02820c' date '16 October 2016' time '10:50:12.886 pm' author 'rww' ancestors ((name 'Whisper-rww.98' message 'fixed padding mode' id '40c5f0e6-917d-d145-b8db-0380fce78c26' date '16 October 2016' time '10:33:45.996 pm' author 'rww' ancestors ((name 'Whisper-rww.97' message 'relocated crypto code to Cryptography' id '25f7b3fa-5f33-a64b-b18d-0ac0cbfbff3d' date '16 October 2016' time '9:31:25.234001 pm' author 'rww' ancestors ((name 'Whisper-rww.96' message 'finished crypto refactoring - green
- SecureSessionRSAIdentity with RSA 2048-bit public/private keys
- Diffie-Hellman 128-bit key exchange (increase?)
- RSA 2048-bit signatures
- AES-256 cipher: 256-bit key, 128-bit blockSize/iv
- SHA1 MAC doing MAC-and-Encrypt
- Cryptography -> added BrokenDoublePaddingPKCS5Or7PaddingMode as a BlockCipher off a BlockCipherMode
- Cryptography -> PBKDF2WithHmacSHA1 (8-bit salt, 5000 iterations, 256-bit key)
- Cryptography -> PBEEncryptor with AES-256 cipher and PBKDF2WithHmacSHA1' id '7a685a7d-1e14-cf45-a7b0-c1c8c582a021' date '16 October 2016' time '8:42:19.047 pm' author 'rww' ancestors ((name 'SecureSession-rww.139' message 'relocated crypto code to Cryptography' id '0f660acf-5191-1d4e-9b03-9168cac038d1' date '16 October 2016' time '8:33:53.536 pm' author 'rww' ancestors ((name 'SecureSession-rww.138' message 'Fixed ivSequences for repeated use of AESede''s CBC cipherMode by passing the iv with the EncryptedData header for use during decryption. Works with Java.' id '079e0f55-9637-184c-a2e8-5666c499c59e' date '15 October 2016' time '4:11:28.807 pm' author 'rww' ancestors ((name 'SecureSession-rww.137' message 'established extended cryptography protocol for DSAPrivateKey, used in SecureSession' id '55f7ce24-8079-844a-8fa4-b88a5647886d' date '15 October 2016' time '3:33:15.839 am' author 'rww' ancestors ((name 'SecureSession-rww.136' message 'broad refactoring' id '199ac687-bf7d-f740-a81e-67802d04a23a' date '15 October 2016' time '2:47:59.138 am' author 'rww' ancestors ((name 'SecureSession-rww.135' message 'refactored PBKDF2 and PBE' id 'b7d4d16a-8ea0-2145-ae1b-5f33fbe1bf3d' date '14 October 2016' time '4:23:21.709 am' author 'rww' ancestors ((name 'SecureSession-rww.134' message 'roll back to 128-bit DH prime until Java & Squeak code can be synced.' id '398a7c99-8b84-e140-bedf-1e9383011b18' date '14 October 2016' time '3:22:25.688 am' author 'rww' ancestors ((name 'SecureSession-rww.133' message 'upgraded Delays in tests' id '8a546df3-f25b-9e45-9341-b1bab795b5d2' date '14 October 2016' time '2:33:45.768 am' author 'rww' ancestors ((name 'SecureSession-rww.132' message 'upgraded DiffieHellman to use a 4096-bit prime from rfc3526: 4096-bit MODP Group' id '17a1f9ff-a5f7-5e42-a4a0-5bd5614be582' date '14 October 2016' time '2:30:58.34 am' author 'rww' ancestors ((name 'SecureSession-rww.131' message 'finished crypto refactoring - green
- SecureSessionRSAIdentity with RSA 2048-bit public/private keys
- Diffie-Hellman 128-bit key exchange (increase?)
- RSA 2048-bit signatures
- AES-256 cipher: 256-bit key, 128-bit blockSize/iv
- SHA1 MAC doing MAC-and-Encrypt
- added PKCS5Or7PaddingMode as a BlockCipher off a BlockCipherMode
   (i.e. (AES new key: secretKey) cbc pkcs7)
- PBKDF2WithHmacSHA1 (8-bit salt, 5000 iterations, 256-bit key)
- PBEEncryptor with AES-256 cipher and PBKDF2WithHmacSHA1' id '179b0327-7a05-e848-b48a-8e4058e058ee' date '14 October 2016' time '1:14:13.437 am' author 'rww' ancestors ((name 'SecureSession-rww.130' message 'finished crypto refactoring - green
- Diffie-Hellman 128-bit key exchange (increase?)
- RSA 2048-bit signatures
- AES-256 cipher: 256-bit key, 128-bit blockSize/iv
- SHA1 MAC doing MAC-and-Encrypt' id '5363ebcd-451c-4c45-8672-4ebd1069d0e9' date '14 October 2016' time '1:01:18.171 am' author 'rww' ancestors ((name 'SecureSession-rww.129' message 'refactoring to use 2048-bit RSA signatures' id 'aa2cd0a0-cf96-734c-bfb8-e2defce827aa' date '12 October 2016' time '3:25:25.516 am' author 'rww' ancestors ((name 'SecureSession-rww.128' message 'refactored server and protocol selection' id '760cfcdb-b18d-2548-8894-4b1267ffa7fa' date '11 October 2016' time '2:38:58.503 am' author 'rww' ancestors ((name 'SecureSession-rww.127' message 'generalized cipher building' id '9feba9ca-30c9-db4a-b762-b626f502ea5f' date '10 October 2016' time '3:00:26.708 pm' author 'rww' ancestors ((name 'SecureSession-rww.126' message 'added padding mode to cipherModes' id '95d0cbfd-6a8c-c04a-9902-0753537b4e34' date '10 October 2016' time '2:45:01.113 pm' author 'rww' ancestors ((name 'SecureSession-rww.125' message 'refactored encryption artifacts to avoid use of session and install cipher and macClosure into readers and writers.' id '327b6bb4-9f0d-f441-a3cf-3e23492275e8' date '10 October 2016' time '12:44:00.333 pm' author 'rww' ancestors ((name 'SecureSession-rww.124' message 'change MAC to SHA256' id 'ff64b038-9c4e-5a4e-a498-066e51355830' date '10 October 2016' time '12:03:58.802 pm' author 'rww' ancestors ((name 'SecureSession-rww.123' message 'added PBE with PBKDF2 and SHA1 or SHA256.
added DSAPrivateKey Asn1Der byte conversion.
added AESede encryption cipher support
- with correct iv sequences.
added SecureSessionIdentity byte conversion.' id 'f57ca3bc-a547-4444-b239-8192ebbd6f03' date '10 October 2016' time '11:00:01.344 am' author 'rww' ancestors ((name 'SecureSession-rww.123' message 'added PBE with PBKDF2 and SHA1 or SHA256.
added DSAPrivateKey Asn1Der byte conversion.
added AESede encryption cipher support
- with correct iv sequences
- enabled AESede by default: 86 Mbs
added SecureSessionIdentity byte conversion.' id '8848bbeb-06e3-b542-aae5-49ecad42550f' date '10 October 2016' time '10:58:18.65 am' author 'rww' ancestors ((name 'SecureSession-rww.122' message 'synchronize msg protocol with Java' id 'f1050c12-7a53-b840-9a09-28c81cbef889' date '7 October 2016' time '1:50:57.917 am' author 'rww' ancestors ((name 'SecureSession-rww.122' message 'change frame version' id '7c317c73-2cd2-1244-85ba-b2134bbce987' date '7 October 2016' time '1:27:55.287 am' author 'rww' ancestors ((name 'SecureSession-rww.122' message 'chang frame version' id 'b4fc752d-464b-5344-aa04-0bc7848b2673' date '7 October 2016' time '1:25:07.243 am' author 'rww' ancestors ((name 'SecureSession-rww.121' message 'prepping for persistent SecureSessionIdentities' id '94fb7e42-5edd-6946-9caa-ce431e099da9' date '6 October 2016' time '11:22:16.772 pm' author 'rww' ancestors ((name 'SecureSession-rww.120' message 'added #asString to frame logging' id '12773fca-e3cd-1c45-92c3-b342bb7d9dda' date '6 October 2016' time '8:14:52.024371 pm' author 'rww' ancestors ((name 'SecureSession-rww.119' message 'add interface to ConnectionHandler so we can listen on the right network.' id '9a711e1c-e1bd-f747-9646-6f363be4c244' date '6 October 2016' time '8:12:10.83 pm' author 'rww' ancestors ((name 'SecureSession-rww.118' message 'remove double terminal shutdown on NotMe message.' id '3dd8ffd4-df06-7d46-9b33-e6ef291d6a91' date '6 October 2016' time '7:55:27.711 pm' author 'rww' ancestors ((name 'SecureSession-rww.117' message 'adapted TraceMonitor to include domains: #StackTraffic, #ProtocolMsgs, #Secrets' id 'cdfeb155-6a5b-a042-a89f-c780ce7f5525' date '4 October 2016' time '1:17:10.077 pm' author 'rww' ancestors ((name 'SecureSession-rww.116' message 'remove unused trace message' id '4723aaf5-da73-e142-a3d8-eb536cfd64fc' date '2 October 2016' time '2:42:52.679939 pm' author 'rww' ancestors ((name 'SecureSession-rww.115' message 'tweaking for Java interoperability' id '23f50436-c280-594c-8707-299e6cd7f581' date '2 October 2016' time '2:41:17.633 pm' author 'rww' ancestors ((name 'SecureSession-rww.114' message 'increase P size to 1024-bits' id 'fe8cc530-9637-0748-865b-a3f0f32589d9' date '30 September 2016' time '6:15:12.391 am' author 'rww' ancestors ((name 'SecureSession-rww.113' message 'runs on pharo' id '9df1d40c-aae5-354d-807d-b7f354e0f9b7' date '30 September 2016' time '1:00:33.482673 am' author 'rww' ancestors ((name 'SecureSession-rww.112' message 'start script in SecureSessionServer comment' id '640d7298-94f8-fe43-9250-51a7790a3bea' date '30 September 2016' time '12:44:51.86 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'many changes for java interoperability' id 'f267c08f-2443-f341-9081-6b6b36714090' date '29 September 2016' time '11:11:12.514 pm' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'cleanup' id 'e34e28bd-fec3-784c-af9f-2fe6d41c4c1f' date '21 September 2016' time '3:00:32.611 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'cleanup naming' id '67206cb4-b2af-4443-9318-c85dff3dfac7' date '21 September 2016' time '2:59:47.568 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'fixed more offsets' id 'a751cf37-e4f8-d548-bc85-27bad6065a55' date '19 September 2016' time '9:10:22.921 am' author 'rww' ancestors ((name 'SecureSession-rww.112' message 'fixed msgSpec offsets' id 'cd34f1fa-9f4e-9745-b572-8a4d7ed48070' date '19 September 2016' time '9:09:18.701 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'ensure tests are green.' id 'f776e8b0-40c4-9640-83d9-473916f831d5' date '19 September 2016' time '7:11:31.104 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'fixed MessageSpecification offsets' id '8420bb53-34f6-3847-b30c-75aa52ee6997' date '19 September 2016' time '7:10:51.62 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'removed StandardMessageSpecification' id '2852187a-4e31-b941-b750-7187d5414304' date '19 September 2016' time '4:42:14.008 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'Stripped down to V1.
Removed the Vintage and V2 protocols. 
Refactored the TransportEndpoint and its getData logic.
Removed SecureSessionSettings we always encrypt and compress.' id '4d756533-90d5-284f-8731-e98d0d924b0b' date '18 September 2016' time '3:33:48.71 am' author 'rww' ancestors ((name 'SecureSession-rww.111' message 'Stripped down to V1.
Removed the Vintage and V2 protocols. 
Refactored the TransportEndpoint and its getData logic.
Removed SecureSessionSettings we always encrypt and compress.' id '9fcb55b9-90e3-c245-920f-00e3eef26e9b' date '18 September 2016' time '3:33:12.928 am' author 'rww' ancestors ((name 'SecureSession-rww.110' message 'Stripped down to V1' id '5e26f9cd-545e-254c-a0fb-a21a797392e6' date '18 September 2016' time '1:38:24.653 am' author 'rww' ancestors ((name 'SecureSession-rww.109' message 'empty log message' id '699477f7-b0c6-4732-8217-19752de61eaf' date '12 May 2016' time '10:25:18.116 pm' author 'rww' ancestors ((name 'SecureSession-rww.108' message 'lazy tracing' id '0b55f8bf-5347-4b55-a1c1-8198d92b4a6e' date '2 May 2016' time '11:44:48.92 am' author 'rww' ancestors ((name 'SecureSession-rww.107' message 'V2 is badly broken. I flipped the TraceMonitor to this package and V1 and Vintage still work fine.' id '7d206fac-a351-4592-ba7b-ff4de8bae4f2' date '1 May 2016' time '11:31:53.55 pm' author 'rww' ancestors ((name 'SecureSession-rww.106' message 'fixed the V2 frame test' id '2ad5572c-b32a-4e0e-9075-10bfde7c5839' date '1 May 2016' time '7:59:44.707 am' author 'rww' ancestors ((name 'SecureSession-rww.105' message 'rename the tripleDes algorithm' id '7dd51422-0801-4e84-b52a-318e8c5902c1' date '1 May 2016' time '7:37:45.371 am' author 'rww' ancestors ((name 'SecureSession-rww.104' message 'added a V2 protocol to negotiate the right dataEncoding of #(''fuel'' ''squeak'' ''json'' ''raw''). Added some tests and Kermit is green. :)' id 'eb99edf4-20f3-4bfd-8549-6ddeea711ee0' date '1 May 2016' time '7:33:33.514 am' author 'rww' ancestors ((name 'SecureSession-rww.103' message 'cleanup of connection switching' id '199fe8c3-985e-491c-8680-3b55f3174e93' date '27 April 2016' time '7:48:45.153 am' author 'rww' ancestors ((name 'SecureSession-rww.102' message 'rolled back frame redefinition' id '4a80ab4c-98d7-4371-a3a9-f0f3538be201' date '25 April 2016' time '2:29:50.583 pm' author 'rww' ancestors ((name 'SecureSession-rww.101' message 'removed the V2 work yet kept the new spec definition.' id 'c33d938c-26b1-4933-a343-f475c97d5864' date '24 April 2016' time '7:55:00.834 pm' author 'rww' ancestors ((name 'SecureSession-rww.100' message 're-ordered the message specification fields' id 'bc446b83-f336-4675-8fc5-12075994353f' date '23 April 2016' time '4:42:56.259 pm' author 'rww' ancestors ((name 'SecureSession-rww.99' message 'Changed from a frame version chunker to a router, open another dimension of differentiation.' id '35a91981-7ddb-4e35-8322-2b826ea76e1c' date '21 April 2016' time '12:59:00.674 pm' author 'rww' ancestors ((name 'SecureSession-rww.98' message 'rebuilt API' id '389254be-145d-476e-8af0-66a7d70103b6' date '21 April 2016' time '10:46:27.076 am' author 'rww' ancestors ((name 'SecureSession-rww.97' message 're-establish previous api contracts. My apologies if this caused others any challenges.' id '58ea14fd-0e5a-42c6-aa76-cdaee5d94246' date '21 April 2016' time '10:40:02.32 am' author 'rww' ancestors ((name 'Whisper-rww.96' message 'reorg' id '5a53c297-ea95-4000-af9e-b6a4c7ed34fd' date '20 April 2016' time '5:58:21.523 am' author 'rww' ancestors ((name 'SecureSession-rww.95' message 'reorg' id '37c6d43b-c188-47f3-b6f5-b9259d0456b6' date '20 April 2016' time '5:56:30.235 am' author 'rww' ancestors ((name 'Whisper-rww.94' message 'reorg' id '830a83a7-4af6-4345-9bb3-22ef8d3edeca' date '20 April 2016' time '5:55:22.486 am' author 'rww' ancestors ((name 'Whisper-rww.93' message 'reorg' id '536942ed-5b6e-4ad8-859c-e7a2f52616f5' date '20 April 2016' time '5:31:43.281 am' author 'rww' ancestors ((name 'Whisper-rww.92' message 'brought the vintage protocol version back.' id 'c308fdbe-992d-4f0b-a271-84ab92cbaec2' date '20 April 2016' time '5:27:19.987 am' author 'rww' ancestors ((name 'SecureSession-rww.91' message 'brought the vintage protocol version back.' id 'ed4f3971-b286-46b5-996a-fe354c53b655' date '20 April 2016' time '5:25:52.025 am' author 'rww' ancestors ((name 'Whisper-rww.90' message 'cleanup and rename' id 'e91d9d14-abd2-4769-9e6d-4689c584dcfa' date '19 April 2016' time '4:55:29.855 am' author 'rww' ancestors ((name 'SecureSession-rww.89' message 'cleanup' id 'e811ed27-3c1c-4fe8-95f6-cf75c6d59781' date '19 April 2016' time '4:54:28.91 am' author 'rww' ancestors ((name 'SecureSession-rww.88' message 'split up the performance tests for with compression and without compression.. The addition of CBC block chaining has slowed the non-compression case from 20 Mbs to 16 Mbs. With compression I''m seeing 13 Mbs. though the dataset is uncompressible.' id '21e6090e-65c8-4edb-b05d-690037a2c86c' date '14 April 2016' time '8:28:38.436 pm' author 'rww' ancestors ((name 'SecureSession-rww.87' message 'added CBC block chaining with IV sequences, in preparation to encrpyt correctly with Java' id '56d929a8-3274-43e7-bca1-dd1714858a55' date '14 April 2016' time '8:01:58.667 pm' author 'rww' ancestors ((name 'SecureSession-rww.86' message 'cleanup' id '97494bc1-ec90-41e8-ab53-3477102cb3cf' date '13 April 2016' time '4:50:32.113 am' author 'rww' ancestors ((name 'SecureSession-rww.85' message 'cleanup' id 'ee2836ca-a0d4-4824-a40b-2050c9c0c898' date '13 April 2016' time '4:30:57.568 am' author 'rww' ancestors ((name 'SecureSession-rww.84' message 'fixed a missing selector' id '227230a2-b80f-404e-8ddb-a7ebe87774ba' date '12 April 2016' time '6:48:48.162 pm' author 'rww' ancestors ((name 'SecureSession-rww.83' message 'cleanup a few things.' id '75d34273-431a-4869-86df-869a16842d86' date '12 April 2016' time '6:37:55.45 pm' author 'rww' ancestors ((name 'SecureSession-rww.82' message 'Changed the layer just above the TransportEndpoint, which knows how to consume from a tcp socket correctly. The layer above is the chunk layer who is happy to write full frames in one go, but faces data delay on the read side. The chunker needs a little patience, to get all the yummy bytes in the current message, before kicking the frame upstairs. The new frame layout includes a size field in the spec and a defined data layout. So we can stop writing an extra size field and read the current spec messageSize to know how many to take; whether he needs to wait; and just take enough to be happy.

Cleaned up some data conversions to maintain data velocity.

Performance is roughly the same at 20 Mbs for the read.' id 'a641e4c2-dbd4-483f-a4a1-54187d31a498' date '12 April 2016' time '5:49:07.611 pm' author 'rww' ancestors ((name 'SecureSession-rww.81' message 'finished refactoring' id 'df030ae2-f720-4623-a6e6-c4dc2ce4e007' date '11 April 2016' time '12:36:39.599 am' author 'rww' ancestors ((name 'SecureSession-rww.80' message 'losing the data message with no errors logged' id 'ff3d4e46-abaf-4e06-b802-400535784581' date '10 April 2016' time '3:19:53.492 pm' author 'rww' ancestors ((name 'SecureSession-rww.79' message 'refactoring data frames..' id 'e0c7ec76-6ef1-42f2-8abf-452abf1be0ba' date '10 April 2016' time '3:05:13.901 pm' author 'rww' ancestors ((name 'SecureSession-rww.78' message 'Updated comments and staging for nested data message refactoring.' id '8a545218-4cd5-44e8-9a10-c34bb89b9586' date '10 April 2016' time '9:29:51.867 am' author 'rww' ancestors ((name 'SecureSession-rww.77' message 'completed V1 implementation, for connection and data.' id 'd085baba-6dcb-4225-8b8c-8599da7eb0ce' date '9 April 2016' time '9:32:35.942 pm' author 'rww' ancestors ((name 'SecureSession-rww.76' message 'new frame connection' id '4fe47b4b-dd54-48d5-a6e6-ed409c627a3a' date '22 March 2016' time '12:08:04.377 am' author 'rww' ancestors ((name 'SecureSession-RobertWithers.75' message 'Resolved issues in Pharo. Use with Cryptography-Pharo.39. This si based on extensions to Fuel.' id '9b683e0f-6758-4ac7-991e-e23c5680d331' date '23 December 2015' time '4:49:23.37903 am' author 'RobertWithers' ancestors ((name 'SecureSession-rww.74' message 'enable compression' id '4cbf8679-8274-418f-a1ce-0a458d217c3b' date '22 December 2015' time '8:43:07.622 pm' author 'rww' ancestors ((name 'SecureSession-rww.73' message 'cleared some testing' id '82640020-7ac8-48d7-a9cb-ec5d10152250' date '22 December 2015' time '3:05:51.904 pm' author 'rww' ancestors ((name 'SecureSession-rww.72' message 'changed printing of frames' id '24250321-fb7d-42e9-bf3a-d29300143d9f' date '22 December 2015' time '2:54:19.351 pm' author 'rww' ancestors ((name 'SecureSession-rww.71' message 'Got startup frames working and tested.' id 'ccbe09d3-01ca-4754-bb62-6c1ad07be52a' date '22 December 2015' time '7:03:05.588 am' author 'rww' ancestors ((name 'SecureSession-rww.70' message 'Fixed the HeaderTest' id 'cec2b9fd-cbab-4452-ab90-83944254f785' date '21 December 2015' time '4:46:21.080173 am' author 'rww' ancestors ((name 'SecureSession-rww.69' message 'removed stale MessageSpecification class>>#initialize. No longer ASN.1 encoded.' id '57e293a8-b757-4e65-a1b0-c7ee17a8d271' date '21 December 2015' time '4:41:22.432047 am' author 'rww' ancestors ((name 'SecureSession-rww.68' message 'added TestCase>>#timeout: for Pharo...' id '1c705748-f15e-415e-a86e-0b8edc5ae21b' date '21 December 2015' time '4:36:17.014 am' author 'rww' ancestors ((name 'SecureSession-rww.67' message 'reintegrated frames work, on the side.' id 'b91bd931-d09b-40da-b460-c983f8db8ce3' date '21 December 2015' time '3:30:08.518 am' author 'rww' ancestors ((name 'SecureSession-rww.66' message 'restored last working version (60) over the top. Get back to frames later, but I took on a huge refactoring. Tiem to step back and evaluate.' id 'ffb23835-c656-4d92-8978-58d5d389a9cf' date '20 December 2015' time '10:01:40.662 pm' author 'rww' ancestors ((name 'SecureSession-rww.60' message 'added 2nd header. We now have a payload header and a FEC header and the frame can pop and push headers in & out of the payload.' id '7605ac2b-8512-4713-8fa1-de5f835c9845' date '18 December 2015' time '9:15:01.9855 pm' author 'rww' ancestors ((name 'SecureSession-rww.59' message 'added a little more for compression' id '00f662b4-eb7f-44a1-9e18-2deed4a6050c' date '18 December 2015' time '8:27:33.865 pm' author 'rww' ancestors ((name 'SecureSession-rww.58' message 'Broken: extending for compression' id '6aff1537-09db-43cd-a4c1-aaea91e35078' date '18 December 2015' time '7:53:29.648 pm' author 'rww' ancestors ((name 'SecureSession-rww.57' message 'fixed it.' id '3eb6a35e-c5c2-4de7-bada-90a024402dec' date '18 December 2015' time '7:20:02.567778 pm' author 'rww' ancestors ((name 'SecureSession-rww.56' message 'adding a settings class with events' id 'c55e8aa6-1964-4643-b6ae-32cc2d82822e' date '18 December 2015' time '7:00:15.565806 pm' author 'rww' ancestors ((name 'SecureSession-rww.55' message 'changed to the correct number of error bytes and added better ReedSolomon damage tests.' id '4e5793ff-1588-4b9c-87ae-412dd944b2a3' date '18 December 2015' time '6:59:19.001 pm' author 'rww' ancestors ((name 'SecureSession-rww.54' message 'more tests' id 'c16cb60c-fb78-4716-b2f0-6d35b21dda3b' date '18 December 2015' time '6:50:26.204 pm' author 'rww' ancestors ((name 'SecureSession-rww.53' message 'try 6 bytes of error. :)' id '622962b9-1770-49be-9b59-80fa676d38d5' date '18 December 2015' time '6:26:17.239 pm' author 'rww' ancestors ((name 'SecureSession-rww.52' message 'Changed the read buffer to 12288. Made the timeout: call optional for TestCases to support Pharo. Consistently getting over 20.5 Mbs:

100 KB data chunks received: 22
send time: 412 ms, rate: 42.718 Mbs.
receive time: 850 ms. rate: 20.706 Mbs.' id '303ef7b5-ea24-43e9-a10d-96e4c8a2206f' date '18 December 2015' time '1:36:04.651 pm' author 'rww' ancestors ((name 'SecureSession-rww.51' message 'increased the read buffer to 8192.
made FEC optional with SecureSessionServer useFEC. It defaults to false.' id 'e806d29b-c484-4c9d-bb23-5559a756f900' date '18 December 2015' time '1:25:20.969 pm' author 'rww' ancestors ((name 'SecureSession-rww.50' message 'Removed some tracing, it is good to go.' id '3298d305-b02f-4d3b-a40c-0b826c9b9691' date '18 December 2015' time '6:36:20.965445 am' author 'rww' ancestors ((name 'SecureSession-rww.49' message 'added Forward Error Correction with Reed-Solomon encoding.' id '1ffd0b9e-c1c1-4989-851b-2b062e49a1c1' date '18 December 2015' time '6:30:02.053443 am' author 'rww' ancestors ((name 'SecureSession-rww.48' message 'niling out the server on close ' id 'c78dd495-d763-4db7-a601-25e6ab664573' date '18 December 2015' time '2:01:27.532906 am' author 'rww' ancestors ((name 'SecureSession-rww.47' message 'added exception handling to socket reading' id '4c59ac6a-b380-40cc-8f97-22653f1d52ed' date '18 December 2015' time '1:31:22.402901 am' author 'rww' ancestors ((name 'SecureSession-rww.46' message 'We''re running in pharo again.' id '294dfd4f-fe36-4830-92aa-10ae2b6ec190' date '18 December 2015' time '1:12:48.660656 am' author 'rww' ancestors ((name 'SecureSession-rww.45' message 'fixed initialization' id '6714851d-0d76-4ac2-b029-13f5e9bff696' date '18 December 2015' time '1:01:40.555 am' author 'rww' ancestors ((name 'SecureSession-rww.44' message 'rename' id '6e552477-486e-4b43-9f96-0840550d689c' date '18 December 2015' time '12:56:51.382 am' author 'rww' ancestors ((name 'JacobsLadder-rww.57' message 'added msgIdCounter and setting the msgId and timeSent in the header, though it is time created.' id '2d181844-5a41-4778-a1ce-8de9c2efa3dd' date '18 December 2015' time '12:55:05.704 am' author 'rww' ancestors ((name 'JacobsLadder-rww.56' message 'Writing the header in the message' id 'a3ff3b07-7ba6-45c7-99e1-c9cfbc308a14' date '18 December 2015' time '12:33:25.147 am' author 'rww' ancestors ((name 'JacobsLadder-rww.55' message 'Switched to frame based pipeline so no more mutable state in the session. Rewrote the TransportEndpoint.' id '4a099290-cd22-42aa-b9a8-f3214d10bb66' date '18 December 2015' time '12:09:02.162 am' author 'rww' ancestors ((name 'JacobsLadder-rww.54' message 'removed class ?' id '20b20f2a-395d-486d-b2e4-66b5195d3c7b' date '17 December 2015' time '11:35:01.995 pm' author 'rww' ancestors ((name 'JacobsLadder-rww.53' message 'rewrote for frames and refactoring the TransportEndpoint' id '91210f34-164e-42d7-969c-14bf53cbf783' date '17 December 2015' time '11:32:04.234 pm' author 'rww' ancestors ((name 'JacobsLadder-rww.52' message 'coming over top with a working version' id 'd49e9f9d-bf21-4a06-a95f-d6315cece27b' date '17 December 2015' time '5:10:37.068 pm' author 'rww' ancestors ((name 'JacobsLadder-rww.47' message 'The beginnings of a frame & header, using Asn1Der encoding with schemas. The Header and Frame schemas are on their class side in initializeAsn1Der.' id '08cf5e67-0051-470a-93be-8a4e84696b9c' date '17 December 2015' time '9:42:09.375 am' author 'rww' ancestors ((name 'JacobsLadder-rww.46' message 'reusing a buffer and stop printing to the Transcript so frequently.' id '6649e04a-7024-46bf-9e44-c47b150b90d9' date '17 December 2015' time '3:37:54.494 am' author 'rww' ancestors ((name 'JacobsLadder-rww.45' message 'added a flatten call and initialize a buffer.' id '40742737-1ab6-473d-97f6-dbbe87fd9408' date '17 December 2015' time '3:23:53.885 am' author 'rww' ancestors ((name 'JacobsLadder-rww.44' message 'rename to JacobsLadder.

Praise God. God is Good.
Amen.' id 'fec3021d-675a-47cf-a7dc-36739b1876c4' date '17 December 2015' time '1:00:02.193 am' author 'rww' ancestors ((name 'SecureSession-rww.42' message 'Speed-ups removing stream use. Thank you all .

100 KB data chunks received: 22
send time: 445 ms, rate: 39.551 Mbs.
receive time: 922 ms. rate: 19.089 Mbs.' id '8039036a-ba0c-49d8-821a-2585f5a6f67d' date '17 December 2015' time '12:20:23.16 am' author 'rww' ancestors ((name 'SecureSession-rww.41' message 'I made the testConnect more robust. All four #connectionClosed events are fired when a terminal is told to shutdown, 1 from each teerminal and 1 from each server: I am pretty sure it is a hard shutdown, so no opportunity to flush,, although I had added that protocol. As well, failure shutdown has not been looked at as of yet. Those''re next, then the header specification.' id 'b3b9d7f5-aa00-4375-9764-238fed958430' date '16 December 2015' time '11:22:01.64 pm' author 'rww' ancestors ((name 'SecureSession-rww.40' message 'I made the testConnect more robust. All four #ConnectionClosed events are fired when a terminal is told to shutdown, 1 from each teerminal and 1 from each server: I am pretty sure it is a hard shutdown, so no opportunity to flush,, although I had added that protocol. As well, failure shutdown has not been looked at as of yet. Those''re next, then the header specification.' id 'aca3ed02-92b8-48df-9d8b-138bb534bd0c' date '16 December 2015' time '11:20:23.303 pm' author 'rww' ancestors ((name 'SecureSession-rww.39' message 'disabled FEC and went back to the working system. All tests green.' id 'f286212a-0294-496d-b971-4da8ba65fa31' date '16 December 2015' time '10:55:42.731 pm' author 'rww' ancestors ((name 'SecureSession-rww.37' message 'I have a deep bug in the inteleaver, it is out of range. Fixed padding, I think, as a hack until a padding layer can be built. I just ensure the padding is right for both the encoder and the interlever, in the padding method of the encoder.' id '4cde92ed-8a51-4005-b5fb-9f3c7a321ba7' date '16 December 2015' time '10:10:25.179 pm' author 'rww' ancestors ((name 'SecureSession-rww.36' message 'A big refactoring done, still previous integration to do. Now there is msgState used between layers.  Headers coming into view as a work item. 

Separated De/Interleaving from FEC, with cross-talk
Prepared to stack them and get terminals working again.' id 'd4692388-1ddc-4905-9bee-89e9942ff555' date '16 December 2015' time '9:19:21.022 pm' author 'rww' ancestors ((name 'SecureSession-rww.35' message 'further repairs with changes and OOB through session properties...now mutable. With msgIds added, OOB stabilizes.  Pad length bug then reintegrate.' id 'fd694310-7009-44fc-9772-ef14480564a5' date '16 December 2015' time '7:53:17.938 pm' author 'rww' ancestors ((name 'SecureSession-rww.34' message 'Initial repairs to FEC. I split out the interleaving to a separate layer. Now to reintegrate back..' id '5fccdebf-62e0-4e41-87fe-60aa984a3e47' date '16 December 2015' time '6:29:14.294 pm' author 'rww' ancestors ((name 'SecureSession-rww.33' message 'checkpoint to rebuild image. Added Interleave test and stategies. Curently grabbing the blockCount out of the session.' id '3bccb4d9-5e8c-4b0c-97a8-8bddb517e21a' date '16 December 2015' time '3:58:39.001 pm' author 'rww' ancestors ((name 'SecureSession-rww.32' message 'a new test and other touch ups.' id '0f9853dc-ef47-42ec-9e45-7063af9fc719' date '16 December 2015' time '2:33:55.772 pm' author 'rww' ancestors ((name 'SecureSession-rww.29.11' message 'trying to regain composure over the serverLoop.' id '95eb2edc-a64b-43b7-a735-5c204bd68565' date '16 December 2015' time '4:46:31.369 am' author 'rww' ancestors ((name 'SecureSession-rww.29.10' message '(skipped up from 28) Correction of expTable and logTable' id 'a312d3a7-1e40-4e9c-81ee-dfc1440185d9' date '16 December 2015' time '4:09:21.458 am' author 'rww' ancestors ((name 'SecureSession-rww.29.9' message 'backported changes' id '0bafd3c6-273e-4dc4-bef9-9221690c5f25' date '16 December 2015' time '3:32:36.782 am' author 'rww' ancestors ((name 'SecureSession-rww.28.8' message 'modified logTable entries for correct indexing versus value.' id '5e46893e-4ac4-4b6a-bafd-b14ebb3ec5ab' date '16 December 2015' time '2:42:09.275 am' author 'rww' ancestors ((name 'SecureSession-rww.28.7' message 'removed GFPrimitivePoly.... :)' id '97a0a028-329a-49c2-b5c2-e4cc85032973' date '16 December 2015' time '2:09:46.695 am' author 'rww' ancestors ((name 'SecureSession-rww.28.6' message 'fixed RSMode Modes'' keys.' id '8d4315cb-0846-4ba8-834a-be658dffd949' date '16 December 2015' time '1:42:31.596 am' author 'rww' ancestors ((name 'SecureSession-rww.28.5' message 'versioning' id '611f914f-b72c-4e7d-a12a-81032273a2c9' date '16 December 2015' time '12:37:11.952 am' author 'rww' ancestors ((name 'SecureSession-rww.29' message 'remove some unnecessary exception handling.' id 'ced98d43-8c8c-49d7-8c85-f88ad91b4037' date '16 December 2015' time '12:34:58.799 am' author 'rww' ancestors ((name 'SecureSession-rww.28.3' message 'there is a live lock and I can''t yet test RS end-to-end. sigh.' id '20d26ea6-2c8a-4232-8f08-96a7e75f28e8' date '15 December 2015' time '10:59:25.457 pm' author 'rww' ancestors ((name 'SecureSession-rww.28.2' message 'empty log message' id 'cf1a2f21-9ecf-4fd0-ae6d-2bd8c6f9e513' date '15 December 2015' time '10:48:32.184 pm' author 'rww' ancestors ((name 'SecureSession-rww.28.1' message 'RS in progress' id 'd34ac32e-20ff-4ed9-9cb3-8b2265f537d5' date '15 December 2015' time '10:39:22.718 pm' author 'rww' ancestors ((name 'SecureSession-rww.28' message 'fixed printing' id '40f2032d-eb41-4525-a29a-07fe09c62c01' date '15 December 2015' time '5:31:09.102902 pm' author 'rww' ancestors ((name 'SecureSession-rww.27' message 'commented our failing RS tests.' id '8f9ff692-05a9-4857-8345-ce2da20af06b' date '15 December 2015' time '3:59:30.525742 pm' author 'rww' ancestors ((name 'SecureSession-RobertWithers.26' message 'fixed a test in pharo4.x ' id '9d0622d3-ed8b-4626-940a-d606d9391432' date '15 December 2015' time '3:43:05.131238 pm' author 'RobertWithers' ancestors ((name 'SecureSession-rww.25' message 'added printOn: to GenericGF and GenericGFPoly' id '407826a3-0bab-4f36-b353-44427ec7bef4' date '15 December 2015' time '1:53:00.885 pm' author 'rww' ancestors ((name 'SecureSession-rww.24' message 'reverted testing for 0 rather than 1 for the first coefficient. Coefficients are not indices!' id '50e073fb-7bc1-46f9-a56e-a39d8f469ee5' date '15 December 2015' time '6:46:32.418 am' author 'rww' ancestors ((name 'SecureSession-rww.23' message 'ported & refactored GenericGF from the java code. This includes reindexing from 0 to 1. Having no tests, hopefully someone can give a review of this specific class. Where some tests to be developed at this scope, that would be stellar.' id '70a2b159-e810-4f28-9a97-9e77dcecdb2f' date '15 December 2015' time '6:24:24.183 am' author 'rww' ancestors ((name 'SecureSession-rww.22' message 'readded Reed Solomon FEC.' id '2b5ac134-3119-4a51-b086-dd00880b963b' date '14 December 2015' time '6:22:52.561 pm' author 'rww' ancestors ((name 'SecureSession-rww.21' message 'fixed another assignment' id '6928a186-5bbc-4c20-a6d8-4d628d7fb37d' date '12 December 2015' time '9:10:56.483661 am' author 'rww' ancestors ((name 'SecureSession-RobertWithers.20' message 'refactored from Pharo' id 'ed8fe38d-9bfe-4531-b6d6-6e473e4c15cb' date '11 December 2015' time '11:30:23.867601 pm' author 'RobertWithers' ancestors ((name 'SecureSession-rww.19' message 'updated assignment to '':='' from ''_''' id 'dbb8d4a8-b9d7-4374-b08f-1cce53bb2106' date '11 December 2015' time '11:21:13.33 pm' author 'rww' ancestors ((name 'SecureSession-rww.18' message 'repaired the performance test.  Getting 17 - 19 Mbs on a ubuntu 64-bit machine with a 32-bit vm/image.


100 KB data chunks received: 30
send time: 630 ms, rate: 38.096 Mbs.
receive time: 1252 ms. rate: 19.168 Mbs' id 'bf420b0e-55cf-4b56-8fcb-f3cee1bf20cc' date '11 December 2015' time '8:52:00.267 pm' author 'rww' ancestors ((name 'SecureSession-rww.17' message 'Renamed NetworkEndpoint to TransportEndpoint.' id '658cb4fb-bf48-41a9-972a-5eef00455640' date '11 December 2015' time '8:31:25.045 pm' author 'rww' ancestors ((name 'SecureSession-rww.16' message 'tightened up the performance test. Passes on my 64-bit machine.' id 'e70b8a04-33ba-44a3-a0b3-4d32c547c3a2' date '11 December 2015' time '7:18:41.092 pm' author 'rww' ancestors ((name 'SecureSession-rww.15' message 'attempting to build an eventful TCP server.' id '373bfc96-2fd5-4133-ae79-151d692c9cd8' date '11 December 2015' time '7:38:56.104 am' author 'rww' ancestors ((name 'SecureSession-rww.14' message 'more testing and pipeline cleanup to optimize. Varying results:

9 runs of <100 KB data chunks received: 100>
#(2.678 2.52 2.404 2.698 2.501 2.465 2.165 2.355 2.189 ) average asFloat * 8. 
sendTimeAverage := 19.5 Mbs
#(1.489 1.566 1.623 1.568 1.323 1.616 1.589 1.567 1.493) average asFloat * 8.
receiveTimeAverage := 12.3 Mbs

Best run of smaller chunks:
10 KB data chunks received: 10
send time: 25 ms, rate: 32 Mbs.
receive time: 51 ms. rate: 15.688 Mbs.' id 'd3d4c9b5-cf19-488f-b371-5a855ef5bf1a' date '11 December 2015' time '6:53:25.735 am' author 'rww' ancestors ((name 'SecureSession-rww.bug.13' message 'changing over to 4 byte alignment for de/ecryption' id '863dcd8f-b356-4bcd-ad63-5e4c4d39e160' date '11 December 2015' time '6:02:29.115 am' author 'rww' ancestors ((name 'SecureSession-rww.bug.12' message 'Increased volume of performance test. and got 1.745 MM/sec or 13.96 Mbs.

Here is a trace:

|          53.3% {2769ms} SecureSessionPerformanceTestCase(TestCase)>>performTest
|            53.3% {2769ms} SecureSessionPerformanceTestCase>>testPerformance1
|              53.0% {2754ms} SmallInteger(Integer)>>timesRepeat:
|                53.0% {2754ms} [] SecureSessionPerformanceTestCase>>testPerformance1
|                  53.0% {2754ms} SecureSessionTerminal>>sendBytes:
|                    53.0% {2754ms} SecureSessionTerminal>>downcallAll:
|                      53.0% {2754ms} HalfDuplexPairProxy>>downcallAll:
|                        53.0% {2754ms} MACComputeAndLengthWriter>>write:handler:
|                          48.3% {2509ms} [] HalfDuplexPairProxy>>downcallAll:
|                            |48.3% {2509ms} HalfDuplexPairProxy>>downcallAll:
|                            |  48.3% {2509ms} Encryptor>>write:handler:
|                            |    36.9% {1921ms} Encryptor>>encryptStream:
|                            |      |23.1% {1203ms} TripleDES>>encryptBlock:
|                            |      |  |11.0% {573ms} DES>>encryptBlock:
|                            |      |  |  |9.0% {470ms} primitives
|                            |      |  |  |2.0% {102ms} DES>>transform:
|                            |      |  |10.7% {558ms} DES>>decryptBlock:
|                            |      |  |  |9.5% {495ms} primitives
|                            |      |  |  |1.2% {63ms} DES>>transform:
|                            |      |  |1.4% {72ms} primitives
|                            |      |11.2% {582ms} ReadWriteStream(WriteStream)>>nextPutAll:
|                            |      |1.5% {76ms} primitives
|                            |    9.0% {467ms} ReadWriteStream(PositionableStream)>>upToEnd
|                            |      |3.2% {166ms} WriteStream>>nextPut:
|                            |      |2.6% {133ms} primitives
|                            |      |2.2% {114ms} ReadWriteStream>>next
|                            |      |1.0% {54ms} ReadWriteStream(PositionableStream)>>atEnd
|                            |    1.8% {94ms} [] HalfDuplexPairProxy>>downcallAll:
|                            |      1.3% {67ms} HalfDuplexPairProxy>>downcallAll:
|                            |        1.3% {67ms} MACMessageWriter>>write:handler:
|                            |          1.3% {67ms} [] HalfDuplexPairProxy>>downcallAll:
|                          4.5% {232ms} HalfDuplexPairProxy>>computeMac:
|                            3.9% {204ms} SHA1>>hashStream:
|                              3.0% {155ms} primitives' id '3ce68a49-dfc5-426c-a074-05f37f762eba' date '11 December 2015' time '3:11:31.806 am' author 'rww' ancestors ((name 'SecureSession-rww.11' message 'a few fixes: removed ping-pong logging.

The NetworkEndpoint was sending byte by byte; now chunking upwards.' id '00b915dc-b27f-46fd-9d85-c29a235b053d' date '11 December 2015' time '2:36:56.607 am' author 'rww' ancestors ((name 'SecureSession-rww.10' message 'added a copyright and acknowledgements, 

/*******************************************************************************
 * The MIT License (MIT)
 * 
 * Copyright (c) 2015 Robert Withers
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *  ******************************************************************************
 * SecureSession and Mushroom would not be possible without the ideas and 
 * implementation of the erights.org community, which is this software''s foundation.  
 * In particular, I would like to thank the following individuals:
 *         Mark Miller
 *         Marc Stiegler
 *         Bill Franz
 *         Tyler Close 
 *         Kevin Reid
 * 
 * This code would not even have gotten off ground zero were it not for the 
 * esteemed members of the Squeak Cryptography Team. There are too many to list 
 * here, so join the team!
 * 
 *******************************************************************************/' id 'bf073b56-b5d4-4fb6-be22-3939ed9b54fe' date '8 December 2015' time '8:59:51.2 pm' author 'rww' ancestors ((name 'SecureSession-rww.9' message 'SecureSession interface:

Cleaned up the operational events that implement the public interface. There are now 2 events fired by the server and 2 events fired by the terminal, listed:

Server methods:
- SecureSessionServer class>>#newOnVatIdentity:
-- SecureSessionServer>>#connectToVatIdentity:
-- SecureSessionServer>>#stop

Server events:
* connectionRunning (arg: the terminal)
* connectionClosed (arg: the terminal)

Terminal methods:
-- SecureSessionTerminal>>#sendBytes:
-- SecureSessionTerminal>>#shutdown

Terminal events:
* dataReceived (arg: byteArray of the data msg)
* connectionClosed (arg: the terminal)


Here is an example of end-to-end use of the SecureSessionServer and SecureSessionTerminal:

vat1 := SecureSessionServer newOnVatIdentity: SecureSessionIdentity sampleVatId1.
vat2 := SecureSessionServer newOnVatIdentity: SecureSessionIdentity sampleVatId2.
vat2 when: #connectionRunning evaluate: [ :conn | 
    Transcript cr; show: ''Connection running''.
    conn sendBytes: ''hello world'' asByteArray].
vat2 when: #connectionClosed evaluate: [ :conn | 
    Transcript cr; show: ''Connection closed, told by server''.
    connClosedNotifiedByServer := true].

conn1 := vat1 connectToVatIdentity: vat2 vatIdentity.
conn1 when: #dataReceived evaluate: [ :data | 
    Transcript cr; show: ''Data received: '', data asString.
    dataReceived := true ].
conn1 when: #connectionClosed evaluate: [ :conn | 
    Transcript cr; show: ''Connection closed, told by terminal''.
    connClosedNotifiedByTerminal := true].

(Delay forMilliseconds: 1000) wait.
conn1 shutdown.

---

Best to you, recursively and thank you all so much for everything.' id 'faf09c4c-6838-4409-8a23-cbb702d3aaf6' date '8 December 2015' time '7:22:55.924 pm' author 'rww' ancestors ((name 'SecureSession-rww.8' message 'added shutdown protocol to terminal' id '981bfb32-6e1b-4276-87b9-61568d0b2e54' date '8 December 2015' time '7:06:01.398 pm' author 'rww' ancestors ((name 'SecureSession-rww.7' message 'Cleaned up the operational events that implement the public interface. There are now 2 events fired by the server and 2 events fired by the terminal, listed:

Server events:
#connectionRunning (arg: the terminal)
#connectionClosed (arg: the terminal)

Terminal events:
#dataReceived (arg: byteArray of the data msg)
#connectionClosed (arg: the terminal)' id '620c7132-86a3-447b-b146-c5b9518c4bf1' date '8 December 2015' time '11:42:48.645 am' author 'rww' ancestors ((name 'SecureSession-rww.6' message 'refactored, renamed, reorged, remove class-side intitialize methods, tests green.' id 'a0f2c96a-9a9b-47cf-b88b-b06eb1af099a' date '8 December 2015' time '11:30:22.855 am' author 'rww' ancestors ((name 'SecureSession-rww.5' message 'mass renaming to remove VatTP, replaced with SecureSession.' id '21eb962e-3747-47c7-8e80-370bf28d99d6' date '8 December 2015' time '9:36:49.08 am' author 'rww' ancestors ((name 'SecureSession-rww.4' message 'removed tracing and shadowed block args' id 'c70e3b52-4863-49aa-89ac-26bcd29c02c8' date '8 December 2015' time '7:57:18.906 am' author 'rww' ancestors ((name 'SecureSession-rww.3' message 'Removed reference to Introducer' id 'b8cef899-f1e1-4b27-aa75-2db97d662fdd' date '8 December 2015' time '7:51:46.167 am' author 'rww' ancestors ((name 'SecureSession-rww.2' message 'Relocated VatTPIdentity and TcpIdentity into this package to resolve Undeclared.' id '0051410a-b317-4644-b0c8-49cb8d2b4ad1' date '8 December 2015' time '7:49:04.377 am' author 'rww' ancestors ((name 'SecureSession-rww.1' message 'initial commit' id 'ed93a76a-765e-4f01-9e9f-e58f29067e5d' date '8 December 2015' time '7:39:54.574 am' author 'rww' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())