Hubert Chathi
ec5ff1e032
also check that the pubkey is set when calculating the MAC
2020-09-23 16:47:00 -04:00
Hubert Chathi
78d9cbabb7
set their_key_set flag explicitly on init
2020-09-23 16:11:37 -04:00
Saúl Ibarra Corretgé
2ef1f6f4fc
SAS: add olm_sas_is_their_key_set
...
Also make olm_sas_generate_bytes fail if their key wasn't set.
2020-09-23 15:27:55 -04: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
Hubert Chathi
fc423fad15
check return value of snprintf, fix typo, add clarification
2019-10-08 17:44:09 -04:00
David Baker
b482321213
Pass in a buffer to olm_session_describe
...
instead of having a static one, as that could end up taking up a
lot of memory if your app keeps olm sessions hanging about.
2019-10-04 11:43:40 +01:00
David Baker
39a1ee0b18
Add olm_session_describe
...
As a way to dump the state of an olm session, ie. the chain indicies,
so we can debug why olm sessions break and get out of sync.
2019-10-01 11:14:16 +01:00
Hubert Chathi
969c8b45e5
add more consts and comments
2019-05-14 22:02:50 -04:00
Hubert Chathi
0757e6df40
add comment about input buffers being overwritten
...
also make some params const where possible
2019-05-14 12:53:19 -04:00
Hubert Chathi
3148157ea4
add support for an incorrect KDF that snuck into Riot 1.0
2019-04-02 23:39:05 -04:00
Hubert Chathi
0348f06a56
rename functions to be more consistent
2019-03-13 22:39:21 -04:00
Hubert Chathi
48dda7922d
call the right function and remove unnecessary include
2019-02-01 11:39:06 -05:00
David Baker
8df2ab7c07
Add signing class to the pk module
2019-01-29 20:47:41 +00:00
Hubert Chathi
94f664e725
initial implementation of short authentication string generation
2019-01-21 23:21:41 -05:00
Hubert Chathi
8c1169f0f5
use the correct error code
2018-10-15 10:11:47 -04:00
David Baker
fac1d52dfe
Add aliases for deprecated functions
2018-10-11 18:16:39 +01:00
Hubert Chathi
f6e3f7f44a
Merge branch 'master' into dbkr/pk_private_export_import
2018-10-05 14:52:01 -04:00
Hubert Chathi
8520168e0b
fix some code style issues and typos
2018-10-05 10:35:09 -04:00
David Baker
0346145a81
Work with PkDecryption keys by their private keys
...
Change interface to allow the app to get the private part of the
key and instantiate a decryption object from just the private part
of the key.
Changes the function generating a key from random bytes to be
initialising a key with a private key (because it's exactly the
same thing). Exports & imports private key parts as ArrayBuffer at
JS level rather than base64 assuming we are moving that way in
general.
2018-10-02 12:02:56 +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
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
128d45cc83
add initial implementation of basic private key encryption functionality
2018-06-27 16:38:45 -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
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
Richard van der Hoff
c04b770cd3
Add some tests for inbound session import/export
2017-01-10 14:11:42 +00:00
Richard van der Hoff
fc72c732fd
Store a flag indicating if the sender key is verified
2017-01-10 10:57:14 +00:00
Richard van der Hoff
a2f0c93a93
Implement importing group session data
...
olm_import_inbound_group_session, which reads the format written by
olm_export_inbound_group_session to initialise a group session.
2017-01-09 17:45:46 +00:00
Richard van der Hoff
5fbeb3e29b
Enable exporting inbound group session keys
...
A pair of functions which allow you to export the megolm keys for an inbound
group session, so that an application can save/restore them.
2017-01-06 16:41:56 +00:00
Richard van der Hoff
a7310c5821
Return the base64-encoded length of pickles
...
make olm_pickle_* return the lengths of the base64-encoded pickles, rather than
the raw pickle. (From the application's POV, the format of the pickle is
opaque: it doesn't even know that it is base64-encoded. So returning the length
of the raw pickle is particularly unhelpful.)
2016-10-24 10:06:06 +01:00
Richard van der Hoff
21ce3491dd
Clear random buf in olm_init_outbound_group_session
...
All the other methods clear their random inputs. This one needs to do the same,
to reduce the risk of the randomness being used elsewhere and leaking key info.
2016-10-21 17:19:59 +01:00
Mark Haines
5a98012c0d
Merge pull request #31 from matrix-org/markjh/groupmessageindex
...
Return the message index when decrypting group messages.
2016-10-21 09:57:42 +01:00
Mark Haines
3091dc2b1d
Add NULL check for message_index pointer
2016-10-20 11:35:45 +01:00
Mark Haines
653790eacb
Return the message index when decrypting group messages.
...
Applications can use the index to detect replays of the same message.
2016-10-20 09:58:55 +01:00
Richard van der Hoff
1ff64391ed
Fix a buffer bounds check when decoding group messages
...
Fixes a segfault when a group message had exactly the length of the mac +
signature.
Also tweak skipping of unknown tags to avoid an extra trip around the loop.
2016-10-19 15:03:40 +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
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
6971f54fea
Add a olm_inbound_group_session_id method
2016-09-13 17:02:36 +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
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
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
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
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