summaryrefslogtreecommitdiff
path: root/tests/test_40_sigver.py
diff options
context:
space:
mode:
authorRoland Hedberg <roland.hedberg@adm.umu.se>2013-01-22 12:23:25 +0100
committerRoland Hedberg <roland.hedberg@adm.umu.se>2013-01-22 12:23:25 +0100
commitcf2d75b70d2af5fa1005fc2476d27592e85c8e5d (patch)
tree117dc34813f332538d76df954aef5e8df482cafe /tests/test_40_sigver.py
parent97ecbd509b610be573752b2707d2df007efc2f24 (diff)
downloadpysaml2-cf2d75b70d2af5fa1005fc2476d27592e85c8e5d.tar.gz
Added a test where the public key is in the metadata
Diffstat (limited to 'tests/test_40_sigver.py')
-rw-r--r--tests/test_40_sigver.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/test_40_sigver.py b/tests/test_40_sigver.py
index 32d9e222..33ac7866 100644
--- a/tests/test_40_sigver.py
+++ b/tests/test_40_sigver.py
@@ -1,6 +1,7 @@
#!/usr/bin/env python
import base64
+from saml2.mdstore import MetadataStore
from saml2.saml import assertion_from_string
from saml2.samlp import response_from_string
@@ -291,3 +292,43 @@ class TestSecurity():
raises(sigver.SignatureError, self.sec._check_signature,
s_response, response2, class_name(response2))
+
+class TestSecurityMetadata():
+ def setup_class(self):
+ xmlexec = get_xmlsec_binary()
+ md = MetadataStore([saml, samlp], None, xmlexec)
+ md.load("local", "metadata_cert.xml")
+
+ self.sec = sigver.SecurityContext(xmlexec, key_file=PRIV_KEY,
+ cert_file=PUB_KEY, debug=1, metadata=md)
+
+ self._assertion = factory( saml.Assertion,
+ version="2.0",
+ id="11111",
+ issue_instant="2009-10-30T13:20:28Z",
+ signature=sigver.pre_signature_part("11111", self.sec.my_cert, 1),
+ attribute_statement=do_attribute_statement({
+ ("","","surName"): ("Foo",""),
+ ("","","givenName") :("Bar",""),
+ })
+ )
+
+ def test_sign_assertion(self):
+ ass = self._assertion
+ print ass
+ sign_ass = self.sec.sign_assertion_using_xmlsec("%s" % ass,
+ nodeid=ass.id)
+ #print sign_ass
+ sass = saml.assertion_from_string(sign_ass)
+ #print sass
+ assert _eq(sass.keyswv(), ['attribute_statement', 'issue_instant',
+ 'version', 'signature', 'id'])
+ assert sass.version == "2.0"
+ assert sass.id == "11111"
+ assert time_util.str_to_time(sass.issue_instant)
+
+ print xmlsec_version(get_xmlsec_binary())
+
+ item = self.sec.check_signature(sass, class_name(sass), sign_ass)
+
+ assert isinstance(item, saml.Assertion)