Hubert Chathi
631f050554
add a test for fallback keys, and clear memory when we forget the old fallback
2021-11-23 22:35:10 +00:00
Hubert Chathi
29e0287ef3
add function to forget the old fallback key
2021-11-23 22:35:10 +00:00
Hubert Chathi
4127a84b3d
add function for getting length of unpublished fallback keys
...
and fix a typo
2021-11-23 22:35:10 +00:00
Hubert Chathi
b989db0117
track if fallback keys were published
2021-11-23 22:35:10 +00:00
Denis Kasak
bdd73c5c32
Fix unpickling error handling.
2021-07-31 01:27:43 +00:00
Hubert Chathi
37c8e14e53
make functions const where possible
2021-06-16 23:22:25 -04:00
Tobias Furuholm
541a2bf6fd
Fix length calculation of fallback key json
2020-11-24 13:47:27 -05:00
Hubert Chathi
c47c6ca399
fix style
2020-09-16 16:14:23 -04:00
Hubert Chathi
171044f3fc
add support for fallback keys
2020-08-14 17:29:41 -04: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
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
f0acf6582f
Convert Ed25519 and Curve25519 functions to plain C
2016-09-05 10:40:39 +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
0c462cff11
Fix Ed25519 keypair generation
...
Ed25519 private keys, it turns out, have 64 bytes, not 32.
We were previously generating only 32 bytes (which is all that is required to
generate the public key), and then using the public key as the upper 32 bytes
when generating the per-message session key. This meant that everything
appeared to work, but the security of the private key was severely compromised.
By way of fixes:
* Use the correct algorithm for generating the Ed25519 private key, and store
all 512 bits of it.
* Update the account pickle format and refuse to load the old format (since we
should consider it compromised).
* Bump the library version, and add a function to retrieve the library
version, so that applications can verify that they are linked against a
fixed version of the library.
* Remove the curve25519_{sign, verify} functions which were unused and of
dubious quality.
2016-09-01 13:35:23 +01:00
Richard van der Hoff
f9139dfa6a
Convert error.hh to plain C
2016-05-23 18:55:05 +01:00
Richard van der Hoff
3965320a9c
Remove logging functionality
...
Concerns have been raised that including logging functionality makes it harder
to audit the implementation to ensure that no secret information is leaked. We
are therefore removing it from the master branch.
2016-05-16 11:13:54 +01:00
Richard van der Hoff
b3db0e6ee1
translate logging.cpp to C
2016-05-16 11:05:57 +01:00
Richard van der Hoff
9848f84452
Add some logging to help understand what's going on
2016-04-26 17:55:26 +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
159faa1e2b
Make the internal functions static, remove some unused internal functions
2015-08-18 17:09:55 +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
Mark Haines
0e988237f6
Don't pass a key id when creating a new outbound session
2015-07-08 16:04:18 +01:00
Mark Haines
532dc0d4e7
Change the JSON format for one time keys to include what algorithm they are for
2015-07-08 15:30:34 +01:00
Mark Haines
5291ec78b5
Send the public part of the one time key rather than passing an identifier
2015-07-08 14:53:25 +01:00
Mark Haines
974e0984bd
Update the javascript bindings and demo to match the format of the identity key JSON
2015-07-08 11:16:00 +01:00
Mark Haines
3a382aec59
Encode the account keys as a signed JSON object
2015-07-07 16:42:03 +01:00
Mark Haines
a30a64d179
Rename generate_key to curve25519_generate_key
2015-07-07 09:03:12 +01:00
Mark Haines
f1cd5613f6
Remove the last resort one time key
2015-07-07 09:01:38 +01:00
Mark Haines
667e415c74
Removed SignedKey class
2015-07-07 08:56:18 +01:00
Matthew Hodgson
09d4125ff1
Rename axolotlpp as olm to avoid confusion with Axolotl-the-spec and Axolotl-the-OWS-libraries at moxie's request
2015-06-27 01:15:23 +02:00
Mark Haines
f10c04d62d
reduce the number of one time keys that get generated when we create an account
2015-06-23 17:49:04 +01:00
Mark Haines
043bc43716
Copyright Notices
2015-06-22 17:50:56 +01:00
Mark Haines
408530adf9
Add API for removing used one time keys
2015-06-22 11:02:42 +01:00
Mark Haines
026e4394bb
Implement creating a new account
2015-06-15 17:47:22 +01:00
Mark Haines
6fe3b7eb73
Move utils for pickling into a separate file
2015-06-12 16:15:37 +01:00