xmldsign 0.1.6 → 0.2.0.beta

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTljM2IyNjczYTFjODk0MmI0MWM0NjBkZTc0YjYwMDRiZTFlZTA2Nw==
4
+ ODY4N2JkMmNhYjlmMzI4YWNiZDFlOTAwNDYxNGEwM2NjOWRjODkwYg==
5
5
  data.tar.gz: !binary |-
6
- MDM2MWIzMzdmNzZhMGY4ZDM4NWU5NmQ4ZDE1MGExMDNiZmU5N2ZkNA==
6
+ ZTMzMTA2MGI0NjZiNGE1YTRkZTcyZTliYWYyYjQ2ZTBlMTA2YWFlNg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YTNiZTg3YjdkZDE2ZWI4NDk0M2E5Yjc5MzI0MDEwZGM2NWU1Mjc0YTljOTU3
10
- OGE3MmQxZjBiMzc2YzkyNTdkNzg2MmI2YzI5MmIwY2Q0MDgwZmRhZDI5N2Nl
11
- MGYwYjgwZGJlYTg1ZTU5MjM5ODhlNmZhNmNlNDQ3MGU1MTM2MWY=
9
+ MWI2NWFkYmEwNzAyNDdjNmY4MmZlMjlhMTdlYTliNWM0NWY4ZjU2MDhhNjJm
10
+ ZDI4YTM5NDU0MDE3NTA2YTA0NGVlZjNlYzg5Y2Q1OTgyN2UzMzI3YWE4ZWQz
11
+ YjViM2Q1M2RhNmUzNWY5YmUxZTY1OTRhMzA0ZTQyOGY4YjY5MTA=
12
12
  data.tar.gz: !binary |-
13
- MjdlNjAyNDdhNGM5NmI4ZWFhNWFmODlmOTA4YjE1YjM5NzAzMjM3ZWVmYWFk
14
- ZDVhOTRhNmI5NTFkYmZiNDg2MDk3YzhkNmMyMTc1NzI1NGI3NDA2MTFmZjQw
15
- ZjhjNDc3YjM0MmEzZWUyNjk4NWZlYmU0MzY1NGY4MGMwMzY4Mjg=
13
+ NjkwZjY2ODUxZThlNjMzZDI5OGNjMTBjM2I1ZTBmNWVkMjc3OTdiMWRkMDIx
14
+ MTQ0OWFjMGExZTc4MTEwZjU2Nzg2ZjYxMjZhZDkxNTRlYTMyZDk1YmIxZmNh
15
+ ZGYyNjYyOGQ4ODQzMjg5YzVmZmFmNDg4Mjc0MGEyNGE4YTE4MDQ=
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  *.gem
2
+ *.o
2
3
  *.rbc
3
4
  .bundle
4
5
  .config
data/Rakefile CHANGED
@@ -1 +1,17 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new('spec')
5
+
6
+ task :build_native_extension do
7
+ Dir.chdir('ext/xmldsign') do
8
+ output = `ruby extconf.rb`
9
+ raise output unless $? == 0
10
+ output = `make`
11
+ raise output unless $? == 0
12
+ end
13
+ end
14
+
15
+ task :spec => :build_native_extension
16
+
17
+ task :default => :spec
@@ -1,9 +1,22 @@
1
1
  module Xmldsign
2
2
  class Transforms < DelegateClass(XML::Node)
3
- def execute(document=self.doc)
4
- doc = LibXML::XML::Document.new
5
- doc.root = document.root.copy(true)
6
- algorithms.inject(doc) { |d, algorithm| algorithm.execute d }
3
+ def execute
4
+ signing_doc = LibXML::XML::Document.new
5
+ signing_doc.root = signing_node.copy(true)
6
+ algorithms.inject(signing_doc) { |d, algorithm| algorithm.execute d }
7
+ end
8
+
9
+ def signing_node
10
+ if (reference_uri = reference[:URI] and not reference_uri.empty?)
11
+ id = reference_uri.sub!('#', '')
12
+ doc.find_first("//*[@wsu:Id='#{id}']")
13
+ else
14
+ doc.root
15
+ end
16
+ end
17
+
18
+ def reference
19
+ doc.find_first('.//ds:Reference')
7
20
  end
8
21
 
9
22
  def algorithms
@@ -1,3 +1,3 @@
1
1
  module Xmldsign
2
- VERSION = "0.1.6"
2
+ VERSION = '0.2.0.beta' # TODO: need tests refactoring and specs with and without Reference URI
3
3
  end
@@ -105,12 +105,10 @@
105
105
  <ds:DigestValue/>
106
106
  </ds:Reference>
107
107
  </ds:SignedInfo>
108
- <ds:SignatureValue>
109
- </ds:SignatureValue>
108
+ <ds:SignatureValue></ds:SignatureValue>
110
109
  <ds:KeyInfo>
111
110
  <ds:X509Data>
112
- <ds:X509Certificate>
113
- </ds:X509Certificate>
111
+ <ds:X509Certificate></ds:X509Certificate>
114
112
  </ds:X509Data>
115
113
  </ds:KeyInfo>
116
114
  </ds:Signature>
@@ -105,10 +105,10 @@
105
105
  <ds:DigestValue>ZtonhLsw3V9Sr14iQUvwMJoTo0RbnXMFca2z29xIPxw=</ds:DigestValue>
106
106
  </ds:Reference>
107
107
  </ds:SignedInfo>
108
- <ds:SignatureValue/>
108
+ <ds:SignatureValue></ds:SignatureValue>
109
109
  <ds:KeyInfo>
110
110
  <ds:X509Data>
111
- <ds:X509Certificate/>
111
+ <ds:X509Certificate></ds:X509Certificate>
112
112
  </ds:X509Data>
113
113
  </ds:KeyInfo>
114
114
  </ds:Signature>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmldsign
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Sozontov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-11 00:00:00.000000000 Z
11
+ date: 2013-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  prerelease: false
@@ -191,9 +191,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
191
  version: '0'
192
192
  required_rubygems_version: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ! '>='
194
+ - - ! '>'
195
195
  - !ruby/object:Gem::Version
196
- version: '0'
196
+ version: 1.3.1
197
197
  requirements: []
198
198
  rubyforge_project:
199
199
  rubygems_version: 2.0.3