golden_ticket 0.9.4 → 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
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