tweetnacl-java alternatives and similar packages
Based on the "Security" category.
Alternatively, view tweetnacl-java alternatives based on common mentions on social networks and blogs.
-
YimMenu
YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. -
Themis by Cossack Labs
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms. -
Android Tamper Detector
A simple library that can help you detect if you app is modded or tampered with -
Runtime Permission Handler
Handles all the boilerplate codes associated with runtime permissions for Android 6.0 and above.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of tweetnacl-java or a related project?
README
TweetNacl in Java: port of tweetnacl-js
API/Usage
Suggest always use TweetNaclFast implementation
Public key authenticated encryption
- get key pair: Box.KeyPair kp = Box.keyPair(), kp = Box.keyPair_fromSecretKey(sk)
- new Box object: Box box = new Box(theirPublicKey, mySecretKey, Nonce);
- encryption: cipher = box.box(message);
- decryption: message = box.open(cipher);
- Nonce MUST be unique for ever message passed between same peers
As an alternative, the nonce can be omitted from the Box() call, and passed in the box and open calls, like:
- byte [] nonce = new byte[nonceLength], randombytes(theNonce, nonceLength);
- Box.KeyPair kp = Box.keyPair(), kp = Box.keyPair_fromSecretKey(sk)
- Box box = new Box(theirPublicKey, mySecretKey);
- encryption: cipher = box.box(message, nonce);
- decryption: message = box.open(cipher, nonce);
Secret key authenticated encryption
- get shared key: crypto random, what you have
- new SecretBox object: SecretBox sbox = new SecretBox(sharedKey, Nonce);
- encryption: cipher = sbox.box(message);
- decryption: message = sbox.open(cipher);
- Nonce MUST be unique for ever message passed between same peers
As an alternative, the nonce can be omitted from the SecretBox() call, and passed in the box and open calls, like:
- byte [] nonce = new byte[nonceLength], randombytes(theNonce, nonceLength);
- SecretBox sbox = new SecretBox(sharedKey);
- cipher = sbox.box(message, nonce);
- decryption: message = sbox.open(cipher, nonce);
Signature
- get key pair: Signature.KeyPair kp = Signature.keyPair(), kp = Signature.keyPair_fromSecretKey(sk);
- new Signature object: Signature sig = new Signature(theirPublicKey, mySecretKey);
- sign: signedMessage = sig.sign(message);
- verify: message = sig.open(signedMessage);
- Nonce MUST be unique for ever message passed between same peers
Hash
- generate SHA-512: byte [] tag = Hash.sha512(message);
Refer to com.iwebpp.crypto.tests for details
About Random generation
- the library uses java.security.SecureRandom for key generation
- you can always use the library to generate key, or use a Crypto Random like java.security.SecureRandom
Testing
In top directory:
$ mvn test
Support us
- Welcome contributing on document, codes, tests and issues
License MIT
- Copyright(2014-present) by tom zhou, [email protected]
*Note that all licence references and agreements mentioned in the tweetnacl-java README section above
are relevant to that project's source code only.