[ANN] RbNaCl 2.0.0: a modern cryptography library for Ruby

RbNaCl is a Ruby FFI binding to the Networking and Cryptography Library by
Dan Bernstein and his collaborators:

The slides from a recent presentation by library author Tony Arcieri (yours
truly) are available on SpeakerDeck:

Version 2.0 is a refactoring designed to better reflect the extensible API
of the C library which allows for the inclusion of additional primitives
beyond the defaults found in the library today.

Full list of changes from the 1.x releases:

* Add encrypt/decrypt aliases for Crypto::RandomNonceBox
* Rename Crypto module to RbNaCl module
* RbNaCl::VerifyKey#verify operand order was reversed. New operand order is
signature, message instead of message, signature
* RbNaCL::SecretBox#open, RbNaCl::Box#open, Auth#verify and
VerifyKey#verify all now raise a (descendent of) CryptoError if the check
fails. This ensures failures are handled by the program.
* RbNaCl::SecretBox, Box, etc. are all now aliases for the real
implementations, which are named after the primitives they provide
* Encoders have now gone.
* Add support for the Blake2b cryptographic hash algorithm.
* Add checks that we have a sufficiently recent version of libsodium
(0.4.3+)
* Dropped ruby-1.8 support
* Call the sodium_init() function, to select the best algorithms.
* Fix some typos in the documentation
* Changes in the low level binding for libsodium and removal of the NaCl
module
* Add a mutex around calls to randombytes in libsodium

ยทยทยท

--
Tony Arcieri