go_secure 0.66 → 0.67
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 +4 -4
- data/lib/go_secure.rb +9 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a27715aa137021de4885687c883cf1667e2cb4c3d1465a59ccaf53b91c5e7847
|
4
|
+
data.tar.gz: cec46ee63138b2e55542ebcc92f2ca6974fb34a36942c394f8f2fcf78fd81600
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 276e836003c669a3c593d554456244cea84226dfde033948fe41db756a68ae764776af65eec24754eb29b58668554e8cc54a70c23dd1527f5df8d46efd3da381
|
7
|
+
data.tar.gz: 45d4ad85376e0ca2f55a820b7a9764771d3893eb332a6e9289bcf952f93225106fbc9aa073d1b3d2c0ceca17e7fe9c60cb10dadf849b85ad3a4fa803107529fe
|
data/lib/go_secure.rb
CHANGED
@@ -13,6 +13,11 @@ module GoSecure
|
|
13
13
|
digest = OpenSSL::Digest::SHA512.new(encryption_key || self.encryption_key)
|
14
14
|
res = Base64.urlsafe_encode64(OpenSSL::PKCS5.pbkdf2_hmac(str.to_s, salt.to_s, 100000, digest.digest_length, digest))
|
15
15
|
end
|
16
|
+
|
17
|
+
def self.lite_hmac(str, salt, level, encryption_key=nil)
|
18
|
+
raise "invalid level" unless level == 1
|
19
|
+
OpenSSL::HMAC.hexdigest('SHA512', OpenSSL::HMAC.hexdigest('SHA512', str.to_s, salt.to_s), encryption_key || self.encryption_key)
|
20
|
+
end
|
16
21
|
|
17
22
|
def self.nonce(str)
|
18
23
|
Digest::SHA512.hexdigest(str.to_s + Time.now.to_i.to_s + rand(999999).to_s + self.encryption_key)[0, 24]
|
@@ -113,7 +118,8 @@ module GoSecure
|
|
113
118
|
|
114
119
|
def self.browser_token
|
115
120
|
# TODO: checks around whether it's actually a web browser??
|
116
|
-
|
121
|
+
day = Time.now.strftime('%j')
|
122
|
+
stamp = "#{Time.now.year}#{(Time.now.yday / 366.0 * 100.0).to_i.to_s.rjust(2, '0')}"
|
117
123
|
stamp += '-' + GoSecure.sha512(stamp, 'browser_token')
|
118
124
|
end
|
119
125
|
|
@@ -125,7 +131,8 @@ module GoSecure
|
|
125
131
|
def self.valid_browser_token?(token)
|
126
132
|
return false if !token || token.length == 0 || !token.match(/-/)
|
127
133
|
stamp, hash = token.split(/-/, 2)
|
128
|
-
|
134
|
+
current_stamp = "#{Time.now.year}#{(Time.now.yday / 366.0 * 100.0).to_i.to_s.rjust(2, '0')}"
|
135
|
+
if current_stamp.to_i - stamp.to_i < (14/365.0*100.0) # 14 days?!
|
129
136
|
return valid_browser_token_signature?(token)
|
130
137
|
end
|
131
138
|
false
|