Mar 06, 10:30 PM

Back in January, I began a new project: A messaging service with end-to-end encryption. Here are my initial thoughs.

An Extremely M, Probably not V, P

I now have something that works (the UI is still in the execrable stage, sorry). Here’s an outline of how it’s going so far:

{
  "Chunk": {
    "to":"uKDq9FgBY1YsP9EjFhg+xEDuGjScJYiHPk6z6DjnZzY=",
    "from":"KcU1F3ACEZONC1EDShNtQW/J4os51q98zHf4TX7H100=",
    "time":1678135624299,
    "nonce":"h/JmKaa3hQ4K6TGe65hyeMTnsSmk9t8R",
    "tag":"Dh/M7qxuW14qLYgr6GFoWg==",
    "data":"mDbrlnwad+BU... (1K of data in base64) ..."
  }
}
{
  "Ack": {
    "nonce":"h/JmKaa3hQ4K6TGe65hyeMTnsSmk9t8R",
  }
}

Some frontend details:

----------------------------------
          websocket I/O
   human I/O, DOM manipulation        Javascript Layer
saving/loading/exporting/importing
----------------------------------
          |          A
          V          |
----------------------------------
encoding/decoding to/from base64      WASM "flow" module
 assembling multi-part messages
----------------------------------
          |          A
          V          |
----------------------------------
     encryption/decryption            WASM "crypt" module
----------------------------------

Some server details:

Further Plans

Some of these ideas are actually in the queue of things to do; some are just dreams for in the future if I figure them out and have the time.

The frontend/aesthetic stuff is going to be the most difficult for me. More to come.