Commit graph

1033 commits

Author SHA1 Message Date
Richard van der Hoff
25953b350b Use header files where possible
This fixes an incorrect re-declaration of ed25519_sign.

Implement header files for some of the other library bits so that we don't need
to declare functions in crypto.cpp.
2015-12-03 17:08:04 +00:00
Richard van der Hoff
2416658443 Document process for building npm package 2015-12-03 15:46:11 +00:00
Richard van der Hoff
a5fe3f605a Fix a console error when importing in a browser
something about 'global' not defined
2015-12-02 14:06:01 +00:00
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