A Modern and Easy-to-Use Crypto Library
Bindings to libsodium: a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more. Sodium uses curve25519, a state-of-the-art Diffie-Hellman function by Daniel Bernstein, which has become very popular after it was discovered that the NSA had backdoored Dual EC DRBG.
Documentation
About the R package:
- Vignette: Introduction to Sodium for R
- Vignette: How does cryptography work
Other resources:
Hello World
# Generate keypair:
key <- keygen()
pub <- pubkey(key)
# Encrypt message with pubkey
msg <- serialize(iris, NULL)
ciphertext <- simple_encrypt(msg, pub)
# Decrypt message with private key
out <- simple_decrypt(ciphertext, key)
Installation
Binary packages for OS-X or Windows can be installed directly from CRAN:
install.packages("sodium")
Installation from source on Linux or OSX requires libsodium
. On Debian or Ubuntu install libsodium-dev:
sudo apt-get install -y libsodium-dev
On Fedora we need libsodium-devel:
sudo yum install libsodium-devel
On CentOS / RHEL we install libsodium-devel via EPEL:
sudo yum install epel-release
sudo yum install libsodium-devel
On OS-X use libsodium from Homebrew:
brew install libsodium