Sto cercando di implementare AES-256-GCM in Ruby.
La libreria wrapper OpenSSL di Ruby e la libreria aead sembrano chiaramente credere che OpenSSL stesso supporti questo.
Tuttavia, né 0.9.8r (che avevo installato) né 1.0.1c (che ho aggiornato con w / macports) sembra averlo. 1.0.1c ha AES256-GCM-SHA384, ma Ruby OpenSSL e Aead non sembrano sapere cosa fare di esso.
Qualche suggerimento?
xpost: link
ETA: Si scopre che questo problema è causato da RVM che è stato costruito contro OpenSSL 0.9.8. (FWIW, questo sembra essere il caso di Ubuntu 10.04, ma risolto in 12.04.)
È facile da testare:
require 'openssl'
cipher = OpenSSL::Cipher.new('aes-256-gcm')
# Bad response: RuntimeError: unsupported cipher algorithm (aes-256-gcm)
# Good response: #<OpenSSL::Cipher:0x007fc0754764a8>
È una soluzione semi-facile con rvm, ma ci vuole un po 'per ricompilarlo 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
Grazie a Stephen Touset per aver suggerito la correzione.