Commit graph

801 commits

Author SHA1 Message Date
Mark Haines
408530adf9 Add API for removing used one time keys 2015-06-22 11:02:42 +01:00
Mark Haines
fb980849c4 Add gdb script and psuedo-call graph generator python script for tracing calls to crypto primitives 2015-06-21 18:47:06 +01:00
Mark Haines
0ca3797d2d Make the 'random' numbers different for each key in the tests 2015-06-21 18:33:46 +01:00
Mark Haines
9cd53394e7 Fix a few valgrind warnings in the tests 2015-06-20 20:13:31 +01:00
Mark Haines
499f680f5b Add python ctypes bindings and a command line script using them 2015-06-16 18:13:04 +01:00
Mark Haines
76f49cf177 Add a test for the axolotl API 2015-06-16 15:15:40 +01:00
Mark Haines
11861404e4 script for building a shared library 2015-06-15 17:49:43 +01:00
Mark Haines
4abead9e9e Add c interface which wraps the cpp classes 2015-06-15 17:49:20 +01:00
Mark Haines
7cdde73560 Add base64 encoders and decoders 2015-06-15 17:48:09 +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
Mark Haines
28541dd82a Implement the session key exchange 2015-06-22 14:30:46 +01:00
Mark Haines
6ecea67718 Implement the session key exchange 2015-06-12 14:09:41 +01:00
Mark Haines
08a7e44a96 Pass the message body to decrypt_max_plaintext_length so we can get a more accurate estimate, rename encrypt_max_output_length to encrypt_output_length and change the api to return the exact number of bytes needed to hold the message 2015-06-12 09:08:15 +01:00
Mark Haines
793b9b910a Start writing the interfaces for session and the account objects 2015-06-11 18:03:22 +01:00
Mark Haines
bcb05d1a99 rename Session to Ratchet 2015-06-11 16:10:55 +01:00
Mark Haines
e44c82a7b4 Add encoder and decoder for PreKey messages 2015-06-11 15:57:45 +01:00
Mark Haines
816435a860 Move AES specific details behind a cipher interface 2015-06-11 14:20:35 +01:00
Mark Haines
8161b56ff0 Move diagram to docs 2015-06-10 11:14:46 +01:00
Mark Haines
a08d706366 Add methods for pickling and unpickling sessions 2015-06-09 18:03:01 +01:00
Mark Haines
8123ce6209 Constant time comparison for mac 2015-03-03 15:08:56 +00:00
Mark Haines
2f2e0340ae const on right hand side 2015-03-03 15:08:26 +00:00
Mark Haines
a0e9065f1f Rename the ratchet source and include files from axolotl to ratchet 2015-03-03 11:50:17 +00:00
Mark Haines
315caaba7e Add functions for signing and verifying messages using curve25519 keys 2015-03-03 11:18:07 +00:00
Mark Haines
3ce450fc19 Merge commit '498dfabf9848286be003b42941c323a045d9fa46' as 'lib/ed25519' 2015-03-03 11:14:50 +00:00
Mark Haines
498dfabf98 Squashed 'lib/ed25519/' content from commit 1fc4a2f
git-subtree-dir: lib/ed25519
git-subtree-split: 1fc4a2ff69fe111875bd5efcc8523e40b18cf673
2015-03-03 11:14:50 +00:00
Mark Haines
8bf9954416 Add picture showing the guts of the ratchet 2015-03-02 01:13:25 +00:00
Mark Haines
c7419e7cdf Try to ensure the compiler cannot optimise away attempts to erase secrets from memory 2015-02-27 16:11:30 +00:00
Mark Haines
b3496b0aa1 More comments 2015-02-27 15:07:45 +00:00
Matthew Hodgson
65bb5d4e5b if you type axolotl a lotl you get it wrong 2015-02-27 13:09:17 +01:00
Mark Haines
a98acb8f0d Test out of order delivery of messages 2015-02-27 11:36:58 +00:00
Mark Haines
ea1ace8e1e Put the #! in the right place 2015-02-26 17:10:43 +00:00
Mark Haines
be70fb986e add a gitignore 2015-02-26 16:58:08 +00:00
Mark Haines
d142eb64dd Copyright notices and a license 2015-02-26 16:56:25 +00:00
Mark Haines
01abe0cfdc Add test for axolotl ratchet 2015-02-26 16:53:12 +00:00
Mark Haines
4844c1b90a Make test.py executable 2015-02-26 16:44:05 +00:00
Mark Haines
15bb93321f Merge commit 'c61e5359cb454ae20c0b7b057c3a7b53e2beefd6' as 'lib/crypto-algorithms' 2015-02-26 16:43:06 +00:00
Mark Haines
c61e5359cb Squashed 'lib/crypto-algorithms/' content from commit 100f4ff
git-subtree-dir: lib/crypto-algorithms
git-subtree-split: 100f4ff91b5a5b31a84b3999365c3058df6251ea
2015-02-26 16:43:06 +00:00
Mark Haines
6c56bcf2fd Merge commit 'e50ac707316ea6d8059f7036322450727773952d' as 'lib/curve25519-donna' 2015-02-26 16:40:56 +00:00
Mark Haines
e50ac70731 Squashed 'lib/curve25519-donna/' content from commit 28772f3
git-subtree-dir: lib/curve25519-donna
git-subtree-split: 28772f37a4b8a57ab9439b9e79b19f9abee686da
2015-02-26 16:40:56 +00:00
Mark Haines
09d8e84c7c Implement the axlotl ratchet 2015-02-26 16:30:19 +00:00
Mark Haines
186df91246 Start implementing the ratchet 2015-02-25 17:33:23 +00:00
Mark Haines
a4e5bf9772 Don't bother passing through the mac_length, the caller already knows it since they supplied it 2015-02-25 17:33:00 +00:00
Mark Haines
5f9cc65589 const correctness 2015-02-25 11:20:35 +00:00
Mark Haines
ba446e7a12 Add a message encoder/decoder 2015-02-25 11:20:12 +00:00
Mark Haines
8df4d9e9b5 Tweak AES cbc to add pcks7 padding bytes 2015-02-25 08:35:53 +00:00
Mark Haines
38332e0a12 Add a simple fixed size list class 2015-02-24 11:30:28 +00:00
Mark Haines
0e13cd3562 Move unit test code into a separate header 2015-02-24 11:28:07 +00:00
Mark Haines
7c1da4896f Use stdout for reporting test success/failure 2015-02-23 14:45:36 +00:00
Mark Haines
b2f865182d Finish and test crypto primitives 2015-02-21 01:36:15 +00:00