golden_ticket 0.9.4 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e083d795309acf7f43026361aa65471ba6b8cef6
4
- data.tar.gz: 58042c1a5d9d9c6d38c13587881464e1813a3d9b
3
+ metadata.gz: 7cbf14e7734504389fcf9b4b813deb036e7bd090
4
+ data.tar.gz: 82b33beb1992679098bbc0e12303accf9cb3b175
5
5
  SHA512:
6
- metadata.gz: 45a12d63720f2802d1499134c65f60911f511040795b3a53ea790641730f6607f8c3cabe0b34b98402d229242088c869637a70888473bec63e414464e0764571
7
- data.tar.gz: 068ffd56d66e03460f7c4e6d98f15c0f6e73f9e72fb0246e77c389a9000ec647357222a5ae4682fd199e9f0afbff678a8f2af8cc9e791d0b0b788f876a36caa9
6
+ metadata.gz: 3abf89814e603ce0cb7da54e59901da086c990286025af6d4e0a5f6ca1436852e7d49e955c97d8cdb2dc7d511cc6849995713382c2149349f866f5a9a457c91a
7
+ data.tar.gz: e6a07817335023bcea05a626fd9d854eb1aa1d488c0bc45272b33a089138afa83e9649791918ca36792235a8b9fe60d671f2aa558a4b883502f6ad40cb4a29e9
@@ -1,3 +1,3 @@
1
1
  module GoldenTicket
2
- VERSION = '0.9.4'
2
+ VERSION = '0.9.6'
3
3
  end
data/lib/golden_ticket.rb CHANGED
@@ -10,15 +10,25 @@ require 'golden_ticket/version'
10
10
  # GoldenTicket Module
11
11
  module GoldenTicket
12
12
 
13
+ # Encode Base64URL
14
+ def self.b64url_encode s
15
+ Base64.urlsafe_encode64(s).gsub '=', ''
16
+ end
17
+
18
+ # Decode Base64URL
19
+ def self.b64url_decode s
20
+ Base64.urlsafe_decode64 s + ((4 - (s.length % 4)) * '=')
21
+ end
22
+
13
23
  # Encode (Generate JWT)
14
24
  def self.encode key, payload
15
25
 
16
26
  # Prep Header - Always HMAC SHA 256 / JWT
17
27
  header = { alg: 'HS256', typ: 'JWT' }
18
- header_data = Base64.urlsafe_encode64(header.to_json).gsub '=', ''
28
+ header_data = b64url_encode header.to_json
19
29
 
20
30
  # Prepare Payload
21
- payload_data = Base64.urlsafe_encode64 payload.to_json
31
+ payload_data = b64url_encode payload.to_json
22
32
 
23
33
  # Compute Token Secret
24
34
  secret = "#{header_data}.#{payload_data}"
@@ -32,13 +42,13 @@ module GoldenTicket
32
42
  def self.decode key, token
33
43
 
34
44
  # Split Token
35
- header_data, payload_data, secret_data = token.split('.').collect { |d| d + ((4 - (d.length % 4)) * '=') }
45
+ header_data, payload_data, secret_data = token.split '.'
36
46
 
37
47
  # Verify Token
38
48
  secret = "#{header_data}.#{payload_data}"
39
49
  raise 'Invalid Token' unless secret_data == OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), key, secret)
40
50
 
41
51
  # Pull dat Payload
42
- JSON.parse Base64.urlsafe_decode64(payload_data)
52
+ JSON.parse b64url_decode payload_data
43
53
  end
44
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: golden_ticket
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eresse