I’m happy to announce the first public release of RbNaCl, a Ruby binding
to
the Networking and Cryptography library by Daniel J. Bernstein:
https://github.com/cryptosphere/rbnacl
RbNaCl is actually a Ruby FFI binding to the shared library provided by
Sodium, a more portable repackaging of NaCl based entirely on the
reference
C code in NaCl with all assembly removed:
http://labs.umbrella.com/2013/03/06/announcing-sodium-a-new-cryptographic-library/
NaCl itself has been designed to be relatively easy-to-use, with many
common cryptographic user errors eliminated from its algorithms by
design.
It provides APIs which seek to eliminate mistakes, and therefore has
relatively simple requirements in order for users to utilize it
securely.
RbNaCl is one of the few Ruby crypto libraries which provides
authenticated
encryption modes, and wraps both the “box” (public-key) and “secret_box”
(secret-key) encryption functions provided by NaCl. In addition, RbNaCl
also exposes the Ed25519 digital signature algorithm, a fast and
deterministic alternative to algorithms like (EC)DSA. Finally, RbNaCl
also
wraps the hash functions and HMAC support found in NaCl.
If you’re looking to do cryptography in Ruby, RbNaCl is one of your best
options.
Enjoy!