atpay_tokens 3.1.0 → 4.0.0

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: 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