atpay_tokens 3.1.0 → 4.0.0
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/Gemfile +4 -0
- data/atpay_tokens.gemspec +2 -2
- data/lib/atpay/security_key.rb +3 -3
- data/lib/atpay/tokenator.rb +8 -7
- data/spec/atpay/tokenator_spec.rb +1 -0
- data/spec/atpay_tokens_spec.rb +3 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a561123201e45863246cd4cc57ed9c96f877c773
|
4
|
+
data.tar.gz: 1adedd079256fa02fa52a4952f5377e69acecbe3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f978e26cf815ae4bb44bf4f8e81e4b3d57bcacaf1ff3cf6e19702a4826f584856df86bbf3211981c6a9ffc96ac12d6ad1f8149c548d398ec1334c56fe7ee5f9a
|
7
|
+
data.tar.gz: 5f76c320cd73b3409053b709cb01ae4f3b7c94033022edbfe1157566b6160b14ab9fe4ed5df9036f1e1d3cdf8604802a0d0391bccb9ab3e6bb379179a338411d
|
data/Gemfile
CHANGED
data/atpay_tokens.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'atpay_tokens'
|
3
|
-
s.version = '
|
4
|
-
s.date = '2014-
|
3
|
+
s.version = '4.0.0'
|
4
|
+
s.date = '2014-06-04'
|
5
5
|
s.summary = "@Pay Token Generator"
|
6
6
|
s.description = "Client interface for the @Pay API, key generation for performance optimization"
|
7
7
|
s.authors = ["James Kassemi", "Glen Holcomb"]
|
data/lib/atpay/security_key.rb
CHANGED
@@ -15,14 +15,14 @@ module AtPay
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def email_token
|
18
|
-
"@#{version}#{Base64.
|
18
|
+
"@#{version}#{Base64.urlsafe_encode64([nonce, partner_frame, body_frame].join)}@"
|
19
19
|
ensure
|
20
20
|
@nonce = nil
|
21
21
|
end
|
22
22
|
|
23
23
|
def site_token(remote_addr, headers)
|
24
24
|
raise ArgumentError.new("card or member required for site tokens") if @options[:card].nil? and @options[:member].nil?
|
25
|
-
"@#{version}#{Base64.
|
25
|
+
"@#{version}#{Base64.urlsafe_encode64([nonce, partner_frame, site_frame(remote_addr, headers), body_frame].join)}"
|
26
26
|
ensure
|
27
27
|
@nonce = nil
|
28
28
|
end
|
@@ -34,7 +34,7 @@ module AtPay
|
|
34
34
|
|
35
35
|
private
|
36
36
|
def version
|
37
|
-
@options[:version] ? (Base64.
|
37
|
+
@options[:version] ? (Base64.urlsafe_encode64([@options[:version]].pack("Q>")) + '~') : nil
|
38
38
|
end
|
39
39
|
|
40
40
|
def partner_frame
|
data/lib/atpay/tokenator.rb
CHANGED
@@ -35,7 +35,7 @@ module AtPay
|
|
35
35
|
class << self
|
36
36
|
# Get the version of the given token.
|
37
37
|
def token_version(token)
|
38
|
-
token.scan('
|
38
|
+
token.scan('~').empty? ? 0 : unpack_version(token.split('~')[0])
|
39
39
|
end
|
40
40
|
|
41
41
|
# Check and make sure we haven't seen this token before.
|
@@ -51,7 +51,9 @@ module AtPay
|
|
51
51
|
|
52
52
|
# Unpack the actual version value.
|
53
53
|
def unpack_version(version)
|
54
|
-
Base64.
|
54
|
+
v = version[0] == '@' ? Base64.urlsafe_decode64(version[1..-1]) : Base64.urlsafe_decode64(version)
|
55
|
+
|
56
|
+
v.unpack("Q>")[0]
|
55
57
|
end
|
56
58
|
end
|
57
59
|
|
@@ -101,12 +103,12 @@ module AtPay
|
|
101
103
|
|
102
104
|
# Strip the version frame from the token.
|
103
105
|
def strip_version
|
104
|
-
@token = @token.split('
|
106
|
+
@token = @token.split('~').last
|
105
107
|
end
|
106
108
|
|
107
109
|
# Fix our Base64 problems
|
108
110
|
def decode
|
109
|
-
@token = Base64.
|
111
|
+
@token = Base64.urlsafe_decode64(@token)
|
110
112
|
end
|
111
113
|
|
112
114
|
# Extract our entropy
|
@@ -193,9 +195,8 @@ module AtPay
|
|
193
195
|
|
194
196
|
def format_token(token)
|
195
197
|
tok = token.dup
|
196
|
-
|
197
|
-
|
198
|
-
tok
|
198
|
+
|
199
|
+
tok.gsub('@', '').strip
|
199
200
|
end
|
200
201
|
end
|
201
202
|
end
|
data/spec/atpay_tokens_spec.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'helper'
|
2
2
|
require 'atpay_tokens'
|
3
|
+
require 'pry'
|
3
4
|
|
4
5
|
describe "atpay_tokens" do
|
5
|
-
let(:key_pattern) { /@((([A-Za-z0-9
|
6
|
+
let(:key_pattern) { /@((([A-Za-z0-9\-=*]{4})*~)?([A-Za-z0-9\-=_]{4}){5,})/ }
|
6
7
|
let(:base_args) { "--environment test --private-key \"#{private_key}\" --public-key \"#{public_key}\" --partner-id 1 --amount 24.0"}
|
7
8
|
let(:universal_token_args) { "#{base_args} --type universal --url http://bob.com" }
|
8
9
|
let(:site_token_args) { "#{base_args} --type site --card cardtoken --header-user-agent bob --header-accept-language en --header-accept-charset us --ip-address 127.0.0.1" }
|
@@ -54,4 +55,4 @@ describe "atpay_tokens" do
|
|
54
55
|
expect(tokenator.source[:email]).to eq('bob@bob.com')
|
55
56
|
end
|
56
57
|
end
|
57
|
-
end
|
58
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atpay_tokens
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Kassemi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|