xmlenc 0.4.1 → 0.5.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: f1cd8be205f4d884ef3f5e43dc22d200ec6980be
4
- data.tar.gz: 19155cd49f925eeed4c443a77023e766175a6c5d
3
+ metadata.gz: 9e401bd2ee8c45b6fa16fb1fd964339576196184
4
+ data.tar.gz: 8a662156741e2be202bb749a384d285e31315ede
5
5
  SHA512:
6
- metadata.gz: ffe48439bb5b226859055c8cf469382213e71a314a2f0aa0b1e242ad986517b0e8ca5ee40808dd0a70fdfbb04508649b9057cc26f626fe79f36897e79145fc60
7
- data.tar.gz: a361d62f33feeb06db5765a5c319a61f7163116396b6f8c03df6ddec68af692f7d3f828a76d784df84ea1da387ee8773b2540cee0ecded33c6ee2ecb71415ca6
6
+ metadata.gz: 2ccce2142048e50481634b71b3b3a5824bdfa7ce53708eb0078e56b432ed8bb7d2d71506579c97565d866eed39c6be03a63e74745ba3aed2a326dbc30cebe074
7
+ data.tar.gz: 3941eff179a841a04850503593746c8387e08cd83efdb858e628443d258318a0c5bef62256a95da75651c4ecf7acb04739265b09d79d4723d94d95d8ee21a0e4
@@ -11,11 +11,10 @@ module Xmlenc
11
11
  :ds => 'http://www.w3.org/2000/09/xmldsig#'
12
12
  }
13
13
 
14
- class UnsupportedError < StandardError
15
- end
16
-
17
- class UnparseableMessage < StandardError
18
- end
14
+ class Error < StandardError; end
15
+ class UnsupportedError < Error; end
16
+ class UnparseableMessage < Error; end
17
+ class EncryptedDataNotFound < Error; end
19
18
 
20
19
  module Builder
21
20
  autoload :Base, 'xmlenc/builder/base'
@@ -44,10 +44,11 @@ module Xmlenc
44
44
 
45
45
  def referenced_node
46
46
  if reference_uri
47
- document.at_xpath("//xenc:EncryptedData[@Id='#{reference_uri}']", NAMESPACES)
47
+ document.at_xpath("//xenc:EncryptedData[@Id='#{reference_uri}']", NAMESPACES) ||
48
+ raise(Xmlenc::EncryptedDataNotFound.new("Encrypted data not found for: #{reference_uri}"))
48
49
  else
49
- #document.at_xpath("//xenc:EncryptedData", NAMESPACES)
50
- @node.at_xpath('ancestor::xenc:EncryptedData', Xmlenc::NAMESPACES)
50
+ @node.at_xpath('ancestor::xenc:EncryptedData', Xmlenc::NAMESPACES) ||
51
+ raise(Xmlenc::EncryptedDataNotFound.new('Encrypted data not in ancestore element'))
51
52
  end
52
53
  end
53
54
 
@@ -1,3 +1,3 @@
1
1
  module Xmlenc
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -0,0 +1,48 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <PaymentInfo xmlns="http://example.org/paymentv2">
3
+ <Name>John Smith</Name>
4
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
5
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
6
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
7
+ <ds:KeyName>my-rsa-key</ds:KeyName>
8
+ <ds:X509Data>
9
+ <ds:X509Certificate>
10
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
11
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
12
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
13
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
14
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
15
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
16
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
17
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
18
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
19
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
20
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
21
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
22
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
23
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
24
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
25
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
26
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
27
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
28
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
29
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
30
+ kKO/vB9Ay64Rt88XbLnnGns=
31
+ </ds:X509Certificate>
32
+ </ds:X509Data>
33
+ </ds:KeyInfo>
34
+ <CipherData>
35
+ <CipherValue>
36
+ cCxxYh3xGBTqlXbhmKxWzNMlHeE28E7vPrMyM5V4T+t1Iy2csj1BoQ7cqBjEhqEy
37
+ Eot4WNRYsY7P44mWBKurj2mdWQWgoxHvtITP9AR3JTMxUo3TF5ltW76DLDsEvWlE
38
+ uZKam0PYj6lYPKd4npUULeZyR/rDRrth/wFIBD8vbQlUsBHapNT9MbQfSKZemOuT
39
+ UJL9PNgsosySpKrX564oQw398XsxfTFxi4hqbdqzA/CLL418X01hUjIHdyv6XnA2
40
+ 98Bmfv9WMPpX05udR4raDv5X8NWxjH00hAhasM3qumxoyCT6mAGfqvE23I+OXtrN
41
+ lUvE9mMjANw4zweCHsOcfw==
42
+ </CipherValue>
43
+ </CipherData>
44
+ <ReferenceList>
45
+ <DataReference URI="#ED"/>
46
+ </ReferenceList>
47
+ </EncryptedKey>
48
+ </PaymentInfo>
@@ -39,5 +39,13 @@ describe Xmlenc::EncryptedDocument do
39
39
  it 'replaces the encrypted data with the unencrypted elements' do
40
40
  expect(subject.decrypt(private_key).chomp).to be == plain_xml
41
41
  end
42
+
43
+ context 'when encryption key is missing encryption data' do
44
+ let(:encrypted_xml) { File.read('spec/fixtures/encrypted_document_without_data.xml') }
45
+
46
+ it 'raises an error if the encrypted data cannot be found' do
47
+ expect { subject.decrypt(private_key).chomp }.to raise_error(Xmlenc::EncryptedDataNotFound)
48
+ end
49
+ end
42
50
  end
43
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmlenc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoist
@@ -160,6 +160,7 @@ files:
160
160
  - spec/fixtures/encrypted/java_to_ruby.txt
161
161
  - spec/fixtures/encrypted_document.xml
162
162
  - spec/fixtures/encrypted_document_no_ref_list.xml
163
+ - spec/fixtures/encrypted_document_without_data.xml
163
164
  - spec/fixtures/key.pem
164
165
  - spec/fixtures/phaos/enc-content-aes256-kt-rsa1_5.xml
165
166
  - spec/fixtures/phaos/enc-element-3des-kt-rsa_oaep_sha1.xml
@@ -222,6 +223,7 @@ test_files:
222
223
  - spec/fixtures/encrypted/java_to_ruby.txt
223
224
  - spec/fixtures/encrypted_document.xml
224
225
  - spec/fixtures/encrypted_document_no_ref_list.xml
226
+ - spec/fixtures/encrypted_document_without_data.xml
225
227
  - spec/fixtures/key.pem
226
228
  - spec/fixtures/phaos/enc-content-aes256-kt-rsa1_5.xml
227
229
  - spec/fixtures/phaos/enc-element-3des-kt-rsa_oaep_sha1.xml