aboutsummaryrefslogtreecommitdiff
path: root/python
AgeCommit message (Collapse)Author
2019-04-12Merge pull request #86 from matrix-org/add_python_pk_signingHubert Chathi
add python bindings for PK signing
2019-04-12more isortHubert Chathi
2019-04-12isort python/olm/pk.pyHubert Chathi
2019-04-09python: Add the SAS header to the manifest.Damir Jelić
The SAS header is required to build the package therefore it needs to be shipped with the source distribution of the package. Adding it to the manifest achieves this.
2019-04-09python: Add support for the long KDF MAC calculation.Damir Jelić
2019-04-09python: Remove an unneeded and old copyright header.Damir Jelić
2019-04-08add python bindings for PK signingHubert Chathi
2019-04-08Merge branch 'master' into poljar/python-sasHubert Chathi
2019-04-08python: Build the build headers with setup.py.Damir Jelić
This allows downstream users to install this python module with pip as well as allowing people to declare it as a dependency in their setup.py. Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2019-04-08python: Fix the MANIFEST file.Damir Jelić
This patch adds the Olm header files to the manifest, this results in the header files being added to source distributions of the python-olm module. The headers are required to build the module. Including them in the source distribution is the easiest way to make sure that builds from the source distribution will succeed provided that the Olm C library is already installed. Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2019-04-08python: Add PK bindings.Damir Jelić
This patch adds bindings to the PK part of the Olm library contained in the pk.h header file. Encryption, decryption as well as pickling/unpickling of the decryption object is supported. Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2019-04-08python: Make the typing module a requirement only for old python versions.Damir Jelić
Typing is part of standard library from python 3.5 and from python 3.7 onwards trying to install it results in an error. This patch disables typing installation on python versions that are newer than 3.5. Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2019-04-02python: Expose the sha256() function in the utilities.Damir Jelić
Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2019-04-02python: Add Short Authentication String bindings.Damir Jelić
This patch adds bindings to the SAS part of the Olm library contained in the sas.h header file. Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2019-01-23python: Turn the signature buffer into a bytearray.Damir Jelić
This is a workaround for a bug where signature verification would overwrite the variable holding the signature. This only happens on python2. Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2018-10-23prepare release 3.0.0Hubert Chathi
2018-10-16add more buffer clearingHubert Chathi
2018-10-16overwrite buffers that may contain sensitive dataHubert Chathi
also reduce the amount of memory copying that we do
2018-10-16remove unnecessary comments about not enough randomHubert Chathi
2018-10-15add license headers to python bindingsHubert Chathi
2018-10-12add dummy header files for generating cffi function listHubert Chathi
2018-10-12remove code coverage and TravisCI badgesHubert Chathi
since they're not for the right repository any more
2018-10-12build and test improvementsHubert Chathi
- build both Python2 and Python3 libs by default, and add separate rules building Python2 and Python. - use the libraries as built by setuptools, rather than building again separately
2018-10-12remove redundant license fileHubert Chathi
2018-10-12always use files from ../include and ../buildHubert Chathi
2018-10-12generate python/include/olm/olm.h automaticallyHubert Chathi
2018-07-18python: Enable build with the local build of the Olm C library.Damir Jelić
This patch adds the ability to build the bindings without having a globally installed Olm C library. Provided that the C library is already built, the tests can be run now with make test. Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2018-07-18python: Import improved python bindings.Damir Jelić
This commit imports the python bindings from: https://github.com/poljar/python-olm The bindings are imported at commit c44b145818520d69eaaa350fb95afcb846125e0f Minor modifications were made while importing: - Removed travis config - Removed Arch Linux PKGBUILD - Removed the html docs, they can be rebuild by running make html in the docs folder - Slightly modified the README The new bindings feature some improvements over the old ones: - Python 2 and 3 support - Automatic memory management - Automatic memory clearing before it is freed - Type signatures via the python typing module - Full test coverage - Properties are utilized where it makes sense (e.g. account.id) Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2018-07-18python: Remove the python bindings.Damir Jelić
Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2018-05-29Python: add binding for olm_remove_one_time_keysWilfried Klaebe
Signed-off-by: Wilfried Klaebe <w+gitstuff@chaos.in-kiel.de>
2017-04-24Python: Make ed25519_verify take some argumentsRichard van der Hoff
It's not much use if everything is hardcoded.
2017-04-24Merge branch 'master'Richard van der Hoff
Merge master into patched branch to fix conflicts prior to merge back to master
2017-04-24PEP8Richard van der Hoff
Fix line lengths in newly-added code
2017-04-24Add ed25519_verify to __init__.py and add test for ed25519_verifypik
Signed-off-by: Alexander Maznev <alexander.maznev@gmail.com>
2017-04-24Add utility module to olm/python - for ed25519_verifypik
Signed-off-by: Alexander Maznev <alexander.maznev@gmail.com>
2017-04-18Return python int instead of c_uint32 for InboundGroupSession.decrypt ↵pik
message_index Signed-off-by: Alexander Maznev <alexander.maznev@gmail.com>
2017-04-18PEP8 for python bindingsRichard van der Hoff
make the python code adhere to PEP8
2017-04-04Python: Switch to a more general os.urandom for randomness sourceJ08nY
Signed-off-by: Jan Jancar <johny@neuromancer.sk>
2017-01-09Implement importing group session dataRichard van der Hoff
olm_import_inbound_group_session, which reads the format written by olm_export_inbound_group_session to initialise a group session.
2017-01-06Enable exporting inbound group session keysRichard van der Hoff
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.
2016-10-25Update python wrapper to run against libolm.so.2Richard van der Hoff
2016-10-21Merge pull request #31 from matrix-org/markjh/groupmessageindexMark Haines
Return the message index when decrypting group messages.
2016-10-20Return the message index when decrypting group messages.Mark Haines
Applications can use the index to detect replays of the same message.
2016-10-02fix missing ctypes function signaturesMatthew Hodgson
These missing signatures were causing OSX to truncate 64-bit pointers to 32-bit pointers when calling the missing methods, causing segfaults
2016-09-22InboundGroupSession.init no longer requires a separate message_indexRichard van der Hoff
2016-09-22Handle non-base64 chars in pickle filesRichard van der Hoff
2016-09-13Merge pull request #23 from matrix-org/markjh/remove_message_indexMark Haines
Remove the messsage index from olm_init_inbound_group_session
2016-09-13Remove the messsage index from olm_init_inbound_group_session since it is ↵Mark Haines
read from the session_key
2016-09-13Add a olm_inbound_group_session_id methodMark Haines
2016-09-01Fix Ed25519 keypair generationRichard van der Hoff
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.