wepay-signer 1.0.0 → 1.1.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: 3e479de889f8eb00c3156d88c8cee78009301599
4
- data.tar.gz: 7a3c9b4b299eda43cad03715e539024e42f0f082
3
+ metadata.gz: dee087f2859195456da1b0ed41de40beefa30ab7
4
+ data.tar.gz: ec8a0ebdb7918e3d14af18d9591199070c09f154
5
5
  SHA512:
6
- metadata.gz: c9e4fa128e14c42f8f715946d615cf39aa31d22c4e6fac937926d6ebbc11d3835707ec5ec4ad3a580645ba7b72cffa4be9101e45208a728d7df515cbec1cf128
7
- data.tar.gz: de5d9d3b9b51cc7a80ca1015ff45cd4d4b9a615776fdcf84fe731f89f01f5a4c59652178e642b589a8ccd27296c98f61bfa0a918120fcfb9a5b7ec75f78b24dc
6
+ metadata.gz: 9089628d9b8642359f8c3a1d071a91298e4c9df22fe1b2b38c8b9288022fba00301b35e7920bf522c046bd021fc032c962da4a6ec4d31544aa9fc208cca7be0e
7
+ data.tar.gz: 877c49f80dc7360751985e814c634ad656822bf1cef7953444529a6ac87bb1ccebe7c951ceba0746f93fe7558330b1cf718a42617af9d379b7a2dcf2c412b8b9
@@ -29,6 +29,11 @@ module WePay
29
29
  ##
30
30
  class Signer
31
31
 
32
+ attr_reader :self_key
33
+ attr_reader :client_id
34
+ attr_reader :client_secret
35
+ attr_reader :hash_algo
36
+
32
37
  ##
33
38
  # Constructs a new instance of this class.
34
39
  #
@@ -42,43 +47,16 @@ module WePay
42
47
  # @option options [String] hash_algo (sha512) The hash algorithm to use for signing.
43
48
  ##
44
49
  def initialize(client_id, client_secret, options = {})
45
- @client_id = client_id
46
- @client_secret = client_secret
50
+ @client_id = client_id.to_s
51
+ @client_secret = client_secret.to_s
47
52
 
48
53
  options = {
49
54
  :self_key => 'WePay',
50
55
  :hash_algo => 'sha512',
51
- }.merge(options);
56
+ }.merge(options)
52
57
 
53
- @self_key = options[:self_key]
54
- @hash_algo = options[:hash_algo]
55
- end
56
-
57
- ##
58
- # Gets the self key that was set in the constructor.
59
- #
60
- # @return [String] The self key.
61
- ##
62
- def get_self_key
63
- @self_key
64
- end
65
-
66
- ##
67
- # Gets the client key that was set in the constructor.
68
- #
69
- # @return [String] The client key.
70
- ##
71
- def get_client_id
72
- @client_id
73
- end
74
-
75
- ##
76
- # Gets the client secret that was set in the constructor.
77
- #
78
- # @return [String] The client secret.
79
- ##
80
- def get_client_secret
81
- @client_secret
58
+ @self_key = options[:self_key].to_s
59
+ @hash_algo = options[:hash_algo].to_s
82
60
  end
83
61
 
84
62
  ##
@@ -100,9 +78,7 @@ module WePay
100
78
  context = create_context(payload)
101
79
  s2s = create_string_to_sign(scope, context)
102
80
  signing_key = get_signing_salt
103
- signature = OpenSSL::HMAC.hexdigest(@hash_algo, signing_key, s2s)
104
-
105
- return signature
81
+ OpenSSL::HMAC.hexdigest(@hash_algo, signing_key, s2s)
106
82
  end
107
83
 
108
84
  ##
@@ -118,13 +94,13 @@ module WePay
118
94
  signed_token = sign(payload)
119
95
  payload[:client_id] = @client_id
120
96
  payload[:stoken] = signed_token
121
- qsa = Array.new
97
+ qsa = []
122
98
 
123
99
  payload.keys.sort.each do | key |
124
100
  qsa.push sprintf("%s=%s", key, payload[key])
125
101
  end
126
102
 
127
- return qsa.join("&")
103
+ qsa.join("&")
128
104
  end
129
105
 
130
106
  private
@@ -139,7 +115,7 @@ private
139
115
  def create_string_to_sign(scope, context)
140
116
  scope_hash = OpenSSL::Digest.new(@hash_algo, scope)
141
117
  context_hash = OpenSSL::Digest.new(@hash_algo, context)
142
- s2s = sprintf "SIGNER-HMAC-%s\n%s\n%s\n%s\n%s", @hash_algo.upcase, @self_key, @client_id, scope_hash, context_hash
118
+ sprintf "SIGNER-HMAC-%s\n%s\n%s\n%s\n%s", @hash_algo.upcase, @self_key, @client_id, scope_hash, context_hash
143
119
  end
144
120
 
145
121
  ##
@@ -161,8 +137,8 @@ private
161
137
 
162
138
  canonical_payload.sort!
163
139
 
164
- signed_headers_string = payload.keys.sort_by {|s| s.to_s}.join(";")
165
- canonical_context = canonical_payload.join("") + "\n" + signed_headers_string
140
+ signed_headers_string = payload.keys.sort_by {|s| s.to_s }.join(";")
141
+ canonical_payload.join("") + "\n" + signed_headers_string
166
142
  end
167
143
 
168
144
  ##
@@ -173,7 +149,7 @@ private
173
149
  def get_signing_salt
174
150
  self_key_sign = OpenSSL::HMAC.digest(@hash_algo, @client_secret, @self_key)
175
151
  client_id_sign = OpenSSL::HMAC.digest(@hash_algo, self_key_sign, @client_id)
176
- salt = OpenSSL::HMAC.digest(@hash_algo, client_id_sign, 'signer')
152
+ OpenSSL::HMAC.digest(@hash_algo, client_id_sign, 'signer')
177
153
  end
178
154
 
179
155
  ##
@@ -182,7 +158,7 @@ private
182
158
  # @return [String] The string which represents the scope in which the signature is valid.
183
159
  ##
184
160
  def create_scope
185
- scope = sprintf "%s/%s/signer", @self_key, @client_id
161
+ sprintf "%s/%s/signer", @self_key, @client_id
186
162
  end
187
163
 
188
164
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wepay-signer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WePay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-16 00:00:00.000000000 Z
11
+ date: 2015-04-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Modern Ruby SDK for signing WePay requests.
14
14
  email: api@wepay.com
@@ -16,7 +16,7 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
- - lib/signer.rb
19
+ - lib/wepay-signer.rb
20
20
  homepage: https://github.com/wepay/signer-ruby
21
21
  licenses:
22
22
  - Apache-2.0