xmlenc 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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