Commit Graph

600 Commits (602c00a8d658e8510e37e841dd06c70f276d0f00)

Author SHA1 Message Date
David Baker 602c00a8d6 Dual-build wasm and asm.js olm 2018-10-04 20:09:54 +01:00
David Baker 00384ba87a Merge remote-tracking branch 'origin/master' into dbkr/wasm 2018-10-02 10:15:14 +01:00
David Baker 04f58bb0c9
Merge pull request #59 from matrix-org/dbkr/fix_trailing_newlines
Remove trailing letter 'K's from the test pubkeys
2018-10-02 10:04:14 +01:00
David Baker 2835110cee Remove trailing letter 'K's from the test pubkeys
base64 encoded newlines somehow?
2018-10-01 20:01:47 +01:00
David Baker b51d75392b Merge remote-tracking branch 'origin/master' into dbkr/wasm 2018-10-01 16:14:39 +01:00
Matthew Hodgson 8f6e0557ee oops, fix typo - thanks to @dest4 2018-09-27 18:45:00 +01:00
David Baker c4a3918686 Support passing olm options into init() 2018-09-26 16:38:39 +01:00
David Baker 498562fa65 Breking change 2018-09-25 18:03:31 +01:00
David Baker dfbe8a4796 Return same promise if init() called many times
So we only init the library once.
2018-09-25 17:48:17 +01:00
David Baker 263b94428a Another day, another interface
Change the interface again, hopefully this time a bit more normal.
Now we wrap the emscripten module completely and just expose the
high level objects.

The olm library export is now imported as normal (ie. returns
a module rather than a function returning a module) but has an
`init` method which *must* be called. This returns a promise
which resolves when the module is ready. It also rejects if the
module failed to set up, unlike before (and unlike the
promise-not-a-promise that emscripten returns).

Generally catch failures to init the module.
2018-09-25 17:13:29 +01:00
David Baker f29d8cdd7b Also ship the wasm file 2018-09-21 16:39:04 +01:00
David Baker 5e87db615a Make OLM_OPTIONS work again
The closure compiler was just renaming the variable so it never
would have picked them up. Make it an extern so it knows what to do.
2018-09-21 16:35:17 +01:00
David Baker 122867c45c WebAssembly support!
Quite a lot going on in this PR:
 * Updates to support recent emscripten, switching to WASM which is now the default
 * Use emscripten's MODULARIZE option rather than wrapping it ourself, since doing
   so in pre-post js doesn't work anymore.
 * Most changes are moving the emscripten runtime functions to top-level
   calls rather than in the Module object.
 * Get rid of duplicated NULL_BYTE_PADDING_LENGTH
 * Fix ciphertext_length used without being declared
 * Fix things that caused the closure compiler to error, eg. using
   OLM_OPTIONS without a declaration.
 * Wait until module is inited to do OLM_ERROR = olm_error()

The main BREAKING CHANGE here is that the module now needs to initialise
asyncronously (because it has to load the wasm file). require()ing olm
now gives a function which needs to be called to create an instance.
The resulting object has a promise-like then() method that can be used
to detect when the module is ready. (We could use MODULARIZE_INSTANCE
to return the module directly as before, rather than the function,
but then we don't get the .then() method).
2018-09-21 16:01:51 +01:00
David Baker d6cd18df40
Merge pull request #55 from matrix-org/dbkr/pk_key_length
Fix output buffer length check
2018-09-20 11:30:27 +01:00
David Baker 65d4ac19c8 Fix output buffer length check
...when generating a key in PkDecryption.

The pubkey is base64ed on the output, so will be longer.
2018-09-19 14:10:12 +01:00
Hubert Chathi ed02c217e6 update address for sending feedback for olm 2018-08-15 22:03:48 -04:00
Richard van der Hoff 0dc27f73c4 Request patches to olm@matrix.org 2018-07-09 11:53:13 +01:00
Hubert Chathi 98e8ee1b0d prepare 2.3.0 2018-07-04 15:24:44 -04:00
Hubert Chathi dac2c1064e use void in type signatures for functions with no arguments 2018-06-28 17:13:52 -04:00
Hubert Chathi f709b062bb add functions for pickling/unpickling a decryption object 2018-06-28 17:10:36 -04:00
Hubert Chathi 3ed0ec226c add termination 2018-06-28 17:03:46 -04:00
Hubert Chathi b91c77721d improve public key encryption unit test 2018-06-28 15:11:53 -04:00
Hubert Chathi 307309c69b add initial version of Android wrapper for public key API 2018-06-27 18:49:48 -04:00
Hubert Chathi 552da6eafe use the correct method to get the random length 2018-06-27 17:36:55 -04:00
Hubert Chathi 128d45cc83 add initial implementation of basic private key encryption functionality 2018-06-27 16:38:45 -04:00
Hubert Chathi 6a2a2741e8 fix some comments 2018-06-27 16:35:15 -04:00
Benoit Marty 28e0c4baca Improve .gitignore: exclude generated files for test 2018-06-27 14:00:20 -04:00
Benoit Marty 6f2145337b Comment out proxy settings 2018-06-27 14:00:20 -04:00
Benoit Marty 44c5923522 Upgrade tools
gradle 2.14.1 to 4.7
build tools 21.1.2 to 27.0.3
build gradle 2.1.3 to 3.1.3
2018-06-27 14:00:20 -04:00
Benoit Marty ed7649d71e Compiling with last NDK + some hardening
Patch received in https://github.com/matrix-org/olm/issues/13
2018-06-27 14:00:20 -04:00
Benoit Marty 08e50693b7 ignore generated files 2018-06-27 14:00:20 -04:00
Benoit Marty 9550d6cebc Fix null pointer dereference
Patch has been received by e-mail, Signed-off-by: Arnaud Fontaine <arnaud.fontaine@ssi.gouv.fr>
2018-06-27 14:00:20 -04:00
Benoit Marty 570e3a706f Add a .gitignore file specific for Android project 2018-06-27 14:00:20 -04:00
manuroe 36fd68c818 OLMAccount: Fix use of object after its memory was released 2018-06-27 12:26:44 -04:00
manuroe 20ee3858b9 Update Xcode test project 2018-06-27 12:26:26 -04:00
manuroe 2e84f7552a Fix obj-c warnings 2018-06-27 12:26:01 -04:00
manuroe 9d81046f90 Fix warnings reported by LLVM 2018-06-27 12:25:27 -04:00
Hubert Chathi ddc981c475 fix a length check and add some missing length checks 2018-06-27 12:14:19 -04:00
Richard van der Hoff 6d86835421 Update releasing instructions 2018-06-22 13:58:48 +01:00
Wilfried Klaebe 62b576b903 Python: add binding for olm_remove_one_time_keys
Signed-off-by: Wilfried Klaebe <w+gitstuff@chaos.in-kiel.de>
2018-05-29 11:41:25 +01:00
MTRNord 4065c8e11a Update Makefile to support building on Windows
The code for this change is taken from
https://stackoverflow.com/a/30225575/4929236

This patch is Signed-Off-By: Marcel Radzio <marcel@radzio-sh.de>
2018-04-12 10:51:16 +01:00
Hubert Chathi 3f5b9dd6d7 patch for libolm: fix some typos in JavaScript library
From 4a82d31e8cb808a04956fc847ed0ec0ff322b956 Mon Sep 17 00:00:00 2001
From: Hubert Chathi <hubert@uhoreg.ca>
Date: Wed, 3 Jan 2018 21:37:43 -0500
Subject: [PATCH] fix some typos in JavaScript library

Signed-off-by: Hubert Chathi <hubert@uhoreg.ca>
2018-01-09 15:57:47 +00:00
Richard van der Hoff 18b067a46f jenkins.sh: Run python bits in a virtualenv
because we may not have pep8 installed at the system level
2017-11-22 16:57:50 +00:00
Alexey Rusakov 0fd406cca8 Drop unused #include
Signed-off-by: Alexey Rusakov <ktirf@users.sf.net>
2017-09-29 09:35:04 +01:00
Alexey Rusakov 3c33180fe3 Avoid C99 inside C++ code
This disrupts building at least with Visual Studio.

Signed-off-by: Alexey Rusakov <ktirf@users.sf.net>
2017-09-29 09:35:04 +01:00
Hubert Chathi 0fd768e1b5 update link in README to match changes in 780d83a
Signed-off-by: Hubert Chathi <hubert@uhoreg.ca>
2017-06-08 11:31:39 +01:00
Eli Flanagan 780d83a1d8 update link 2017-06-07 10:10:39 +01:00
Matthew Hodgson b7dcbfdf64 add audit notes 2017-05-08 11:35:50 +01:00
Richard van der Hoff 7de2931509 Enforce PEP8 in jenins build 2017-04-24 13:14:46 +01:00
Richard van der Hoff f8c61b8f84 Python: Make ed25519_verify take some arguments
It's not much use if everything is hardcoded.
2017-04-24 13:14:36 +01:00