Commit graph

788 commits

Author SHA1 Message Date
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
Richard van der Hoff
214e932806 Merge branch 'rav/ed25519_fix' 2016-09-01 14:06:57 +01:00