signed_xml 1.0.1 → 1.1.0
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 +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +6 -4
- data/LICENSE.txt +2 -2
- data/README.md +37 -8
- data/lib/signed_xml.rb +1 -0
- data/lib/signed_xml/c14n_transform.rb +5 -2
- data/lib/signed_xml/reference.rb +3 -1
- data/lib/signed_xml/version.rb +1 -1
- data/signed_xml.gemspec +2 -1
- data/spec/resources/saml_response_template_w_inclusive_c14n.xml +63 -0
- data/spec/resources/signed_saml_response_w_inclusive_c14n.xml +80 -0
- data/spec/signed_xml_document_spec.rb +9 -1
- data/spec/spec_helper.rb +3 -0
- metadata +36 -34
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9237cab4ca63f8b3edf77ef72441071583d7369c
|
4
|
+
data.tar.gz: af907d76ea132e2a73044a1cf253f3e6139fcc60
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c31450cf47d60eafeed2f578e1fd7720c996e107120f1f8076a948f543f55d4dd278f6016d71b8b206ba2b0a657751a05a7aab728a12e8ad5a7403249b2e35c9
|
7
|
+
data.tar.gz: 2e01b8a826942db5e17055eedfdc733ad7dfcf4d60d27f59cdb69be00c1ef5e0cff78281b91cb59dc397e54c7b8590b149f518b9b61e87c3d6884aa8b5ace03e
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/LICENSE.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2013
|
1
|
+
Copyright (c) 2013 OpenLogic, Inc.
|
2
2
|
|
3
3
|
MIT License
|
4
4
|
|
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
19
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
SignedXml
|
1
|
+
SignedXml
|
2
2
|
=========
|
3
|
+
[](https://travis-ci.org/openlogic/signed_xml)
|
4
|
+
[](https://coveralls.io/r/openlogic/signed_xml)
|
3
5
|
|
4
6
|
SignedXml is a Ruby implementation of [XML Signatures](http://www.w3.org/TR/xmldsig-core).
|
5
7
|
|
@@ -11,11 +13,14 @@ SignedXml requires and is in love with [Nokogiri](http://nokogiri.org).
|
|
11
13
|
Limitations
|
12
14
|
-----------
|
13
15
|
|
14
|
-
They are legion.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
They are legion. Allowed transformations are enveloped-signature and c14n. Only
|
17
|
+
same-document Reference URIs are supported, and of those only the null URI
|
18
|
+
(URI="", i.e. the whole document) and fragment URIs which specify a literal ID
|
19
|
+
are supported. XPointer expressions are not supported.
|
20
|
+
|
21
|
+
SignedXml can also sign documents which contain certain required
|
22
|
+
placeholder elements. For an example, see the file
|
23
|
+
saml_response_template.xml in spec/resources.
|
19
24
|
|
20
25
|
Installation
|
21
26
|
------------
|
@@ -44,9 +49,27 @@ Usage
|
|
44
49
|
```ruby
|
45
50
|
require 'signed_xml'
|
46
51
|
|
47
|
-
|
48
|
-
|
52
|
+
# Verification
|
53
|
+
# using certificate in document
|
54
|
+
signed_doc = SignedXml::Document(File.read 'some_signed_doc.xml')
|
49
55
|
signed_doc.is_verified?
|
56
|
+
|
57
|
+
# using certificate provided by caller
|
58
|
+
certificate = OpenSSL::X509::Certificate.new(File.read 'certificate.pem')
|
59
|
+
signed_doc.is_verified? certificate
|
60
|
+
|
61
|
+
# using certificate which matches the one in the document
|
62
|
+
# (and failing if it doesn't)
|
63
|
+
cert_fingerprint = Digest::SHA1.hexdigest(certificate.to_der)
|
64
|
+
certificate_store = {cert_fingerprint => certificate}
|
65
|
+
signed_doc.is_verified? certificate_store
|
66
|
+
|
67
|
+
# Signing
|
68
|
+
doc = SignedXml::Document(File.read 'doc_with_placeholder_elems.xml')
|
69
|
+
private_key = OpenSSL::PKey::RSA.new(File.new 'private_key.pem')
|
70
|
+
certificate = OpenSSL::X509::Certificate.new(File.read 'certificate.pem')
|
71
|
+
doc.sign(private_key, certificate)
|
72
|
+
File.open('signed_doc.xml', 'w') { |file| file.puts doc.to_xml }
|
50
73
|
```
|
51
74
|
|
52
75
|
Contributing
|
@@ -57,3 +80,9 @@ Contributing
|
|
57
80
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
58
81
|
4. Push to the branch (`git push origin my-new-feature`)
|
59
82
|
5. Create new Pull Request
|
83
|
+
|
84
|
+
|
85
|
+
Copyright
|
86
|
+
-----
|
87
|
+
|
88
|
+
Copyright (c) OpenLogic, Inc. See LICENSE for details.
|
data/lib/signed_xml.rb
CHANGED
@@ -4,8 +4,9 @@ module SignedXml
|
|
4
4
|
|
5
5
|
attr_reader :method
|
6
6
|
attr_reader :with_comments
|
7
|
+
attr_reader :inclusive_namespaces
|
7
8
|
|
8
|
-
def initialize(method = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315")
|
9
|
+
def initialize(method = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315", inclusive_namespaces = [])
|
9
10
|
method, with_comments = method.split('#')
|
10
11
|
@method = case method
|
11
12
|
when "http://www.w3.org/TR/2001/REC-xml-c14n-20010315" then XML_C14N_1_0
|
@@ -15,12 +16,14 @@ module SignedXml
|
|
15
16
|
end
|
16
17
|
|
17
18
|
@with_comments = !!with_comments
|
19
|
+
|
20
|
+
@inclusive_namespaces = inclusive_namespaces
|
18
21
|
end
|
19
22
|
|
20
23
|
def apply(input)
|
21
24
|
raise ArgumentError, "input #{input.inspect}:#{input.class} is not canonicalizable" unless input.respond_to?(:canonicalize)
|
22
25
|
|
23
|
-
input.canonicalize(method,
|
26
|
+
input.canonicalize(method, inclusive_namespaces, with_comments)
|
24
27
|
end
|
25
28
|
end
|
26
29
|
end
|
data/lib/signed_xml/reference.rb
CHANGED
@@ -47,7 +47,9 @@ module SignedXml
|
|
47
47
|
when "http://www.w3.org/2000/09/xmldsig#enveloped-signature"
|
48
48
|
transforms << EnvelopedSignatureTransform.new
|
49
49
|
when %r{^http://.*c14n}
|
50
|
-
|
50
|
+
inclusive_namespaces_node = transform_node.at_xpath('.//ec:InclusiveNamespaces/@PrefixList', ec: XML_EXC_C14N_NS)
|
51
|
+
inclusive_namespaces = inclusive_namespaces_node ? inclusive_namespaces_node.content.split : []
|
52
|
+
transforms << C14NTransform.new(method, inclusive_namespaces)
|
51
53
|
else
|
52
54
|
raise ArgumentError, "unknown transform method #{method}"
|
53
55
|
end
|
data/lib/signed_xml/version.rb
CHANGED
data/signed_xml.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ["todd.thomas@openlogic.com"]
|
11
11
|
gem.description = %q{XML Signature verification}
|
12
12
|
gem.summary = %q{Provides [incomplete] support for verification of XML Signatures <http://www.w3.org/TR/xmldsig-core>.}
|
13
|
-
gem.homepage = ""
|
13
|
+
gem.homepage = "https://github.com/openlogic/signed_xml"
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.add_dependency "nokogiri", "~> 1.5"
|
21
21
|
gem.add_dependency "options"
|
22
22
|
|
23
|
+
gem.add_development_dependency "coveralls"
|
23
24
|
gem.add_development_dependency "rake"
|
24
25
|
gem.add_development_dependency "rspec"
|
25
26
|
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<Response
|
2
|
+
IssueInstant="2003-04-17T00:46:02Z" Version="2.0"
|
3
|
+
ID="_c7055387-af61-4fce-8b98-e2927324b306"
|
4
|
+
xmlns="urn:oasis:names:tc:SAML:2.0:protocol"
|
5
|
+
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
|
6
|
+
<saml:Issuer>https://www.opensaml.org/IDP"</saml:Issuer>
|
7
|
+
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
8
|
+
<ds:SignedInfo>
|
9
|
+
<ds:CanonicalizationMethod
|
10
|
+
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
|
11
|
+
<ds:SignatureMethod
|
12
|
+
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
|
13
|
+
<ds:Reference URI="">
|
14
|
+
<ds:Transforms>
|
15
|
+
<ds:Transform
|
16
|
+
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
|
17
|
+
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
|
18
|
+
<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/>
|
19
|
+
</ds:Transform>
|
20
|
+
</ds:Transforms>
|
21
|
+
<ds:DigestMethod
|
22
|
+
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
|
23
|
+
<ds:DigestValue/>
|
24
|
+
</ds:Reference>
|
25
|
+
</ds:SignedInfo>
|
26
|
+
<ds:SignatureValue/>
|
27
|
+
<ds:KeyInfo>
|
28
|
+
<ds:X509Data>
|
29
|
+
<ds:X509Certificate>
|
30
|
+
</ds:X509Certificate>
|
31
|
+
</ds:X509Data>
|
32
|
+
</ds:KeyInfo>
|
33
|
+
</ds:Signature>
|
34
|
+
<Status>
|
35
|
+
<StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
|
36
|
+
</Status>
|
37
|
+
<Assertion ID="_a75adf55-01d7-40cc-929f-dbd8372ebdfc"
|
38
|
+
IssueInstant="2003-04-17T00:46:02Z" Version="2.0"
|
39
|
+
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
|
40
|
+
<Issuer>https://www.opensaml.org/IDP</Issuer>
|
41
|
+
<Subject>
|
42
|
+
<NameID
|
43
|
+
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
|
44
|
+
scott@example.org
|
45
|
+
</NameID>
|
46
|
+
<SubjectConfirmation
|
47
|
+
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/>
|
48
|
+
</Subject>
|
49
|
+
<Conditions NotBefore="2003-04-17T00:46:02Z"
|
50
|
+
NotOnOrAfter="2003-04-17T00:51:02Z">
|
51
|
+
<AudienceRestriction>
|
52
|
+
<Audience>http://www.opensaml.org/SP</Audience>
|
53
|
+
</AudienceRestriction>
|
54
|
+
</Conditions>
|
55
|
+
<AuthnStatement AuthnInstant="2003-04-17T00:46:00Z">
|
56
|
+
<AuthnContext>
|
57
|
+
<AuthnContextClassRef>
|
58
|
+
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
|
59
|
+
</AuthnContextClassRef>
|
60
|
+
</AuthnContext>
|
61
|
+
</AuthnStatement>
|
62
|
+
</Assertion>
|
63
|
+
</Response>
|
@@ -0,0 +1,80 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<Response xmlns="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" IssueInstant="2003-04-17T00:46:02Z" Version="2.0" ID="_c7055387-af61-4fce-8b98-e2927324b306">
|
3
|
+
<saml:Issuer>https://www.opensaml.org/IDP"</saml:Issuer>
|
4
|
+
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
5
|
+
<ds:SignedInfo>
|
6
|
+
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
|
7
|
+
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
|
8
|
+
<ds:Reference URI="">
|
9
|
+
<ds:Transforms>
|
10
|
+
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
|
11
|
+
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
|
12
|
+
<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/>
|
13
|
+
</ds:Transform>
|
14
|
+
</ds:Transforms>
|
15
|
+
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
|
16
|
+
<ds:DigestValue>zHUQ8ywhrKz5TW+8CCeu8kGOYEY=</ds:DigestValue>
|
17
|
+
</ds:Reference>
|
18
|
+
</ds:SignedInfo>
|
19
|
+
<ds:SignatureValue>h9aT8YCYGk+Aj5SunHuNbLjL7v122IM1M+8DjY2P5NqIQtrfL3TUjAs47Gn/
|
20
|
+
GqxDaUfA7QjV/Iri1GBfDU7lU4XbnutFsRibvuGc/x4h0SXZmH/u+q4QkUBV
|
21
|
+
7PVIRT2Qm7K1D1jNebLbHNfFKmgPQYCqLLuggqtfMz2gk8Ebun9vwMsGfmot
|
22
|
+
3tAb14nCm7RDkhUiXcH4Dh/+ols8geOIMryNcKjeAosVE7YV9bdtuLiPi/dy
|
23
|
+
Lv3taNlFWxveWQHZE2GrPhd/HjFt2Rju5CTKMLVMzxdah78FknhVd+9CDzYH
|
24
|
+
CYnd7b4r36Y6TKQ4JbwJa82u4K8Sj18udSzaqK1G8g==</ds:SignatureValue>
|
25
|
+
<ds:KeyInfo>
|
26
|
+
<ds:X509Data>
|
27
|
+
<ds:X509Certificate>MIIExDCCA6ygAwIBAgIJAJsG6scSiBu+MA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
|
28
|
+
VQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEUMBIGA1UEBxMLU3ByaW5nZmll
|
29
|
+
bGQxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDETMBEGA1UECxQK
|
30
|
+
QXJyciAmIERlZTELMAkGA1UEAxMCTWUxHTAbBgkqhkiG9w0BCQEWDm1lQGV4YW1w
|
31
|
+
bGUub3JnMB4XDTEzMDQxMTAwNTc1MloXDTQwMDgyNzAwNTc1MlowgZwxCzAJBgNV
|
32
|
+
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMRQwEgYDVQQHEwtTcHJpbmdmaWVs
|
33
|
+
ZDEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYDVQQLFApB
|
34
|
+
cnJyICYgRGVlMQswCQYDVQQDEwJNZTEdMBsGCSqGSIb3DQEJARYObWVAZXhhbXBs
|
35
|
+
ZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZbhwD884KG1Aj
|
36
|
+
ZENyOQw1TpqvMkkxMSIFQwSMPg81JIDgPifCXXHimiNheo99K4TnLAV4V+6sLsP8
|
37
|
+
c2pQFr57mDSBo1x1JjSLR/LGD/scqQqzSXNXLNffF7FbH28/wL9+lBrMNxEh5LvT
|
38
|
+
Cm+rmnAHdJjGK//BbLE7Vuek3irquUo3OF6HidORr2b86ec4I2gjien3kwgmYc0n
|
39
|
+
7pxjReEeKqpoZ1ytB3PjDlAwJchCTs6i+bmQJ5xqyDn+OHTZutCVCE9DwBLThfGr
|
40
|
+
2j+c7po42EucuS1GMEbHWbEcSCruhQY51iR+hc54TRc/GQbwfVyfOBMJ98s5TASA
|
41
|
+
h0Sfw2DlAgMBAAGjggEFMIIBATAdBgNVHQ4EFgQUbuT5ExXORlqEIJRWCNvHgBig
|
42
|
+
I9swgdEGA1UdIwSByTCBxoAUbuT5ExXORlqEIJRWCNvHgBigI9uhgaKkgZ8wgZwx
|
43
|
+
CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMRQwEgYDVQQHEwtTcHJp
|
44
|
+
bmdmaWVsZDEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYD
|
45
|
+
VQQLFApBcnJyICYgRGVlMQswCQYDVQQDEwJNZTEdMBsGCSqGSIb3DQEJARYObWVA
|
46
|
+
ZXhhbXBsZS5vcmeCCQCbBurHEogbvjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB
|
47
|
+
BQUAA4IBAQABGQp+S8TgiPkMqOoHiosApgs/SttQfRZVlmhoqsJQ554xkui75PIo
|
48
|
+
RMHd42Ft8PO5aQiqXe6sbGJh9e78pSqdhytrlwIf4OSomJ2ghRGKoPESBnMQGxYT
|
49
|
+
vMx/0BvjVj8rNSFmVgTV+foSkJj2tJnr/9ZfYbRPybDRYvDhfnlE7SpfBanKK2r+
|
50
|
+
VpLSlm1c6d5cYA5xKUtQgV9wKbMZLl5B75S3CXz1K6TujHN3K/B3a4Hc7AknWqFd
|
51
|
+
qsWDWKJjyH3XzQkpPT00TqQOaM9gbYqsLXmiuLzYXV1JQhU1vs29mIIFbtQK0jYd
|
52
|
+
YEcPFLoaQoTClLMt9R+6wrJvJ9loh6P8</ds:X509Certificate>
|
53
|
+
</ds:X509Data>
|
54
|
+
</ds:KeyInfo>
|
55
|
+
</ds:Signature>
|
56
|
+
<Status>
|
57
|
+
<StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
|
58
|
+
</Status>
|
59
|
+
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="_a75adf55-01d7-40cc-929f-dbd8372ebdfc" IssueInstant="2003-04-17T00:46:02Z" Version="2.0">
|
60
|
+
<Issuer>https://www.opensaml.org/IDP</Issuer>
|
61
|
+
<Subject>
|
62
|
+
<NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
|
63
|
+
scott@example.org
|
64
|
+
</NameID>
|
65
|
+
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/>
|
66
|
+
</Subject>
|
67
|
+
<Conditions NotBefore="2003-04-17T00:46:02Z" NotOnOrAfter="2003-04-17T00:51:02Z">
|
68
|
+
<AudienceRestriction>
|
69
|
+
<Audience>http://www.opensaml.org/SP</Audience>
|
70
|
+
</AudienceRestriction>
|
71
|
+
</Conditions>
|
72
|
+
<AuthnStatement AuthnInstant="2003-04-17T00:46:00Z">
|
73
|
+
<AuthnContext>
|
74
|
+
<AuthnContextClassRef>
|
75
|
+
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
|
76
|
+
</AuthnContextClassRef>
|
77
|
+
</AuthnContext>
|
78
|
+
</AuthnStatement>
|
79
|
+
</Assertion>
|
80
|
+
</Response>
|
@@ -124,6 +124,14 @@ describe SignedXml::Document do
|
|
124
124
|
incorrect_digest_doc.is_verified?.should be false
|
125
125
|
end
|
126
126
|
|
127
|
+
let(:doc_w_inclusive_c14n) do
|
128
|
+
SignedXml::Document(File.read(File.join(resources_path, 'signed_saml_response_w_inclusive_c14n.xml')))
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'verifies docs using inclusive c14n' do
|
132
|
+
expect(doc_w_inclusive_c14n.is_verified?).to be true
|
133
|
+
end
|
134
|
+
|
127
135
|
let(:signed_doc_template) do
|
128
136
|
SignedXml::Document(File.read(File.join(resources_path, 'saml_response_template.xml')))
|
129
137
|
end
|
@@ -133,4 +141,4 @@ describe SignedXml::Document do
|
|
133
141
|
it "signs template documents" do
|
134
142
|
signed_doc_template.sign(test_private_key, test_certificate).is_verified?.should be true
|
135
143
|
end
|
136
|
-
end
|
144
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,78 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: signed_xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Todd Thomas
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-02-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: nokogiri
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.5'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '1.5'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: options
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: coveralls
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
44
53
|
- !ruby/object:Gem::Version
|
45
54
|
version: '0'
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: rake
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - ">="
|
52
60
|
- !ruby/object:Gem::Version
|
53
61
|
version: '0'
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - ">="
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: rspec
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- -
|
73
|
+
- - ">="
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '0'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - ">="
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '0'
|
78
83
|
description: XML Signature verification
|
@@ -82,8 +87,8 @@ executables: []
|
|
82
87
|
extensions: []
|
83
88
|
extra_rdoc_files: []
|
84
89
|
files:
|
85
|
-
- .gitignore
|
86
|
-
- .travis.yml
|
90
|
+
- ".gitignore"
|
91
|
+
- ".travis.yml"
|
87
92
|
- Gemfile
|
88
93
|
- LICENSE.txt
|
89
94
|
- README.md
|
@@ -112,7 +117,9 @@ files:
|
|
112
117
|
- spec/resources/same_doc_reference.xml
|
113
118
|
- spec/resources/same_doc_reference_template.xml
|
114
119
|
- spec/resources/saml_response_template.xml
|
120
|
+
- spec/resources/saml_response_template_w_inclusive_c14n.xml
|
115
121
|
- spec/resources/signed_saml_response.xml
|
122
|
+
- spec/resources/signed_saml_response_w_inclusive_c14n.xml
|
116
123
|
- spec/resources/test_cert.pem
|
117
124
|
- spec/resources/test_key.pem
|
118
125
|
- spec/resources/two_sig_doc.xml
|
@@ -120,35 +127,28 @@ files:
|
|
120
127
|
- spec/resources/wrong_key_doc.xml
|
121
128
|
- spec/signed_xml_document_spec.rb
|
122
129
|
- spec/spec_helper.rb
|
123
|
-
homepage:
|
130
|
+
homepage: https://github.com/openlogic/signed_xml
|
124
131
|
licenses: []
|
132
|
+
metadata: {}
|
125
133
|
post_install_message:
|
126
134
|
rdoc_options: []
|
127
135
|
require_paths:
|
128
136
|
- lib
|
129
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
138
|
requirements:
|
132
|
-
- -
|
139
|
+
- - ">="
|
133
140
|
- !ruby/object:Gem::Version
|
134
141
|
version: '0'
|
135
|
-
segments:
|
136
|
-
- 0
|
137
|
-
hash: 4066671061943710970
|
138
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
-
none: false
|
140
143
|
requirements:
|
141
|
-
- -
|
144
|
+
- - ">="
|
142
145
|
- !ruby/object:Gem::Version
|
143
146
|
version: '0'
|
144
|
-
segments:
|
145
|
-
- 0
|
146
|
-
hash: 4066671061943710970
|
147
147
|
requirements: []
|
148
148
|
rubyforge_project:
|
149
|
-
rubygems_version:
|
149
|
+
rubygems_version: 2.4.3
|
150
150
|
signing_key:
|
151
|
-
specification_version:
|
151
|
+
specification_version: 4
|
152
152
|
summary: Provides [incomplete] support for verification of XML Signatures <http://www.w3.org/TR/xmldsig-core>.
|
153
153
|
test_files:
|
154
154
|
- spec/resources/another_test_cert.pem
|
@@ -160,7 +160,9 @@ test_files:
|
|
160
160
|
- spec/resources/same_doc_reference.xml
|
161
161
|
- spec/resources/same_doc_reference_template.xml
|
162
162
|
- spec/resources/saml_response_template.xml
|
163
|
+
- spec/resources/saml_response_template_w_inclusive_c14n.xml
|
163
164
|
- spec/resources/signed_saml_response.xml
|
165
|
+
- spec/resources/signed_saml_response_w_inclusive_c14n.xml
|
164
166
|
- spec/resources/test_cert.pem
|
165
167
|
- spec/resources/test_key.pem
|
166
168
|
- spec/resources/two_sig_doc.xml
|