akami 1.3.0 → 1.3.1

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: 208bce131b542d769f19dd08ee9ca4fabffd2bb3
4
- data.tar.gz: ab59a51d740dcabd830313410803fe6853bedbfa
3
+ metadata.gz: 79e369911fc1792b59cfc6160731e6c3512e1a5d
4
+ data.tar.gz: c8ac3cb62b958af7682ad4fdf33a177216b0854f
5
5
  SHA512:
6
- metadata.gz: 675a10d8d0cbf41cb96627f736c372c1c8a9fc9793c28e35ffafee7f916c57e0cd7d901be1fda698d42bec82de71fe161bda6fa7ed66a897fcbb379fb687b680
7
- data.tar.gz: a2d88a8c8966bad864ebc14f150ee950748de0567a60d9db7568d3983de929ea223a105f308528ad13f6189d3f538479bc63c4c72a2fdffcabff48ff879d60e2
6
+ metadata.gz: c148827b7a0b58d3b6efeca602d4a747b069966eeebd4119210d54340b78fb3e138a33793cec5949faabc4982e07292df9f76a146d1e0cbec963af54c758ad51
7
+ data.tar.gz: 442e501d1c5df900c6776cf3846d4ee1c088d0162d49ef61aa22cee8c55346afb924d650ca10fa9e72c7a3001317b1f9d8ca7585323e05c29b8b0f167d0fff93
@@ -1,6 +1,11 @@
1
+ ## 1.3.1 (2015-05-4)
2
+
3
+ * Fix re
4
+
1
5
  ## 1.3.0 (2015-03-31)
2
6
 
3
7
  * Formally drop support for ruby 1.8.7
8
+ * Feature: [#20](https://github.com/savonrb/akami/pull/20) Allow passing cert and private keys as a string, rather than a path to a file.
4
9
 
5
10
  ## 1.2.1 (2014-01-31)
6
11
  * Fix: [#2](https://github.com/savonrb/akami/pull/2) Fixes related to WS-Security,
@@ -20,7 +20,6 @@ Gem::Specification.new do |s|
20
20
 
21
21
  s.add_development_dependency "rake", "~> 10.0"
22
22
  s.add_development_dependency "rspec", "~> 2.14"
23
- s.add_development_dependency "mocha", "~> 0.13"
24
23
  s.add_development_dependency "timecop", "~> 0.5"
25
24
 
26
25
  s.files = `git ls-files`.split("\n")
@@ -1,5 +1,5 @@
1
1
  module Akami
2
2
 
3
- VERSION = "1.3.0"
3
+ VERSION = '1.3.1'
4
4
 
5
5
  end
@@ -14,9 +14,9 @@ module Akami
14
14
  # Returns an <tt>OpenSSL::X509::Certificate</tt> for the +cert_string+ or +cert_file+.
15
15
  def cert
16
16
  @cert ||=
17
- if cert_string.present?
17
+ if !cert_string.nil?
18
18
  OpenSSL::X509::Certificate.new(cert_string)
19
- elsif cert_file.present?
19
+ elsif !cert_file.nil?
20
20
  OpenSSL::X509::Certificate.new(File.read(cert_file))
21
21
  end
22
22
  end
@@ -24,9 +24,9 @@ module Akami
24
24
  # Returns an <tt>OpenSSL::PKey::RSA</tt> for the +private_key_string+ or +private_key_file+.
25
25
  def private_key
26
26
  @private_key ||=
27
- if private_key_string.present?
27
+ if !private_key_string.nil?
28
28
  OpenSSL::PKey::RSA.new(private_key_string, private_key_password)
29
- elsif private_key_file.present?
29
+ elsif !private_key_file.nil?
30
30
  OpenSSL::PKey::RSA.new(File.read(private_key_file), private_key_password)
31
31
  end
32
32
  end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe Akami::WSSE::Certs do
4
+
5
+ let(:private_key_password) {'password' }
6
+ let(:cert_string) { nil }
7
+ let(:private_key_string) { nil }
8
+
9
+ let(:fixtures_path) do
10
+ File.join(Bundler.root, 'spec', 'fixtures', 'akami', 'wsse', 'signature' )
11
+ end
12
+
13
+ let(:subject) do
14
+ Akami::WSSE::Certs.new(
15
+ cert_file: cert_file_path,
16
+ cert_string: cert_string,
17
+ private_key_file: private_key_path,
18
+ private_key_string: private_key_string,
19
+ private_key_password: private_key_password,
20
+ )
21
+ end
22
+
23
+ context 'with a path to a certificate and private key' do
24
+ let(:cert_file_path) { File.join(fixtures_path, 'cert.pem') }
25
+ let(:private_key_path) { File.join(fixtures_path, 'private_key') }
26
+
27
+ it 'should use the certificate path provided' do
28
+ expected_certificate = OpenSSL::X509::Certificate.new(File.read(cert_file_path))
29
+ expect(subject.cert.to_pem).to eq(expected_certificate.to_pem)
30
+ end
31
+
32
+ it 'should use the private key path provided' do
33
+ expected_key = OpenSSL::PKey::RSA.new(File.read(private_key_path), private_key_password)
34
+ expect(subject.private_key.to_pem).to eq(expected_key.to_pem)
35
+ end
36
+
37
+ context 'with an in-memory cert and private key' do
38
+ let!(:cert_string) { File.read(File.join(fixtures_path, 'cert2.pem')) }
39
+ let!(:private_key_string) { File.read(File.join(fixtures_path, 'private_key2')) }
40
+
41
+ it 'should use the strings provided' do
42
+ expected_certificate = OpenSSL::X509::Certificate.new(cert_string).to_pem
43
+ expect(subject.cert.to_pem).to eq(expected_certificate)
44
+ end
45
+
46
+ it 'should use the private key provided' do
47
+ expected_key = OpenSSL::PKey::RSA.new(private_key_string, private_key_password)
48
+ expect(subject.private_key.to_pem).to eq(expected_key.to_pem)
49
+ end
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,37 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDIjCCAougAwIBAgIJAI53JnRgJIJwMA0GCSqGSIb3DQEBBQUAMGoxCzAJBgNV
3
+ BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
4
+ c2NvMQ4wDAYDVQQKEwVTYXZvbjEOMAwGA1UECxMFU2F2b24xDjAMBgNVBAMTBVNh
5
+ dm9uMB4XDTE0MTIwMjAwMTMwMloXDTI0MTEyOTAwMTMwMlowajELMAkGA1UEBhMC
6
+ VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28x
7
+ DjAMBgNVBAoTBVNhdm9uMQ4wDAYDVQQLEwVTYXZvbjEOMAwGA1UEAxMFU2F2b24w
8
+ gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM56hKF3+4SSUu8msb5HWMvp322y
9
+ QL+luJ+Lt/r/ib7EPeb4UU68b+Wf3xIa3N1+w8tDQghCR4YuEIILKH/UGC785Old
10
+ VJfikD4kxiwF4jB0RgdRK/JEG/UthHKqJID+oyijW4ws4MgZ/bWMhSbSVRioqcwe
11
+ 2JElg/m2TemKJkXDAgMBAAGjgc8wgcwwHQYDVR0OBBYEFKSd+UicrRDQS2NeLSEA
12
+ Zpipjk8EMIGcBgNVHSMEgZQwgZGAFKSd+UicrRDQS2NeLSEAZpipjk8EoW6kbDBq
13
+ MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2Fu
14
+ IEZyYW5jaXNjbzEOMAwGA1UEChMFU2F2b24xDjAMBgNVBAsTBVNhdm9uMQ4wDAYD
15
+ VQQDEwVTYXZvboIJAI53JnRgJIJwMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF
16
+ BQADgYEAWI27+cDx3U53zaJROXKfQutqUZzZz9B0NzQ0vlN2h5UbACGbXH9C1wLz
17
+ MBvNjgEiK+/jHSadSDgfvADv+2hCsFw8eNgbisWiV5yvDyTqttg3cSJHz8jRDeA+
18
+ jnvaC9Y//AoRr/WGKKU3FY40J7pQKcQNczGUzCS+ag0IO64agTs=
19
+ -----END CERTIFICATE-----
20
+ -----BEGIN RSA PRIVATE KEY-----
21
+ Proc-Type: 4,ENCRYPTED
22
+ DEK-Info: DES-EDE3-CBC,A0BF079E41C9A4C1
23
+
24
+ rEO5mWOWbnr8uyjtfIRwW9wRo2/y1wMON2c605BkgaNeAKH/++1UC9qEhNtHfE2Q
25
+ omQkXiHfV6yt3l3dWPcnA9ToT9PRNLyoRMMC+Ds5EuEk4ypihQ8SS2xt3wqCRkwm
26
+ 3/AyrRZXUnBTVzZ9D35lz1HCFfJ61UpOMN9XOZy4yUqDZVG/ybMhXilfNKgTr8xJ
27
+ StTb7ruwV/8xTiEgmcxGKJbOcDKqwsd/mW3VbDN6zOqYC0TlFc/eiCbJxMd35l6a
28
+ oRfHWHbabumcfZplqoDcOwYpRb8ZiDbu74RrDogKnpH7nnJrp8jSYueCiXGDWGFG
29
+ ZXB6f2FhsbrLEM87L8cxJO6Hk6+c39qgiP2aRICeKjUNKPOfSiPr4yP4/g3tFY2z
30
+ sI9xur3nAXoqxXBrEkEdvXiH35UfJpqOTxbAN+Ozxnj1QeLWDDE8nkMW/XRRxdCk
31
+ jeUwR5PS3sM2S/fIn7rThQSKRMxznK//cEUsMwz514HekxnKyj8rZUETcFFySxmz
32
+ lmOzDOaPNejDOgNSrlT+IDqE9YlMxLObv5l960QOjk0qBaO8e33HkgfBqENzq7Uv
33
+ Wrj3FyBlNz4vfhCZHBY0+rSgdZHM64DV0HybE7yc+mMUwrV7ish1bGb/Bek/4JF+
34
+ lrpRuxTEQFGNTGFYa0C5zDpz9UtiSUs2X4EX74GfxCUmn7kNND+4OVrndZiEONPz
35
+ /6QffS7YG1UtahDpDzI1wOCYD9Iwg/HnmTWMcXj2Yw7jRvlG0sArw/5dNJkrmuJY
36
+ 6PvFoEeZSF4qrUCDlw/BUJMaGDlhSCyTWulZZU+wWuJRTWCiDxYO1g==
37
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAw86gdw+0nANIB2+8y/2eMXppCI8AbRM+UuZuRbu1WbuGBuwL
3
+ BfkkYwqGOYfms7DF5VE9oMs0Z7s+jHjm4OuI14ikBpQZs4QAHow/FKUT7AgTURk5
4
+ c3Hq2mk3se4sM5VZ6sWV64IqengrueIdv5hNLkqA0iP+ckh2TT/xSYPjFDWIyFkR
5
+ 46ZaHtrEqnMLadp8w/5iwYj2Wr9JWbgptFxlWdfJolDo2XPN2Y7FT3y1uPJ97X7w
6
+ ieEMrdy2VTVx3n5S82uRO8lq7JbOrG/ywYqlc8qy//fygW5lC9svy61AMNoLnEMt
7
+ L/sXHa4Khw97nwAHJVgul7hHIg++yb+8fA0U5QIDAQABAoIBACPjf23TJxthTpZu
8
+ WIBbH9+ZvB6hd0aGvGmdaqDFYtvrjwk9wld57r1odGmfCx3sTJlXZqBOHnDU1QYS
9
+ Mt8OzKoUlVvPUVah3xO6SOWTzC762++FXA5Y1t7pYhfuu5NI0I5DYNMlrHt+AyWy
10
+ 2BkB5UOSzEG37y8rMOO/0I3U6o4NX1xmA7SXdTnGDPAa+UkxmWsuiDqoDez86E0l
11
+ OlUgm76VBY/i19spI+eDqVozxWV9edqO06kSFIevN9bXAqab9oSyKgj9zkPofzHB
12
+ FxBBsmGWlYEFllo7e4MnAYuTBV49UJc+yKnAyHqt7EQo4pylu8Ly7qu1tXPpR+wi
13
+ qJKfzRECgYEA+GvwRoS76nArZ73NzqWfNxdHwq2IsGUOmlOikMreSwOfn+lPBbgs
14
+ mDeLOf8MBwAvJjyTQXxkW/sCA+sRlM4BtuDRYLRLQLgzxXLGKMi2QAeLiJCL+bQJ
15
+ ytVsOAu7EvQ8aSRSPAfZD+S7wv135sr2MyzyHushpGZwToqOizo3hq8CgYEAycfK
16
+ 6and3bYd9QvZH7GALqQauBe+9fmNG5YJKYcjjQNBtStRAMDtNRuAagcaVbIjQrgm
17
+ +BzLbOOJS4/CTtYJPrZDmsQxX0cVI28FwRPWTPjM3g+1IMmaW1QhogU9mea2uPZK
18
+ y6Lb/fEdx0erueDnSzfEDisseh7LFsqaX5rTQqsCgYA+MwBpF6jZTRaBFhPmrq9L
19
+ oueTxdFYoSTj3Rbx++lmjNS1vDvN6cw4nIeekM5ZHmGvyDDyj4utQA7EHmI7iM0D
20
+ Fg02kk3ZOYW05UTaR07if0Efg1mYvsxI3eEHs2A2obJSfQaeAzUE9rdQXhhcT+sO
21
+ 6y0AMs0slX1/HNAN6him/wKBgQCFBqipn4lbj6L0WFlOYbEGDr5mu5DzjRAQLbvg
22
+ mu0/G/SHwgTnIEnCB12DiSc9c/F3HPzj+efK478yB5asbsMtiu/K6qk6DRzMfXcn
23
+ sTJJEIXPqD9bXE3dA/wgWqAgBFBWZFkvIzExm3JsXL3ED5esqRkh1ii+Yeq2Hd/k
24
+ Q6gffQKBgEOiUeqjGjH0GZZF5m3Z2S3SqIJEkrZShWfGkADj0d567TyDBIZaFDlI
25
+ fsWIijrkJqLxRykKHkSuC25zHekvwjvYZH0nJU+aHzMhOUp9EHOG8R0N2iRJB+fI
26
+ IFWPH8APR0B/1dSC2bHdShgocZo4EbzjqHXBYXqtca1fwGwL1QdD
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,30 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: AES-128-CBC,52173193B53D1099E18A13BF0FB75922
4
+
5
+ mZBvI9dsttoS0EHLKN5Th9noq7oaxoon3l5gSSaRNd2qwj74bWLQDIVLYP1loJrq
6
+ EebaE9IVXUAxULws/ZHA5DwdLOekGfppeyClyNxy5aZk3cnzv5mpue+LhuXryaPx
7
+ Uu5gHu3S1cL/OAOhqAFxfwQXDgdYLmsHYWwpr/Hqs2yDgCDcZBbiq7D/FA5/deA4
8
+ V71OH9Ig/5gt8xshuo6ZRrqgiTI5gyml2xXE633/XpYK4wFez2EaJFcziVcmxFYl
9
+ 19UfoTCLZiuNE6y4VgyDpRQlb/xn6robuRDhWg6ab0rKEo3FG8pbQv1n/OwFyR0s
10
+ 1P4ENRygWXDkURTGwfOsduvC9io2NiQISupSrKyOb2SySwUvqXWjjROKoG5rln2i
11
+ HDLXQqNJ7klmFmh90j/hPE3IaIJQZpalBPwHqPrmUCwW3clUZF6YVIUbSmeDpX2/
12
+ t8jeKtttwb04TqVPVoT1/ufBbj+CsO4YmrOQhXmQWvPFJMKqmhk7yhfE9xmfTU2j
13
+ 2NEzpo3icz58IQekrN5WkNLoiRHGcbVzXhaMKIg4e9QqSIatBNkQ/OsM2wgElaiX
14
+ BxdMuhunb4C236U0g0q0YEGbvpUZXScDkI0/eEBkmPcZLtb5GpBl0fruwBehh6ML
15
+ b4y/de3qGGkEZVEErPLlPoELs26ptkZnqp4jrrg2RzIPrfcgH9Cww4kbCGrrflJA
16
+ DTXfprj17AxPW4xxLYAPhndQfhE8knJdMTgFxE3Z7w0QiL6FgSjM1106w45Wde11
17
+ E9w7/NmgbJlphEQwy5xpxE74f+cCIjx/9qbUIEUgpfMGGwSn6b6ZSu3IKLa/Twsj
18
+ F4Vv9jjraagGKtC1cM+FsHq6fXQvSVRopMcwIX4ilD0BXMewNUVVfKFCtcSHXv3P
19
+ lrIxbHZlnL9Xky8bNd/HD0nLRBJOMzCV3TfxKa7h0FhIrfgYEjlv+0Xj8n6ndHBR
20
+ riqTyAUMYTQyxvLdTvqTsNKHNOTGmBljP68dRibhOwxIT5Dp8XPE06pmOPz+6ChZ
21
+ 6lNzydTPU5HCpFWAm7ZkmFgFkf4Fw44OXb7zWq0p10Wht4shxQX+jZaBzg9iWwt2
22
+ Q+arLuV7Z9ucqK/MtbTOrCtvoVZ/zWPx6v0ORhv9XKbLJVZUNRotguyyXfLtTSt5
23
+ ifU8RQyqK3UjVcGfL4xfPLJ3RB5vU7yswcneO16W57N1PnLLEINY5r23kWxFDg65
24
+ limd1LL7u4v+dJMcExUnBBCC+fttxtTC9VlmuHMh7D7I2bUfDSQUfFb5nAe1xqLm
25
+ ycU+EN9bkyDQgEv5c1+Bi5fvenky6vbPCdDTX6S6IQ1pBzacuw31w994I35q/pZZ
26
+ 7f0QEFoPVhLlMLeyxW8Yl4cC4YvN8asqgtveUY2+iNEtYCZduE8DtBkyaKIaISTw
27
+ AfHumzs4QHA7hoOBTXjSO9ozfspmeUHS5jUFU/QDFvkE+DCvKu2fxDzK5rfcH9sy
28
+ DcnyEJJScJQRar96yJHP/9Q8JcQHt/taU8t4yAecZ+qoYPG/q6mxFQsMeHjedJh0
29
+ mxU//a1UHJrCLM1AfnxTkr8mB/LTZmoRh6KhwHPVQ1/H+MDCijBr7lqmsXNybwB4
30
+ -----END RSA PRIVATE KEY-----
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: akami
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-01 00:00:00.000000000 Z
11
+ date: 2015-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gyoku
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.14'
69
- - !ruby/object:Gem::Dependency
70
- name: mocha
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0.13'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '0.13'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: timecop
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -119,10 +105,14 @@ files:
119
105
  - lib/akami/wsse/signature.rb
120
106
  - lib/akami/wsse/verify_signature.rb
121
107
  - lib/akami/xpath_helper.rb
108
+ - spec/akami/wsse/certs_spec.rb
122
109
  - spec/akami/wsse/signature_spec.rb
123
110
  - spec/akami/wsse/verify_signature_spec.rb
124
111
  - spec/akami/wsse_spec.rb
125
112
  - spec/fixtures/akami/wsse/signature/cert.pem
113
+ - spec/fixtures/akami/wsse/signature/cert2.pem
114
+ - spec/fixtures/akami/wsse/signature/private_key
115
+ - spec/fixtures/akami/wsse/signature/private_key2
126
116
  - spec/fixtures/akami/wsse/signature/unsigned.xml
127
117
  - spec/fixtures/akami/wsse/verify_signature/invalid_digest_changed.xml
128
118
  - spec/fixtures/akami/wsse/verify_signature/invalid_digested_changed.xml
@@ -153,15 +143,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
143
  version: '0'
154
144
  requirements: []
155
145
  rubyforge_project: akami
156
- rubygems_version: 2.2.2
146
+ rubygems_version: 2.4.6
157
147
  signing_key:
158
148
  specification_version: 4
159
149
  summary: Web Service Security
160
150
  test_files:
151
+ - spec/akami/wsse/certs_spec.rb
161
152
  - spec/akami/wsse/signature_spec.rb
162
153
  - spec/akami/wsse/verify_signature_spec.rb
163
154
  - spec/akami/wsse_spec.rb
164
155
  - spec/fixtures/akami/wsse/signature/cert.pem
156
+ - spec/fixtures/akami/wsse/signature/cert2.pem
157
+ - spec/fixtures/akami/wsse/signature/private_key
158
+ - spec/fixtures/akami/wsse/signature/private_key2
165
159
  - spec/fixtures/akami/wsse/signature/unsigned.xml
166
160
  - spec/fixtures/akami/wsse/verify_signature/invalid_digest_changed.xml
167
161
  - spec/fixtures/akami/wsse/verify_signature/invalid_digested_changed.xml