diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-05-15 00:04:26 +0300 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-05-15 00:04:26 +0300 |
commit | df973df8c536fb9ffe0a9ed4e92f7d9144eb687a (patch) | |
tree | 849d979258fc0cca872879f0e18cdd042012fcd9 /lib | |
parent | 715a8cfa2f4639bf36b604f6e3eb2814187367c0 (diff) |
Simplify JWT::RSAToken::kid
Diffstat (limited to 'lib')
-rw-r--r-- | lib/jwt/rsa_token.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/jwt/rsa_token.rb b/lib/jwt/rsa_token.rb index 4de89bf0d37..d7df9269e1e 100644 --- a/lib/jwt/rsa_token.rb +++ b/lib/jwt/rsa_token.rb @@ -29,10 +29,14 @@ module JWT end def kid - fingerprint = Digest::SHA256.digest(public_key.to_der) - Base32.encode(fingerprint).split('').each_slice(4).each_with_object([]) do |slice, mem| - mem << slice.join - end.join(':') + # calculate sha256 from DER encoded ASN1 + kid = Digest::SHA256.digest(public_key.to_der) + + # we encode only 30 bytes with base32 + kid = Base32.encode(kid[0..29]) + + # insert colon every 4 characters + kid.scan(/.{4}/).join(':') end end end |