secure_jwt 0.1.0 → 0.1.0.1

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
  SHA256:
3
- metadata.gz: 8c111f243ff01928e557b0d764c28bd31075df1d9822127188cc1a62453bffe3
4
- data.tar.gz: 420a70833f9ddc621324ddc1bad9fd76ea3b0a682e9e288dc5e3865abc7dd747
3
+ metadata.gz: bdf389d943c937effdd17264e0893d81c57f87c23f6ab8a542c84f01cad0a4f9
4
+ data.tar.gz: 076c0e9a2ab9c99588d5748bcaed375f1e9e8d9de439e323ee003523dc631f86
5
5
  SHA512:
6
- metadata.gz: dcf75b7289fb69a0375642f3f54465c37ab11a4d8aebe1e56ea87054d04f6d32be25a23aed52e5e683c6af634e4b220ff77c5c7059c8a540fda3023dcb4c4119
7
- data.tar.gz: 27fb10bb12f352353c725881161486f5bd01a574d64fd9e3a4114201155510fd2f9456201802022fb92f8c01ee1b70e1ab027c3c316c6a3d5d908bf8a7834ab1
6
+ metadata.gz: '05538a81d2eaa04d17191e58afd3fe70da54b8ad536da00aafb3cc648be328e0174bfbf1d07ede69a89065973ffa8c7b77aab18ace67293420c7c5ef6dd5b1d9'
7
+ data.tar.gz: 9d5b0dc4da51191a6f84b27a0ca86d0e410f8df80d5918dbf08e3b89793ecb746ea35d0b3622bc0c67f9818977c07657c01abec90b09b6d4af205041f9e10710
data/CHANGELOG.md ADDED
@@ -0,0 +1 @@
1
+ 2021-03-25: (0.1.0.1) - Added expiration
data/lib/secure_jwt.rb CHANGED
@@ -53,7 +53,8 @@ module SecureJwt
53
53
  ret = encode_jwt encrypted_payload, {
54
54
  data_key: data_key[:encrypted],
55
55
  iv: iv,
56
- auth_tag: auth_tag
56
+ auth_tag: auth_tag,
57
+ expires: options[:expires]&.to_i
57
58
  }
58
59
 
59
60
  first_error ? raise(first_error) : ret
@@ -98,24 +99,25 @@ module SecureJwt
98
99
  headers[:tag] = Base64.urlsafe_encode64(options[:auth_tag]) if options[:auth_tag]
99
100
 
100
101
  formatted_payload = {
101
- "payload" => Base64.urlsafe_encode64(encrypted_payload)
102
- }
102
+ "data" => Base64.urlsafe_encode64(encrypted_payload),
103
+ "exp" => options[:expires]
104
+ }.compact
103
105
 
104
106
  JWT.encode formatted_payload, signing_key, jwt_algorithm, headers
105
107
  end
106
108
 
107
109
  def decode_jwt(jwt_token)
108
110
  begin
109
- payload, header = JWT.decode jwt_token, signing_key, !!jwt_algorithm, algorithm: jwt_algorithm
111
+ payload, header = JWT.decode jwt_token, signing_key, !!jwt_algorithm, algorithm: jwt_algorithm, verify_expiration: true
110
112
 
111
113
  %w(data_key iv tag).each do |key|
112
114
  header[key] = Base64.urlsafe_decode64 header[key] rescue ""
113
115
  end
114
116
 
115
- return Base64.urlsafe_decode64(payload["payload"]), header.transform_keys(&:to_sym)
117
+ return Base64.urlsafe_decode64(payload["data"]), header.transform_keys(&:to_sym)
116
118
  rescue JWT::VerificationError, JWT::IncorrectAlgorithm => e
117
119
  self.first_error = e
118
- return {"payload": nil}, { }
120
+ return {"data": nil}, { }
119
121
  end
120
122
  end
121
123
 
@@ -1,3 +1,3 @@
1
1
  module SecureJwt
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secure_jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Linder
@@ -61,6 +61,7 @@ extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
63
  - ".gitignore"
64
+ - CHANGELOG.md
64
65
  - CODE_OF_CONDUCT.md
65
66
  - Gemfile
66
67
  - Gemfile.lock