Commit graph

330 commits

Author SHA1 Message Date
Richard van der Hoff
2bb7f3b1e6 Tweak javascript build to make npm better
Build into 'javascript' dir and tell package.json exactly which files we care
about.
2015-12-02 14:04:24 +00:00
Matthew Hodgson
28622db92f switch from /usr/bin/python to /usr/bin/env python. this doesn't help folks whose python path points at python3 (e.g. Arch linux) though, but I see no choice than they have to change the shebangs, as we do on Synapse. For instance, OSX doesn't have a python2 symlink, otherwise we'd use /usr/bin/env python2 shebang. 2015-11-01 13:05:51 +00:00
Matthew Hodgson
22f370c5cd add legalese 2015-10-05 14:21:08 +01:00
Matthew Hodgson
d5d1e3c288 link to the spec 2015-10-02 23:57:46 +01:00
Matthew Hodgson
989056e075 typo 2015-08-24 10:29:35 +01:00
Matthew Hodgson
4e042294e4 IPR, feedback & acknowledgements 2015-08-20 22:59:52 +02:00
Matthew Hodgson
b9ff140b17 minor typos and clarifications 2015-08-20 22:50:11 +02:00
Mark Haines
bed93fcbc7 Add explanation of the notation in the spec 2015-08-20 11:22:51 +01:00
Mark Haines
7bb5f1ebd6 Merge pull request #1 from matrix-org/markjh/protocol-specification
Add a basic specification for the olm protocol and format.
2015-08-20 10:19:35 +01:00
Mark Haines
f58b71a14e Clarify that only the public parts of keys are sent over the wire 2015-08-20 10:12:19 +01:00
Mark Haines
5e1b8a5b3b Add docstrings for the utility class 2015-08-20 10:08:15 +01:00
Mark Haines
7649125a9e Add docstrings for the Session methods 2015-08-19 18:16:47 +01:00
Mark Haines
b318055185 Replace hard coded references to the 32-byte key length with a constant, add utilities for copying data to and from fixed sized arrays 2015-08-19 17:32:06 +01:00
Mark Haines
a378a40b3a Document that the ciphertext and plaintext may share a buffer when encrypting and decrypting 2015-08-19 15:39:19 +01:00
Mark Haines
900d2d70b4 Add docstring for the base64 encode/decode methods 2015-08-19 15:38:20 +01:00
Mark Haines
159faa1e2b Make the internal functions static, remove some unused internal functions 2015-08-18 17:09:55 +01:00
Mark Haines
eee46a549c Fix spelling 2015-08-18 14:46:57 +01:00
Mark Haines
c4ad39a3c4 Linkify all of the HMAC and HKDF references 2015-08-18 14:40:10 +01:00
Mark Haines
be9d74063d Add some links to the spec for the various primitives being used. 2015-08-18 14:33:40 +01:00
Mark Haines
40e49ee173 Add spec for the authenticated encryption used by olm 2015-08-11 18:13:26 +01:00
Mark Haines
c35d1d420f Check that the end of input hasn't been reached when unpickling a list 2015-08-11 13:14:06 +01:00
Mark Haines
447501bd57 Document the pre-key messages 2015-08-11 13:12:51 +01:00
Mark Haines
9e79571d07 Start specifying the message format 2015-08-10 17:12:03 +01:00
Mark Haines
158f7ee891 Fix crash where the message length was shorter than the length of the mac 2015-08-07 19:33:48 +01:00
Mark Haines
a4b2927884 Initialise the length fields of the reader struct in decode_message, even if the message is invalid, fixes a crash where the message was too short 2015-08-07 18:58:42 +01:00
Mark Haines
76ecd85c2c Fix a crash when decoding messages that are too short 2015-08-07 18:25:21 +01:00
Mark Haines
531a2fb426 Document the olm protocol. 2015-08-05 17:22:51 +01:00
Mark Haines
49c117c62e Start writing protocol spec for olm 2015-08-04 18:09:44 +01:00
Mark Haines
41a8fb61af Add sha256 and ed25519_verify methods to javascript bindings 2015-08-04 11:55:04 +01:00
Mark Haines
39c1f3b355 Add methods for computing sha256 hashes and validating ed25519 signatures 2015-07-24 14:29:52 +01:00
Mark Haines
411109d893 Add package.json for adding olm to npm 2015-07-21 15:04:27 +01:00
Mark Haines
5a60e543a5 Add more workarounds for closure compiler in javascript bindings 2015-07-21 14:30:46 +01:00
Mark Haines
bb70307b11 Fix javascript bindings: matches_inbound doesn't take an account argument 2015-07-21 10:50:17 +01:00
Mark Haines
f0bb8e03b3 More fixes to the javascript bindings to get them to behave with browserify 2015-07-20 16:33:45 +01:00
Mark Haines
970fc60f8b Add remove_one_time_keys to the javascript bindings 2015-07-17 18:43:41 +01:00
Mark Haines
3468886e27 Add method getting a session id. Update the python and javascript bindings 2015-07-16 11:45:20 +01:00
Mark Haines
89d9b972a6 Add versions of olm_session_create_inbound and olm_session_matches_inbound which take the curve25519 identity key of the remote device we think the message is from as an additional argument 2015-07-16 10:45:10 +01:00
Mark Haines
7523b700cf Add a test of olm which uses malloc to create it's buffers so that it is possible to check of out of bounds reads and writes using valgrind 2015-07-15 17:34:48 +01:00
Mark Haines
3bfa8e5863 Fix bug in list where the wrong value was copied if an item was inserted at the beinging of the list 2015-07-15 16:31:45 +01:00
Mark Haines
0d14cb5797 Get build_shared_library to compile at -O3 instead of -O0 2015-07-15 13:40:32 +01:00
Mark Haines
137aa31e95 olm_account_last_error and olm_clear_account should take an Account not a Session 2015-07-15 13:24:26 +01:00
Mark Haines
c965a0e619 Call the right c function from Session.matches_inbound. It was calling create_inbound_session rather than matches_inbound_session 2015-07-15 12:45:50 +01:00
Mark Haines
bede3a8499 Tweak the javascript bindings so that they will work with Node.js 2015-07-14 16:45:00 +01:00
Mark Haines
36d17d1cb2 Move olm.py to a python subdirectory. Add a script for testing the olm.py script 2015-07-14 11:38:43 +01:00
Mark Haines
a59fbdfe7f Add a test for pickling and unpickling sessions, fix off by one error when unpickling sessions 2015-07-14 11:32:11 +01:00
Mark Haines
2e49a6f41e Clear the random buffers once they've been used. Add methods for clearing the account and session object once they've been used 2015-07-10 18:29:14 +01:00
Mark Haines
5ad929104e Version the pickled objects and check for errors when unpickling them 2015-07-10 18:00:18 +01:00
Mark Haines
b6e248c9a5 Output simpler JSON for the account keys, don't sign the JSON but instead provide a olm_account_sign method so that the user of the library can sign the JSON themselves 2015-07-10 11:57:53 +01:00
Mark Haines
373acefde7 Add c bindings for the methods for managing one time keys 2015-07-09 18:35:54 +01:00
Mark Haines
5634be0507 Add methods for generating new one time keys and for tracking which one time keys have been published 2015-07-09 16:09:16 +01:00