From a9c0aa8abaa1d8c92a03a2ea76f60dd5e2367ac7 Mon Sep 17 00:00:00 2001 From: RahulBajaj Date: Tue, 17 Sep 2019 19:47:01 +0530 Subject: [PATCH] Support RSA.import for all Ruby versions. --- lib/jwt/jwk/rsa.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/jwt/jwk/rsa.rb b/lib/jwt/jwk/rsa.rb index b0761912..be8d3068 100644 --- a/lib/jwt/jwk/rsa.rb +++ b/lib/jwt/jwk/rsa.rb @@ -39,9 +39,14 @@ def export def self.import(jwk_data) imported_key = OpenSSL::PKey::RSA.new - imported_key.set_key(OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data[:n]), BINARY), - OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data[:e]), BINARY), - nil) + if imported_key.respond_to?(:set_key) + imported_key.set_key(OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data[:n]), BINARY), + OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data[:e]), BINARY), + nil) + else + imported_key.n = OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data[:n]), BINARY) + imported_key.e = OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data[:e]), BINARY) + end self.new(imported_key) end end