akami 1.3.0 → 1.3.1

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