xmlenc 0.1.0 → 0.1.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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZWJjYTNjOTdkM2Y5ZTQ2YThhYWZiNjgzNWU1Zjk1Mjc4MGZhZjIwOA==
5
- data.tar.gz: !binary |-
6
- YjljZjYyZmQwNmJlY2VmYTVlYmNkZDE4Y2I3YjU5NjEwOTNiNTZjYw==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NWI3YzYxMDI0ODQ2OGNlMTM0YzgxZGY3NTIyZjQyYzIzNDY0NGJlZTQzNzlh
10
- NjEyNWFjZTAwMmE0YmZjMWYzZDYxNDc5MTY5OTUxMjM5NDY5OTZlZmQ5MTJl
11
- YTVmMzRjZTBmYzg4MzU2ODMzM2MyMmVkMDhkOTY0OWNhODNhMTk=
12
- data.tar.gz: !binary |-
13
- NjJiYmUyY2U5OTIxNTdiYTcyM2NiNTQ1ODM3YWE2NTI1ODJkYTNhNTgxMTYx
14
- MWY1NGJiZDBiN2I0MjRjZmUyYjI1ZjgxMWM3YzliZWEzZTM3ODgyZmJjNmVm
15
- YmM1M2U2ODNmYmNhNDMzNDFkNzk0OTUyM2YyYzViM2Y1Y2JhNzg=
2
+ SHA1:
3
+ metadata.gz: c7f6fc7a9f8da577303f6edf0fbcb49fc97848af
4
+ data.tar.gz: 614545d1e5b4ca838d25541428c3e94e89a8d0d8
5
+ SHA512:
6
+ metadata.gz: c93716a8483eea188e6e8755fc43d5d626b6aee440bd5609446fbb81b2f1d4d33b43c2495b677df9ca4be9f0474aa8f5f7b4e90f7fbdbff6ad8488f1337594ea
7
+ data.tar.gz: b6f37cb971264ab5db3986b7e7fbe0a315d8e72fa897ca1d3fbd1ecfc32d7fdab288cdd2326648799441508067757233c78f3ed849fb47096674f35d9ecc28b0
@@ -24,6 +24,9 @@ module Xmlenc
24
24
  autoload :EncryptedKey, 'xmlenc/builder/encrypted_key'
25
25
  autoload :KeyInfo, 'xmlenc/builder/key_info'
26
26
  autoload :CipherData, 'xmlenc/builder/cipher_data'
27
+ autoload :DigestMethod, 'xmlenc/builder/digest_method'
28
+ autoload :ReferenceList, 'xmlenc/builder/reference_list'
29
+ autoload :DataReference, 'xmlenc/builder/data_reference'
27
30
 
28
31
  module ComplexTypes
29
32
  autoload :EncryptedType, 'xmlenc/builder/complex_types/encrypted_type'
@@ -12,8 +12,7 @@ module Xmlenc
12
12
  @key.private_decrypt(cipher_value, OpenSSL::PKey::RSA::PKCS1_OAEP_PADDING)
13
13
  end
14
14
 
15
- def encrypt(data, options = {})
16
- verify_algorithm(options[:node]) if options[:node]
15
+ def encrypt(data)
17
16
  @key.public_encrypt(data, OpenSSL::PKey::RSA::PKCS1_OAEP_PADDING)
18
17
  end
19
18
 
@@ -14,6 +14,15 @@ module Xmlenc
14
14
 
15
15
  validates :cipher_data, presence: true
16
16
  end
17
+
18
+ def initialize(attributes = {})
19
+ super
20
+ self.cipher_data = CipherData.new
21
+ end
22
+
23
+ def set_encryption_method(attributes = {})
24
+ self.encryption_method = EncryptionMethod.new(attributes)
25
+ end
17
26
  end
18
27
  end
19
28
  end
@@ -0,0 +1,14 @@
1
+ module Xmlenc
2
+ module Builder
3
+ class DataReference
4
+ include Xmlenc::Builder::Base
5
+
6
+ tag "DataReference"
7
+
8
+ register_namespace "xenc", Xmlenc::NAMESPACES[:xenc]
9
+ namespace "xenc"
10
+
11
+ attribute :uri, String, tag: "URI"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ module Xmlenc
2
+ module Builder
3
+ class DigestMethod
4
+ include Xmlenc::Builder::Base
5
+
6
+ tag "DigestMethod"
7
+
8
+ register_namespace "ds", Xmlenc::NAMESPACES[:ds]
9
+ namespace "ds"
10
+
11
+ attribute :algorithm, String, tag: "Algorithm"
12
+
13
+ validates :algorithm, presence: true
14
+ end
15
+ end
16
+ end
@@ -3,11 +3,48 @@ module Xmlenc
3
3
  class EncryptedData
4
4
  include Xmlenc::Builder::ComplexTypes::EncryptedType
5
5
 
6
+ ALGORITHMS = {
7
+ 'http://www.w3.org/2001/04/xmlenc#tripledes-cbc' => Algorithms::DES3CBC,
8
+ 'http://www.w3.org/2001/04/xmlenc#aes128-cbc' => Algorithms::AESCBC[128],
9
+ 'http://www.w3.org/2001/04/xmlenc#aes256-cbc' => Algorithms::AESCBC[256]
10
+ }
11
+ TYPES = {
12
+ 'http://www.w3.org/2001/04/xmlenc#Element' => :element,
13
+ 'http://www.w3.org/2001/04/xmlenc#Content' => :content,
14
+ }
15
+
6
16
  tag "EncryptedData"
7
17
  namespace "xenc"
8
18
 
9
19
  attribute :id, String, tag: "Id"
10
20
  attribute :type, String, tag: "Type"
21
+
22
+ def type
23
+ 'http://www.w3.org/2001/04/xmlenc#Element'
24
+ end
25
+
26
+ def initialize(attributes = {})
27
+ super
28
+ self.id = SecureRandom.hex(5)
29
+ end
30
+
31
+ def encrypt(data)
32
+ encryptor = algorithm.setup
33
+ encrypted = encryptor.encrypt(data, node: encryption_method)
34
+ cipher_data.cipher_value = Base64.encode64(encrypted)
35
+
36
+ encrypted_key = EncryptedKey.new(data: encryptor.key)
37
+ encrypted_key.add_data_reference(id)
38
+ encrypted_key
39
+ end
40
+
41
+ private
42
+
43
+ def algorithm
44
+ algorithm = encryption_method.algorithm
45
+ ALGORITHMS[algorithm] ||
46
+ raise(UnsupportedError.new("Unsupported encryption method #{algorithm}"))
47
+ end
11
48
  end
12
49
  end
13
50
  end
@@ -3,8 +3,36 @@ module Xmlenc
3
3
  class EncryptedKey
4
4
  include Xmlenc::Builder::ComplexTypes::EncryptedType
5
5
 
6
+ ALGORITHMS = {
7
+ 'http://www.w3.org/2001/04/xmlenc#rsa-1_5' => Algorithms::RSA15,
8
+ 'http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p' => Algorithms::RsaOaepMgf1p
9
+ }
10
+
6
11
  tag "EncryptedKey"
7
12
  namespace "xenc"
13
+
14
+ has_one :reference_list, Xmlenc::Builder::ReferenceList, xpath: "./"
15
+
16
+ attr_accessor :data
17
+
18
+ def encrypt(key, data = nil)
19
+ encryptor = algorithm.new(key)
20
+ encrypted = encryptor.encrypt(data || self.data)
21
+ cipher_data.cipher_value = Base64.encode64(encrypted)
22
+ end
23
+
24
+ def add_data_reference(data_id)
25
+ self.reference_list ||= ReferenceList.new
26
+ self.reference_list.add_data_reference(data_id)
27
+ end
28
+
29
+ private
30
+
31
+ def algorithm
32
+ algorithm = encryption_method.algorithm
33
+ ALGORITHMS[algorithm] ||
34
+ raise(UnsupportedError.new("Unsupported encryption method #{algorithm}"))
35
+ end
8
36
  end
9
37
  end
10
38
  end
@@ -9,8 +9,15 @@ module Xmlenc
9
9
  namespace "xenc"
10
10
 
11
11
  attribute :algorithm, String, tag: "Algorithm"
12
+ has_one :digest_method, Xmlenc::Builder::DigestMethod
12
13
 
13
14
  validates :algorithm, presence: true
15
+
16
+ def initialize(attributes = {})
17
+ digest_method_algorithm = attributes.delete(:digest_method_algorithm)
18
+ attributes[:digest_method] = Xmlenc::Builder::DigestMethod.new(algorithm: digest_method_algorithm)
19
+ super
20
+ end
14
21
  end
15
22
  end
16
23
  end
@@ -0,0 +1,19 @@
1
+ module Xmlenc
2
+ module Builder
3
+ class ReferenceList
4
+ include Xmlenc::Builder::Base
5
+
6
+ tag "ReferenceList"
7
+
8
+ register_namespace "xenc", Xmlenc::NAMESPACES[:xenc]
9
+ namespace "xenc"
10
+
11
+ has_many :data_references, Xmlenc::Builder::DataReference, xpath: "./"
12
+
13
+ def add_data_reference(data_id)
14
+ self.data_references ||= []
15
+ self.data_references << DataReference.new(uri: data_id)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Xmlenc
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -0,0 +1,47 @@
1
+ <EncryptedData Id="ED" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
2
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
3
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
4
+ <EncryptedKey Id="EK" xmlns="http://www.w3.org/2001/04/xmlenc#">
5
+ <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
6
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
7
+ </EncryptionMethod>
8
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
9
+ <ds:KeyName>my-rsa-key</ds:KeyName>
10
+ <ds:X509Data>
11
+ <ds:X509Certificate>
12
+ MIIDzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCVVMx
13
+ CzAJBgNVBAgTAk5ZMRIwEAYDVQQHEwlNYW5oYXR0YW4xFTATBgNVBAoTDExhdmEg
14
+ U3VwcmVtZTEUMBIGA1UECxMLSGVhZCBPZmZpY2UxFDASBgNVBAMTC1JTQSBUZXN0
15
+ IENBMSMwIQYJKoZIhvcNAQkBFhR0ZWNoQGxhdmFzdXByZW1lLm9yZzAeFw0wMjAx
16
+ MzExNjI5NDNaFw00MzAyMjUxNjI5NDNaMIGWMQswCQYDVQQGEwJVUzELMAkGA1UE
17
+ CBMCTlkxEjAQBgNVBAcTCU1hbmhhdHRhbjEVMBMGA1UEChMMTGF2YSBTdXByZW1l
18
+ MRQwEgYDVQQLEwtIZWFkIE9mZmljZTEUMBIGA1UEAxMLUlNBIFRlc3QgQ0ExIzAh
19
+ BgkqhkiG9w0BCQEWFHRlY2hAbGF2YXN1cHJlbWUub3JnMIIBIjANBgkqhkiG9w0B
20
+ AQEFAAOCAQ8AMIIBCgKCAQEAgj3TOyUtgg99oEfsm8h9JTZBxUkzYkXVUOHxIwnk
21
+ Fwp4y9ZnrGja/j+kpRyKvYP5CkNdq0e58/r7GLXj45iqd03XjsFNTdjy4OIOgf7J
22
+ xMG7z+hEB1LT2swTs10GILFWPByRl3/BEsnekLZdoqNoJrvnttVkxgu3x80Ji3/A
23
+ ZD8Ub/kBGOSPyu6pn3OdnMTc5q4r1qUe985lQzCZvCMw6AoGeCyJodNu2MbveNeH
24
+ +YPjRgLCQfzvOFRq+9qMtE8XfUJZdNhPZhgdsOGf8uJauTcIHbAyw7BhxPy6RikW
25
+ W5yiWUmBya+7t4y1TQJzham/0y0zU3TAA7b/rDrU7xmNPwIDAQABoyQwIjAPBgNV
26
+ HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwDQYJKoZIhvcNAQEEBQADggEB
27
+ ADELWZjFLPjSjGeOaeUwH/mEOP+l/nTtxe07IWAQL4kvb4wsiUsM1EkPptcBQsym
28
+ OYgFhf3Elqma84bbOyp85y/iQnjpqWWJ73TFXSWZamSIhYb4Gk+dQuwFI+zD3B2y
29
+ WwqghaAHDzxtzROLUBjo+97Y6ng6V5zjmtdGOFwNXwWhf3Y+MjnErtBIKYao8NJO
30
+ p6di80w82+s6Ot+CLVvVobLhxS/y8yWplATRiQnI5ij/WTLML+tiU5aes0c9abaf
31
+ O7i9j1iTuZsDT3f96ia0RSLsXSGij737QKc3ZM8lSxBWfepWYO+G+IRgr1q9IUDa
32
+ kKO/vB9Ay64Rt88XbLnnGns=
33
+ </ds:X509Certificate>
34
+ </ds:X509Data>
35
+ </ds:KeyInfo>
36
+ <CipherData>
37
+ <CipherValue/>
38
+ </CipherData>
39
+ <ReferenceList>
40
+ <DataReference URI="ED"/>
41
+ </ReferenceList>
42
+ </EncryptedKey>
43
+ </ds:KeyInfo>
44
+ <CipherData>
45
+ <CipherValue/>
46
+ </CipherData>
47
+ </EncryptedData>
@@ -0,0 +1,13 @@
1
+ require "spec_helper"
2
+
3
+ describe Xmlenc::Builder::DataReference do
4
+
5
+ let(:xml) { File.read File.join("spec", "fixtures", "template2.xml") }
6
+ subject { described_class.parse(xml, single: true) }
7
+
8
+ describe "#parse" do
9
+ it "should have uri attribute" do
10
+ expect(subject.uri).to eq "ED"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ require "spec_helper"
2
+
3
+ describe Xmlenc::Builder::DigestMethod do
4
+
5
+ let(:xml) { File.read File.join("spec", "fixtures", "template2.xml") }
6
+ subject { described_class.parse(xml, single: true) }
7
+
8
+ describe "#parse" do
9
+ it "should have one algorithm" do
10
+ expect(subject.algorithm).to eq "http://www.w3.org/2000/09/xmldsig#sha1"
11
+ end
12
+
13
+ it "raises error when no algorithm" do
14
+ subject.algorithm = nil
15
+ expect(subject).to have(1).error_on :algorithm
16
+ end
17
+ end
18
+ end
@@ -34,6 +34,14 @@ describe Xmlenc::Builder::EncryptedKey do
34
34
  expect(subject).to be_a Xmlenc::Builder::EncryptedKey
35
35
  end
36
36
 
37
+ it "should have a reference_list" do
38
+ expect(subject.reference_list).to be_a Xmlenc::Builder::ReferenceList
39
+ end
40
+
41
+ it "should have a data object" do
42
+ expect(subject).to respond_to :data
43
+ end
44
+
37
45
  describe "encryption method" do
38
46
  it "should create an EncryptionMethod element" do
39
47
  expect(subject.encryption_method).to be_a Xmlenc::Builder::EncryptionMethod
@@ -62,4 +70,25 @@ describe Xmlenc::Builder::EncryptedKey do
62
70
  end
63
71
  end
64
72
  end
73
+
74
+ describe "#add_data_reference" do
75
+ it "has method" do
76
+ expect(subject).to respond_to :add_data_reference
77
+ end
78
+
79
+ it "has one data reference" do
80
+ expect(subject.reference_list.data_references.count).to eq 1
81
+ end
82
+
83
+ it "adds an extra data reference" do
84
+ subject.add_data_reference(SecureRandom.hex(5))
85
+ expect(subject.reference_list.data_references.count).to eq 2
86
+ end
87
+ end
88
+
89
+ describe "#encrypt" do
90
+ it "has method" do
91
+ expect(subject).to respond_to :encrypt
92
+ end
93
+ end
65
94
  end
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+
3
+ describe Xmlenc::Builder::ReferenceList do
4
+
5
+ let(:xml) { File.read File.join("spec", "fixtures", "template2.xml") }
6
+ subject { described_class.parse(xml, single: true) }
7
+
8
+ describe "#parse" do
9
+ it "has data" do
10
+ expect(subject.data_references.first).to be_a Xmlenc::Builder::DataReference
11
+ end
12
+
13
+ it "has function" do
14
+ expect(subject).to respond_to :add_data_reference
15
+ end
16
+ end
17
+
18
+ describe "#add_data_reference" do
19
+ it "adds a data reference" do
20
+ subject.add_data_reference(SecureRandom.hex(5))
21
+ expect(subject.data_references.count).to eq 2
22
+ end
23
+ end
24
+ end
@@ -105,8 +105,6 @@ describe Xmlenc::EncryptedKey do
105
105
  encrypted_key_template.encrypt(public_key, data)
106
106
 
107
107
  expect(encrypted_key_template.cipher_value.length).to be > 0
108
-
109
- puts encrypted_key_template.document.to_xml
110
108
  end
111
109
 
112
110
  it 'allows decryption with the key' do
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmlenc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoist
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-21 00:00:00.000000000 Z
11
+ date: 2013-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 3.0.0
41
41
  - !ruby/object:Gem::Dependency
@@ -98,14 +98,14 @@ dependencies:
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: A (partial)implementation of the XMLENC specificiation
@@ -129,10 +129,13 @@ files:
129
129
  - lib/xmlenc/builder/base.rb
130
130
  - lib/xmlenc/builder/cipher_data.rb
131
131
  - lib/xmlenc/builder/complex_types/encrypted_type.rb
132
+ - lib/xmlenc/builder/data_reference.rb
133
+ - lib/xmlenc/builder/digest_method.rb
132
134
  - lib/xmlenc/builder/encrypted_data.rb
133
135
  - lib/xmlenc/builder/encrypted_key.rb
134
136
  - lib/xmlenc/builder/encryption_method.rb
135
137
  - lib/xmlenc/builder/key_info.rb
138
+ - lib/xmlenc/builder/reference_list.rb
136
139
  - lib/xmlenc/encrypted_data.rb
137
140
  - lib/xmlenc/encrypted_document.rb
138
141
  - lib/xmlenc/encrypted_key.rb
@@ -148,6 +151,7 @@ files:
148
151
  - spec/fixtures/phaos/payment.xml
149
152
  - spec/fixtures/phaos/rsa-priv-key.pem
150
153
  - spec/fixtures/template.xml
154
+ - spec/fixtures/template2.xml
151
155
  - spec/lib/xmlenc/algorithms/aes_cbc_spec.rb
152
156
  - spec/lib/xmlenc/algorithms/des3_cbc_spec.rb
153
157
  - spec/lib/xmlenc/algorithms/rsa_15_spec.rb
@@ -155,10 +159,13 @@ files:
155
159
  - spec/lib/xmlenc/builder/base_spec.rb
156
160
  - spec/lib/xmlenc/builder/cipher_data_spec.rb
157
161
  - spec/lib/xmlenc/builder/complex_types/encrypted_type_spec.rb
162
+ - spec/lib/xmlenc/builder/data_reference_spec.rb
163
+ - spec/lib/xmlenc/builder/digest_method_spec.rb
158
164
  - spec/lib/xmlenc/builder/encrypted_data_spec.rb
159
165
  - spec/lib/xmlenc/builder/encrypted_key_spec.rb
160
166
  - spec/lib/xmlenc/builder/encryption_method_spec.rb
161
167
  - spec/lib/xmlenc/builder/key_info_spec.rb
168
+ - spec/lib/xmlenc/builder/reference_list_spec.rb
162
169
  - spec/lib/xmlenc/encrypted_data_spec.rb
163
170
  - spec/lib/xmlenc/encrypted_document_spec.rb
164
171
  - spec/lib/xmlenc/encrypted_key_spec.rb
@@ -175,17 +182,17 @@ require_paths:
175
182
  - lib
176
183
  required_ruby_version: !ruby/object:Gem::Requirement
177
184
  requirements:
178
- - - ! '>='
185
+ - - '>='
179
186
  - !ruby/object:Gem::Version
180
187
  version: '0'
181
188
  required_rubygems_version: !ruby/object:Gem::Requirement
182
189
  requirements:
183
- - - ! '>='
190
+ - - '>='
184
191
  - !ruby/object:Gem::Version
185
192
  version: '0'
186
193
  requirements: []
187
194
  rubyforge_project:
188
- rubygems_version: 2.0.6
195
+ rubygems_version: 2.0.3
189
196
  signing_key:
190
197
  specification_version: 4
191
198
  summary: A (partial)implementation of the XMLENC specificiation
@@ -201,6 +208,7 @@ test_files:
201
208
  - spec/fixtures/phaos/payment.xml
202
209
  - spec/fixtures/phaos/rsa-priv-key.pem
203
210
  - spec/fixtures/template.xml
211
+ - spec/fixtures/template2.xml
204
212
  - spec/lib/xmlenc/algorithms/aes_cbc_spec.rb
205
213
  - spec/lib/xmlenc/algorithms/des3_cbc_spec.rb
206
214
  - spec/lib/xmlenc/algorithms/rsa_15_spec.rb
@@ -208,10 +216,13 @@ test_files:
208
216
  - spec/lib/xmlenc/builder/base_spec.rb
209
217
  - spec/lib/xmlenc/builder/cipher_data_spec.rb
210
218
  - spec/lib/xmlenc/builder/complex_types/encrypted_type_spec.rb
219
+ - spec/lib/xmlenc/builder/data_reference_spec.rb
220
+ - spec/lib/xmlenc/builder/digest_method_spec.rb
211
221
  - spec/lib/xmlenc/builder/encrypted_data_spec.rb
212
222
  - spec/lib/xmlenc/builder/encrypted_key_spec.rb
213
223
  - spec/lib/xmlenc/builder/encryption_method_spec.rb
214
224
  - spec/lib/xmlenc/builder/key_info_spec.rb
225
+ - spec/lib/xmlenc/builder/reference_list_spec.rb
215
226
  - spec/lib/xmlenc/encrypted_data_spec.rb
216
227
  - spec/lib/xmlenc/encrypted_document_spec.rb
217
228
  - spec/lib/xmlenc/encrypted_key_spec.rb