我有一个 RSA 公钥模数和指数字符串。
我想在 Ruby on Rails 中使用它们创建 OpenSSL::PKey::RSA。我尝试了三种不同的方式,我认为我的环境有些混乱,但是,我无法发现它。你有什么主意吗?
版本:
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [arm64-darwin22]
Rails 7.0.8
OpenSSL 3.1.2 1 Aug 2023
第一次尝试
我这样做:
modulus = k['n']
exponent= k['e']
rsa = OpenSSL::PKey::RSA.new
rsa.set_key_rsa(k['n'], k['e'], 2)
我收到错误:
undefined method `set_key_rsa' for #<OpenSSL::PKey::RSA:0x000000010a1468a0 oid=rsaEncryption>
第二次尝试
我这样做:
modulus = k['n']
exponent= k['e']
rsa = OpenSSL::PKey::RSA.new
rsa.set_key(k['n'], k['e'], 2) # <---- used set_key
我收到错误:
rsa#set_key= is incompatible with OpenSSL 3.0
Third
rsa = OpenSSL::PKey::RSA.new
rsa.n = OpenSSL::BN.new(Base64.urlsafe_decode64(k['n']), 2)
rsa.e = OpenSSL::BN.new(Base64.urlsafe_decode64(k['e']), 2)
我收到错误:
undefined method `n=' for #<OpenSSL::PKey::RSA:0x000000010ab56e08 oid=rsaEncryption>
呃,发生了什么事?