cryptography
A Ruby library to provide abstractions for common use-cases of
cryptography.
Description
Cryptography is hard. Really hard, and deceptively hard. There are a
million and one ways for a developer to screw up when implementing
cryptography, and non-cryptographers are exceedingly unlikely to get
it right.
Unfortunately, there's a common mentality in the developer community
that getting tiny details wrong doesn't matter, that it's still "good
enough" to defeat hackers, if not the NSA. This mentality is, frankly,
stupid and dangerous. Tiny flaws in implementation details almost
inevitably result in a complete breach of security: revealing the
contents of ciphertexts, allowing manipulation of the contents of
ciphertexts, forging signed messages, or discovering users'
passwords. Even weaknesses that seem tolerable can often be trivially
combined with non-cryptographic security weaknesses to accomplish the
same goals.
Despite this, there are relatively few high-level interfaces to hide
the details of cryptographic primitives and to automatically use safe
and secure defaults. This library strongly adopts the mentality that
if you're typing the letters A-E-S into your code, you're doing it
wrong.
Installation
$ gem install cryptography