-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Covert should switch to the Monocypher library for elliptic curve operations because libsodium is lacking much required functionality such as Dirty Elligator 2 (no, despite the name that is not an unclassy movie flick). Currently we have a plain Python implementation for all the algorithms needed but a C library provides better performance and higher security (also better than current libsodium bindings can).
Currently there are two existing bindings which have not been updated since Summer 2020 and which thus lack the features needed:
https://github.com/eugene-eeo/monocypher-py
https://github.com/jetperch/pymonocypher
It should be investigated whether anything can be salvaged of them (Python CFFI has also changed much), and if necessary an all new binding created. Fortunately the library is a simple, single file, plain C implementation, which should make the raw bindings easy. Additional wrappers will be necessary to support good Pythonic style, while still staying close to the original API, so there is still quite a bit of work needed.