我收到错误:
不支持的密码算法 (AES-256-GCM) (RuntimeError)
但我似乎有所有的要求:
红宝石版本:
$红宝石--版本
红宝石 2.1.2p95
OpenSSL 确实列出了 gcm:
$ openssl enc -help 2>&1 | grep gcm
-aes-128-ecb -aes-128-gcm -aes-128-ofb
-aes-192-ecb -aes-192-gcm -aes-192-ofb
-aes-256-ecb -aes-256-gcm -aes -256-ofb
红宝石解释器:
$ irb
2.1.2 :001 > 需要“openssl”;放 OpenSSL::VERSION
1.1.0
=> 无
2.1.2 :002 > OpenSSL::Cipher.ciphers.include?“aes-128-gcm”
=> 真
但是我在运行此代码时遇到错误:
2.1.2 :001 > require 'openssl'
=> true
2.1.2 :002 > cipher = OpenSSL::Cipher::AES.new(128, :GCM)
RuntimeError: unsupported cipher algorithm (AES-128-GCM)
from /home/m/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/cipher.rb:27:in `initialize'
from /home/m/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/openssl/cipher.rb:27:in `block (3 levels) in <class:Cipher>'
from (irb):2:in `new'
from (irb):2
from /home/m/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>'
如何让 GCM 在 ruby 中工作?