From d5ba3ecbf8c62afde1271477bc7275ec11dc931d Mon Sep 17 00:00:00 2001 From: shields Date: Fri, 5 Feb 2021 15:45:02 +0900 Subject: [PATCH 1/2] Support alternate casing "Ed25519" (currently only "ED25519" is supported) See: https://tools.ietf.org/html/rfc8037 --- lib/jwt/algos/eddsa.rb | 2 +- spec/jwt_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jwt/algos/eddsa.rb b/lib/jwt/algos/eddsa.rb index aec8b757..87ff0b79 100644 --- a/lib/jwt/algos/eddsa.rb +++ b/lib/jwt/algos/eddsa.rb @@ -3,7 +3,7 @@ module Algos module Eddsa module_function - SUPPORTED = %w[ED25519].freeze + SUPPORTED = %w[Ed25519 ED25519].freeze def sign(to_sign) algorithm, msg, key = to_sign.values diff --git a/spec/jwt_spec.rb b/spec/jwt_spec.rb index 1ffedc99..a6598464 100644 --- a/spec/jwt_spec.rb +++ b/spec/jwt_spec.rb @@ -190,7 +190,7 @@ end if defined?(RbNaCl) - %w[ED25519].each do |alg| + %w[Ed25519 ED25519].each do |alg| context "alg: #{alg}" do before(:each) do data[alg] = JWT.encode payload, data["#{alg}_private"], alg From 56f9cf9e1559f419f71e8b29ef3ce6f9f09f8d6b Mon Sep 17 00:00:00 2001 From: shields Date: Fri, 5 Feb 2021 18:17:26 +0900 Subject: [PATCH 2/2] Fix specs --- spec/jwt_spec.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/jwt_spec.rb b/spec/jwt_spec.rb index a6598464..6ae05200 100644 --- a/spec/jwt_spec.rb +++ b/spec/jwt_spec.rb @@ -37,6 +37,8 @@ if defined?(RbNaCl) data.merge!( + 'Ed25519_private' => RbNaCl::Signatures::Ed25519::SigningKey.new('abcdefghijklmnopqrstuvwxyzABCDEF'), + 'Ed25519_public' => RbNaCl::Signatures::Ed25519::SigningKey.new('abcdefghijklmnopqrstuvwxyzABCDEF').verify_key, 'ED25519_private' => RbNaCl::Signatures::Ed25519::SigningKey.new('abcdefghijklmnopqrstuvwxyzABCDEF'), 'ED25519_public' => RbNaCl::Signatures::Ed25519::SigningKey.new('abcdefghijklmnopqrstuvwxyzABCDEF').verify_key, )