Estoy intentando implementar AES-256-GCM en Ruby.
La biblioteca de envoltorios OpenSSL de Ruby y una biblioteca de Aead parecen creer claramente que OpenSSL sí lo admite.
Sin embargo, ni 0.9.8r (que había instalado) ni 1.0.1c (que actualicé a w / macports) parece tenerlo. 1.0.1c tiene AES256-GCM-SHA384, pero Ruby OpenSSL y aead no parecen saber qué hacer con él.
¿Alguna sugerencia?
xpost: enlace
ETA: Resulta que este problema se debe a que RVM se creó contra OpenSSL 0.9.8. (FWIW, este parece ser el caso en Ubuntu 10.04, pero corregido en 12.04).
Es fácil de probar:
require 'openssl'
cipher = OpenSSL::Cipher.new('aes-256-gcm')
# Bad response: RuntimeError: unsupported cipher algorithm (aes-256-gcm)
# Good response: #<OpenSSL::Cipher:0x007fc0754764a8>
Es una solución semi fácil w / rvm, pero se necesita un tiempo para volver a compilar completamente:
sudo apt-get install aclocal autoconf automake auroreconf apple-gcc42 libtool pkg-config openssl readline libyaml sqlite libxml2 libxslt libksba
# some but not all are available on macports; seems to work okay without the missing ones
rvm get head
rvm pkg install openssl
rvm reinstall 1.9.3-p194
Gracias a Stephen Touset por sugerir la solución.