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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a316e114f4a086c4227846c8284a3359423c24d
4
- data.tar.gz: f3dcc1c0269c4862fd07f8717ada624e26e65f8c
3
+ metadata.gz: a561123201e45863246cd4cc57ed9c96f877c773
4
+ data.tar.gz: 1adedd079256fa02fa52a4952f5377e69acecbe3
5
5
  SHA512:
6
- metadata.gz: 95f762cfabfd4d9d11e9b930b89c8b0c4e6a2b18af286fe83199c64091f87835764f6bfbafcde58b39c01d7d8f5050c19e33ff52e8b2ff0176c5dc602a8c5417
7
- data.tar.gz: e3e92a15df93196559c59071e5ee057691f928497ba04b277dfad79c775dbc5d3687d6e427e10808ca6835e2cebfe6cd273a0f27eb779b631819b21a73e982dd
6
+ metadata.gz: f978e26cf815ae4bb44bf4f8e81e4b3d57bcacaf1ff3cf6e19702a4826f584856df86bbf3211981c6a9ffc96ac12d6ad1f8149c548d398ec1334c56fe7ee5f9a
7
+ data.tar.gz: 5f76c320cd73b3409053b709cb01ae4f3b7c94033022edbfe1157566b6160b14ab9fe4ed5df9036f1e1d3cdf8604802a0d0391bccb9ab3e6bb379179a338411d
data/Gemfile CHANGED
@@ -10,3 +10,7 @@ gem 'simplecov', :require => false, :group => :test
10
10
  gem 'bundler'
11
11
  gem 'rake'
12
12
  gem 'coveralls', require: false
13
+
14
+ group :development do
15
+ gem 'pry'
16
+ end
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'atpay_tokens'
3
- s.version = '3.1.0'
4
- s.date = '2014-03-31'
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"]
@@ -15,14 +15,14 @@ module AtPay
15
15
  end
16
16
 
17
17
  def email_token
18
- "@#{version}#{Base64.strict_encode64([nonce, partner_frame, body_frame].join)}@"
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.strict_encode64([nonce, partner_frame, site_frame(remote_addr, headers), body_frame].join)}"
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.strict_encode64([@options[:version]].pack("Q>")) + '-') : nil
37
+ @options[:version] ? (Base64.urlsafe_encode64([@options[:version]].pack("Q>")) + '~') : nil
38
38
  end
39
39
 
40
40
  def partner_frame
@@ -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('-').empty? ? 0 : unpack_version(token.split('-')[0])
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.decode64(version[1..-1]).unpack("Q>")[0]
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('-').last
106
+ @token = @token.split('~').last
105
107
  end
106
108
 
107
109
  # Fix our Base64 problems
108
110
  def decode
109
- @token = Base64.decode64 @token
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
- trim_tail tok
197
-
198
- tok
198
+
199
+ tok.gsub('@', '').strip
199
200
  end
200
201
  end
201
202
  end
@@ -2,6 +2,7 @@ require 'atpay_tokens'
2
2
  require 'rbnacl'
3
3
  require 'base64'
4
4
  require 'helper'
5
+ require 'pry'
5
6
 
6
7
  describe AtPay::Tokenator do
7
8
  let(:headers) { {'HTTP_USER_AGENT' => 'agent', 'HTTP_ACCEPT_LANGUAGE' => 'lang', 'HTTP_ACCEPT_CHARSET' => 'charset'} }
@@ -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+=*]{4})*-)?([A-Za-z0-9+=\/]{4}){5,})/ }
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: 3.1.0
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-03-31 00:00:00.000000000 Z
12
+ date: 2014-06-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi