-
Notifications
You must be signed in to change notification settings - Fork 49
Features
Gurpreet Paul edited this page Nov 18, 2022
·
6 revisions
- Kotlin compatible.
- Fat-jar compatible; can be used in applications such as SpringBoot.
- Up-to-date with the awesome Libsodium library (version
1.0.18
, 17th Nov 2022). - Bundled and compiled native libraries so you don't have to.
- Ability to use commercially under the terms of the MPLv2.
- Great collaborative documentation.
- Reactive and fast release cadence.
- Bring your own Libsodium native libraries.
- Lazysodium for Android and Lazysodium for Java both benefit from the same codebase.
- They both have been designed with JNA Direct Mapping for extra speed.
- Architected in a composite oriented fashion to allow developers to narrow what operation they want to use at any time - less opportunity for bugs.
- Architected in such a way that you can use raw JNA wrapped native C functions whenever you want.
- Super easy install.
- Completely open source.
A checkmark in the Native
column means that the particular operation has C native functions written for Java and Android. A checkmark in the Lazy
column means that the particular operation has been smartly implemented so that the developer has an effortless experience on Java and Android. A checkmark in the Tests
column means that testing has been performed on that operation for both Java and Android.
Operation | Native | Lazy | Tests |
---|---|---|---|
Auth - crypto_auth* functions |
✔ | ✔ | ✔ |
AEAD -crypto_aead* functions |
✔ | ✔ | ✔ |
Box - crypto_box* functions |
✔ | ✔ | ✔ |
Diffie-Hellman - crypto_scalarmult* functions |
✔ | ✔ | ✔ |
Ed25519 to Curve25519 - crypto_sign_ed25519 functions |
✔ | ✔ | ✔ |
GenericHash - crypto_generichash* functions |
✔ | ✔ | ✔ |
HMAC-SHA-2 - crypto_auth_hmacsha* functions |
✔ | ✔ | ✔ |
KeyDerivation - crypto_kdf* functions |
✔ | ✔ | ✔ |
KeyExchange - crypto_kx* functions |
✔ | ✔ | ✔ |
Padding - several padding functions | ✔ | ✔ | ✔ |
PwHash - crypto_pwhash* functions |
✔ | ✔ | ✔ |
Random - several randomisation functions | ✔ | ✔ | ✔ |
Scrypt - crypto_pwhash_scrypt* functions2
|
✔ | ✔ | ✔ |
SecretBox - crypto_secretbox* functions |
✔ | ✔ | ✔ |
SecretStream - crypto_secretstream* functions |
✔ | ✔ | ✔ |
SHA256/SHA512 - crypto_hash* functions |
✔ | ✔ | ✔ |
ShortHash - crypto_shorthash* functions |
✔ | ✔ | ✔ |
Sign - crypto_sign* functions |
✔ | ✔ | ✔ |
Stream Ciphers1 - crypto_stream* functions |
✔ | ✔ | ✔ |
SecureMemory - sodium_m functions |
✘ | ✔ | ✔ |
- The Android variant does not have Salsa20 8 and 12 rounds and no XChaCha20.
- The Android variant does not have functions of the following form:
cryptoPwHashScryptSalsa208*
Please see this question in the FAQ for the reason as to why certain functions are not available on Android.