Commit Graph

1039 Commits (master)

Author SHA1 Message Date
Richard van der Hoff b411f07df9 InboundGroupSession.init no longer requires a separate message_index 2016-09-22 16:24:03 +01:00
Richard van der Hoff cfcee54a81 Handle non-base64 chars in pickle files 2016-09-22 15:09:40 +01:00
Richard van der Hoff fc6688c4c8 megolm.rst: review feedback
Split ratchet algorithm out to a separate section.

Also clean up some phrasing and correct a typo or two.
2016-09-22 13:32:03 +01:00
Richard van der Hoff 182eccc624 megolm.rst: linkify Ed25519 2016-09-22 11:38:33 +01:00
Richard van der Hoff ec91dd4570 Megolm.rst: add Background and footer 2016-09-22 11:35:23 +01:00
Richard van der Hoff c07444d3e6 First stab at a megolm spec 2016-09-22 11:04:19 +01:00
Mark Haines 4106767fd0 Merge pull request #25 from matrix-org/markjh/fix_jenkins
Fix jenkins.sh
2016-09-16 17:38:18 +01:00
Mark Haines 8acf8fd367 Fix jenkins.sh 2016-09-16 17:34:21 +01:00
Richard van der Hoff 4ff663a0ae Merge pull request #24 from matrix-org/rav/one_time_keys_comment
Update comment on olm_account_one_time_keys
2016-09-16 14:21:15 +01:00
Richard van der Hoff 76aad9d9c3 Update comment on olm_account_one_time_keys
Document what it actually returns.
2016-09-16 14:05:48 +01:00
Mark Haines 047927d822 Fix the release instructions 2016-09-14 14:16:51 +01:00
Mark Haines ec7d968623 Changelog and version bump for 1.3.0 2016-09-14 13:55:54 +01:00
Mark Haines 7647555fc7 Make release instructions more C+Pable 2016-09-14 11:48:15 +01:00
Mark Haines 6dfa64342a Fix the group javascript demo 2016-09-14 11:10:05 +01:00
Mark Haines f274adfe24 Merge remote-tracking branch 'matrix/master' 2016-09-13 17:55:21 +01:00
Mark Haines d7bc00c81d Merge pull request #23 from matrix-org/markjh/remove_message_index
Remove the messsage index from olm_init_inbound_group_session
2016-09-13 17:54:14 +01:00
Mark Haines 1a50a4b3a0 Merge pull request #22 from matrix-org/markjh/inbound_group_session_id
Add a olm_inbound_group_session_id method
2016-09-13 17:54:07 +01:00
Mark Haines a628ef41bd Remove the messsage index from olm_init_inbound_group_session since it is read from the session_key 2016-09-13 17:51:02 +01:00
Mark Haines 71bcaa5d45 Add a test to check the equivalence of session ids for inbound and outbound sessions 2016-09-13 17:15:28 +01:00
Mark Haines 6971f54fea Add a olm_inbound_group_session_id method 2016-09-13 17:02:36 +01:00
Mark Haines e0b51971b7 Merge pull request #21 from matrix-org/markjh/fix_session_ids
Use the ed25519 public key as the group session id.
2016-09-13 17:02:12 +01:00
Mark Haines a89a169c89 ``if`` is not the same as ``for`` 2016-09-13 17:00:54 +01:00
Mark Haines 5926a8fd29 Comment on the encoding of the message counter. 2016-09-13 16:45:54 +01:00
Mark Haines d62e344db7 Use the ed22519 public key as the group session id.
Some clients expect the session id to be globally unique,
so allowing the end devices to pick the session id will cause
problems.

Include the current ratchet index with the initial keys, this decreases
the risk that the client will supply the wrong index causing problems.

Sign the initial keys with the ratchet ed25519 key, this reduces the
risk of a client claiming a session that they didn't create.
2016-09-13 15:42:47 +01:00
Matthew Hodgson 576c6ad292 call double ratchet what it is 2016-09-06 22:46:58 +01:00
Richard van der Hoff 49ca6aca98 Bump version numbers to 1.2.0 2016-09-06 22:26:24 +01:00
Richard van der Hoff 976495e0ac Merge pull request #20 from matrix-org/rav/prep_v1.2.0
Prepare changelog for v1.2.0
2016-09-06 22:22:46 +01:00
Richard van der Hoff b5c65bed0a Prepare changelog for v1.2.0 2016-09-06 17:04:37 +01:00
Richard van der Hoff 79485b2230 Merge pull request #19 from matrix-org/rav/megolm_signing
Sign megolm messages
2016-09-06 15:53:06 +01:00
Richard van der Hoff 2fc83aa9ac Sign megolm messages
Add ed25519 keys to the inbound and outbound sessions, and use them to sign and
verify megolm messages.

We just stuff the ed25519 public key in alongside the megolm session key (and
add a version byte), to save adding more boilerplate to the JS/python/etc
layers.
2016-09-06 15:26:26 +01:00
Richard van der Hoff 50cd2b2a43 Clean up some typos
Remove redundant args from some js funcs, and fix a comment typo
2016-09-06 14:06:43 +01:00
Richard van der Hoff 7c84ce8098 Merge pull request #18 from matrix-org/rav/pickle_ed25519_in_c
Convert ed25519 pickling functions to C
2016-09-06 11:08:04 +01:00
Richard van der Hoff 8912d13b0b Merge pull request #17 from matrix-org/rav/group_session_error_handling
Fix error handling for group sessions
2016-09-06 11:07:53 +01:00
Richard van der Hoff c2b51207ee Fix error handling for group sessions
Fix a couple of places where we were using the wrong method to get the last
error.
2016-09-05 19:42:04 +01:00
Richard van der Hoff 617f9b1696 remove js package before building 2016-09-05 18:42:18 +01:00
Richard van der Hoff e7996e5984 pack the js after building 2016-09-05 18:40:37 +01:00
Richard van der Hoff 099757dc8f Build the JS wrappers on jenkins 2016-09-05 16:35:22 +01:00
Richard van der Hoff 833ecd3c73 Convert ed25519 pickling functions to C
... so that I can use them from the group session bits.
2016-09-05 12:59:12 +01:00
Richard van der Hoff c09aa77c4a Avoid ldconfig in the Makefile
... because OSX doesn't support it.
2016-09-05 11:56:53 +01:00
Richard van der Hoff 057ab15c1a Merge pull request #14 from matrix-org/rav/convert_crypto_to_c
Convert crypto.hh into C-compatible interface
2016-09-05 10:42:09 +01:00
Richard van der Hoff 69f269ffaf Convert AES functions to plain C 2016-09-05 10:40:39 +01:00
Richard van der Hoff f0acf6582f Convert Ed25519 and Curve25519 functions to plain C 2016-09-05 10:40:39 +01:00
Richard van der Hoff 2aad4cfa86 Merge pull request #15 from matrix-org/rav/has_received_message
OlmSession.has_received_message
2016-09-05 10:38:41 +01:00
Richard van der Hoff fee1748c60 Merge pull request #16 from matrix-org/rav/fix_megolm_utf8
Fix megolm decryption of UTF-8
2016-09-05 10:37:55 +01:00
Richard van der Hoff 9d16d82089 Merge pull request #13 from matrix-org/rav/split_out_key_lengths
Create new constants for key lengths, etc
2016-09-05 10:36:43 +01:00
Richard van der Hoff 1d4c13c798 Fix megolm decryption of UTF-8
Repeat the fix from b10f90d for megolm messages.

It turns out that the 'length' argument to 'Pointer_stringify' doesn't work if
the input includes characters >= 128.

Rather than try to figure out which methods can return UTF-8, and which always
return plain ascii, replace all uses of Pointer_stringify with a 'length'
argument with the version that expects a NULL-terminated input, and extend the
buffer by a byte to allow space for a null-terminator.

In the case of decrypt, we need to add the null ourself.

Fixes https://github.com/vector-im/vector-web/issues/2078.
2016-09-05 00:49:36 +01:00
Richard van der Hoff 2e9021c2e7 OlmSession.has_received_message
I find myself wanting to know if an OlmSession is in the pre-key state or not,
to help debugging at the application level.
2016-09-04 23:41:10 +01:00
Richard van der Hoff 39212987bd Create new constants for key lengths, etc
We were using olm::KEY_LENGTH for everything under the sun which happened to be
32 bytes long, and making a bunch of assumptions in the process. Create a bunch
of new constants (as C #defines rather than C++ consts so that I can use them
in another forthcoming refactor).
2016-09-02 15:11:14 +01:00
Richard van der Hoff 0c3f527dfd Bump version in package.json
... to match the Makefile
2016-09-01 14:31:34 +01:00
Richard van der Hoff e3664ef1d2 Merge branch 'rav/ed25519_fix' 2016-09-01 14:12:38 +01:00