我们最近进行了一次捆绑更新,但出现了问题。正如我们所了解的,对“digest/hmac”的支持下降了,所以我想改用 OpenSSL:
旧 [工作] 代码:
def signature(str)
key = EnvHelpers.google_oauth2_hmac_key
Digest::HMAC.hexdigest(str, key, Digest::SHA2)
end
新代码:
def signature(str)
key = EnvHelpers.google_oauth2_hmac_key
OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha2"), key, str)
end
当我们运行 rspec 时:
Failure/Error: OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha2"), key, str)
RuntimeError:
Unsupported digest algorithm (sha2).: first num too large
Gemfile 的相关部分:
ruby "2.3.3"
gem "openssl", require: true # Gemfile.lock says I am at (2.0.3)
我们愿意接受任何解决问题的建议。这部分代码主要用于我们的 Google 和 Facebook 连接流程。