From 6c699f123192b52e240918e150650e12edae1174 Mon Sep 17 00:00:00 2001 From: Joakim Antman Date: Sun, 25 Oct 2020 22:20:15 +0200 Subject: [PATCH] Support JWKs for pre 2.3 rubies --- .github/workflows/test.yml | 10 ++++++---- lib/jwt/jwk/ec.rb | 8 ++++---- lib/jwt/jwk/rsa.rb | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8cb569ee..4895dbb6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,10 +24,12 @@ jobs: - gemfiles/rbnacl.gemfile experimental: [false] include: -# - ruby: 2.1 -# experimental: true -# - ruby: 2.2 -# experimental: true + - ruby: 2.1 + gemfile: 'gemfiles/rbnacl.gemfile' + experimental: false + - ruby: 2.2 + gemfile: 'gemfiles/rbnacl.gemfile' + experimental: false - ruby: 2.7 coverage: "true" gemfile: 'gemfiles/rbnacl.gemfile' diff --git a/lib/jwt/jwk/ec.rb b/lib/jwt/jwk/ec.rb index 267426b4..b8580d56 100644 --- a/lib/jwt/jwk/ec.rb +++ b/lib/jwt/jwk/ec.rb @@ -70,11 +70,11 @@ def keypair_components(ec_keypair) end def encode_octets(octets) - ::Base64.urlsafe_encode64(octets, padding: false) + ::JWT::Base64.url_encode(octets) end def encode_open_ssl_bn(key_part) - ::Base64.urlsafe_encode64(key_part.to_s(BINARY), padding: false) + ::JWT::Base64.url_encode(key_part.to_s(BINARY)) end class << self @@ -136,11 +136,11 @@ def ec_pkey(jwk_crv, jwk_x, jwk_y, jwk_d) end def decode_octets(jwk_data) - ::Base64.urlsafe_decode64(jwk_data) + ::JWT::Base64.url_decode(jwk_data) end def decode_open_ssl_bn(jwk_data) - OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data), BINARY) + OpenSSL::BN.new(::JWT::Base64.url_decode(jwk_data), BINARY) end end end diff --git a/lib/jwt/jwk/rsa.rb b/lib/jwt/jwk/rsa.rb index bd66d509..e9ae4057 100644 --- a/lib/jwt/jwk/rsa.rb +++ b/lib/jwt/jwk/rsa.rb @@ -54,7 +54,7 @@ def append_private_parts(the_hash) end def encode_open_ssl_bn(key_part) - ::Base64.urlsafe_encode64(key_part.to_s(BINARY), padding: false) + ::JWT::Base64.url_encode(key_part.to_s(BINARY)) end class << self @@ -107,7 +107,7 @@ def populate_key(rsa_key, rsa_parameters) # rubocop:disable Metrics/CyclomaticCo def decode_open_ssl_bn(jwk_data) return nil unless jwk_data - OpenSSL::BN.new(::Base64.urlsafe_decode64(jwk_data), BINARY) + OpenSSL::BN.new(::JWT::Base64.url_decode(jwk_data), BINARY) end end end