This repo contains the library used for cryptography of products used by Devolutions.
It also includes wrappers for it in different languages.
Currently, the supported languages are: Rust, C# and Javascript/Typescript.
Python bindings are also available as a beta, but it is not production ready yet. You can install it with pip3 install devolutions-crypto, but this might not work depending on the platform. If it doesn't, you can try building it manually.
Note that the Javascript version of the library is compiled using WebAssembly, so it can run in a browser.
As of the current version:
- Symmetric cryptography uses XChaCha20Poly1305
- Asymmetric cryptography uses Curve25519.
- Asymmetric encryption uses ECIES.
- Key exchange uses x25519, or ECDH over Curve25519
- Password Hashing uses PBKDF2-HMAC-SHA2-256
- Secret Sharing uses Shamir Secret sharing over GF256
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in devolutions-crypto by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.