From e9ba215136a7db0c43b2fd8098032d5b5afc70de Mon Sep 17 00:00:00 2001 From: Roland Hedberg Date: Thu, 19 Nov 2015 13:47:13 +0100 Subject: [PATCH 1/3] Missing file + some PEP-8 --- src/saml2/xmldsig/__init__.py | 837 ++++++++++++++++++---------------- tests/uu.xml | 190 ++++++++ 2 files changed, 638 insertions(+), 389 deletions(-) create mode 100644 tests/uu.xml diff --git a/src/saml2/xmldsig/__init__.py b/src/saml2/xmldsig/__init__.py index 12d46ce..4ace6ca 100644 --- a/src/saml2/xmldsig/__init__.py +++ b/src/saml2/xmldsig/__init__.py @@ -12,7 +12,8 @@ NAMESPACE = 'http://www.w3.org/2000/09/xmldsig#' ENCODING_BASE64 = 'http://www.w3.org/2000/09/xmldsig#base64' # digest and signature algorithms (not implemented = commented out) -DIGEST_MD5 = 'http://www.w3.org/2001/04/xmldsig-more#md5' # test framework only! +DIGEST_MD5 = 'http://www.w3.org/2001/04/xmldsig-more#md5' # test framework +# only! DIGEST_SHA1 = 'http://www.w3.org/2000/09/xmldsig#sha1' DIGEST_SHA224 = 'http://www.w3.org/2001/04/xmldsig-more#sha224' DIGEST_SHA256 = 'http://www.w3.org/2001/04/xmlenc#sha256' @@ -26,29 +27,29 @@ DIGEST_ALLOWED_ALG = (('DIGEST_SHA1', DIGEST_SHA1), ('DIGEST_SHA384', DIGEST_SHA384), ('DIGEST_SHA512', DIGEST_SHA512), ('DIGEST_RIPEMD160', DIGEST_RIPEMD160)) -DIGEST_AVAIL_ALG = DIGEST_ALLOWED_ALG + (('DIGEST_MD5', DIGEST_MD5), ) +DIGEST_AVAIL_ALG = DIGEST_ALLOWED_ALG + (('DIGEST_MD5', DIGEST_MD5),) -#SIG_DSA_SHA1 = 'http,//www.w3.org/2000/09/xmldsig#dsa-sha1' -#SIG_DSA_SHA256 = 'http://www.w3.org/2009/xmldsig11#dsa-sha256' -#SIG_ECDSA_SHA1 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha1' -#SIG_ECDSA_SHA224 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha224' -#SIG_ECDSA_SHA256 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha256' -#SIG_ECDSA_SHA384 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha384' -#SIG_ECDSA_SHA512 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha512' -SIG_RSA_MD5 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-md5' # test framework +SIG_DSA_SHA1 = 'http,//www.w3.org/2000/09/xmldsig#dsa-sha1' +SIG_DSA_SHA256 = 'http://www.w3.org/2009/xmldsig11#dsa-sha256' +SIG_ECDSA_SHA1 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha1' +SIG_ECDSA_SHA224 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha224' +SIG_ECDSA_SHA256 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha256' +SIG_ECDSA_SHA384 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha384' +SIG_ECDSA_SHA512 = 'http://www.w3.org/2001/04/xmldsig-more#ECDSA_sha512' +SIG_RSA_MD5 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-md5' # test framework SIG_RSA_SHA1 = 'http://www.w3.org/2000/09/xmldsig#rsa-sha1' SIG_RSA_SHA224 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha224' SIG_RSA_SHA256 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256' SIG_RSA_SHA384 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384' SIG_RSA_SHA512 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512' -#SIG_RSA_RIPEMD160 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160' +SIG_RSA_RIPEMD160 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160' sig_default = SIG_RSA_SHA1 SIG_ALLOWED_ALG = (('SIG_RSA_SHA1', SIG_RSA_SHA1), ('SIG_RSA_SHA224', SIG_RSA_SHA224), ('SIG_RSA_SHA256', SIG_RSA_SHA256), ('SIG_RSA_SHA384', SIG_RSA_SHA384), ('SIG_RSA_SHA512', SIG_RSA_SHA512)) -SIG_AVAIL_ALG = SIG_ALLOWED_ALG + (('SIG_RSA_MD5', SIG_RSA_MD5), ) +SIG_AVAIL_ALG = SIG_ALLOWED_ALG + (('SIG_RSA_MD5', SIG_RSA_MD5),) MAC_SHA1 = 'http://www.w3.org/2000/09/xmldsig#hmac-sha1' @@ -61,8 +62,6 @@ TRANSFORM_XPATH = 'http://www.w3.org/TR/1999/REC-xpath-19991116' TRANSFORM_ENVELOPED = 'http://www.w3.org/2000/09/xmldsig#enveloped-signature' - - class CryptoBinary_(SamlBase): """The http://www.w3.org/2000/09/xmldsig#:CryptoBinary element """ @@ -74,6 +73,7 @@ class CryptoBinary_(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def crypto_binary__from_string(xml_string): return saml2.create_class_from_xml_string(CryptoBinary_, xml_string) @@ -91,24 +91,26 @@ class SignatureValueType_(SamlBase): c_attributes['Id'] = ('id', 'ID', False) def __init__(self, - id=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + id=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.id=id + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.id = id + def signature_value_type__from_string(xml_string): return saml2.create_class_from_xml_string(SignatureValueType_, xml_string) class CanonicalizationMethodType_(SamlBase): - """The http://www.w3.org/2000/09/xmldsig#:CanonicalizationMethodType element """ + """The http://www.w3.org/2000/09/xmldsig#:CanonicalizationMethodType + element """ c_tag = 'CanonicalizationMethodType' c_namespace = NAMESPACE @@ -119,17 +121,18 @@ class CanonicalizationMethodType_(SamlBase): c_attributes['Algorithm'] = ('algorithm', 'anyURI', True) def __init__(self, - algorithm=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + algorithm=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.algorithm=algorithm + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.algorithm = algorithm + def canonicalization_method_type__from_string(xml_string): return saml2.create_class_from_xml_string(CanonicalizationMethodType_, @@ -137,7 +140,6 @@ def canonicalization_method_type__from_string(xml_string): class TransformType_XPath(SamlBase): - c_tag = 'XPath' c_namespace = NAMESPACE c_value_type = {'base': 'string'} @@ -146,6 +148,7 @@ class TransformType_XPath(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def transform_type__x_path_from_string(xml_string): return saml2.create_class_from_xml_string(TransformType_XPath, xml_string) @@ -159,26 +162,27 @@ class TransformType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}XPath'] = ('x_path', - [TransformType_XPath]) - c_cardinality['x_path'] = {"min":0} + c_children['{http://www.w3.org/2000/09/xmldsig#}XPath'] = ( + 'x_path', [TransformType_XPath]) + c_cardinality['x_path'] = {"min": 0} c_attributes['Algorithm'] = ('algorithm', 'anyURI', True) c_child_order.extend(['x_path']) def __init__(self, - x_path=None, - algorithm=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + x_path=None, + algorithm=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.x_path=x_path or [] - self.algorithm=algorithm + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.x_path = x_path or [] + self.algorithm = algorithm + def transform_type__from_string(xml_string): return saml2.create_class_from_xml_string(TransformType_, xml_string) @@ -196,17 +200,18 @@ class DigestMethodType_(SamlBase): c_attributes['Algorithm'] = ('algorithm', 'anyURI', True) def __init__(self, - algorithm=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + algorithm=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.algorithm=algorithm + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.algorithm = algorithm + def digest_method_type__from_string(xml_string): return saml2.create_class_from_xml_string(DigestMethodType_, xml_string) @@ -223,6 +228,7 @@ class DigestValueType_(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def digest_value_type__from_string(xml_string): return saml2.create_class_from_xml_string(DigestValueType_, xml_string) @@ -238,6 +244,7 @@ class KeyName(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def key_name_from_string(xml_string): return saml2.create_class_from_xml_string(KeyName, xml_string) @@ -253,12 +260,12 @@ class MgmtData(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def mgmt_data_from_string(xml_string): return saml2.create_class_from_xml_string(MgmtData, xml_string) class X509IssuerName(SamlBase): - c_tag = 'X509IssuerName' c_namespace = NAMESPACE c_value_type = {'base': 'string'} @@ -267,12 +274,12 @@ class X509IssuerName(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def x509_issuer_name_from_string(xml_string): return saml2.create_class_from_xml_string(X509IssuerName, xml_string) class X509SerialNumber(SamlBase): - c_tag = 'X509SerialNumber' c_namespace = NAMESPACE c_value_type = {'base': 'integer'} @@ -281,6 +288,7 @@ class X509SerialNumber(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def x509_serial_number_from_string(xml_string): return saml2.create_class_from_xml_string(X509SerialNumber, xml_string) @@ -294,31 +302,33 @@ class X509IssuerSerialType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}X509IssuerName'] = ('x509_issuer_name', X509IssuerName) - c_children['{http://www.w3.org/2000/09/xmldsig#}X509SerialNumber'] = ('x509_serial_number', X509SerialNumber) + c_children['{http://www.w3.org/2000/09/xmldsig#}X509IssuerName'] = ( + 'x509_issuer_name', X509IssuerName) + c_children['{http://www.w3.org/2000/09/xmldsig#}X509SerialNumber'] = ( + 'x509_serial_number', X509SerialNumber) c_child_order.extend(['x509_issuer_name', 'x509_serial_number']) def __init__(self, - x509_issuer_name=None, - x509_serial_number=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + x509_issuer_name=None, + x509_serial_number=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.x509_issuer_name=x509_issuer_name - self.x509_serial_number=x509_serial_number + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.x509_issuer_name = x509_issuer_name + self.x509_serial_number = x509_serial_number + def x509_issuer_serial_type__from_string(xml_string): return saml2.create_class_from_xml_string(X509IssuerSerialType_, xml_string) class PGPKeyID(SamlBase): - c_tag = 'PGPKeyID' c_namespace = NAMESPACE c_value_type = {'base': 'base64Binary'} @@ -327,12 +337,12 @@ class PGPKeyID(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def pgp_key_id_from_string(xml_string): return saml2.create_class_from_xml_string(PGPKeyID, xml_string) class PGPKeyPacket(SamlBase): - c_tag = 'PGPKeyPacket' c_namespace = NAMESPACE c_value_type = {'base': 'base64Binary'} @@ -341,6 +351,7 @@ class PGPKeyPacket(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def pgp_key_packet_from_string(xml_string): return saml2.create_class_from_xml_string(PGPKeyPacket, xml_string) @@ -354,32 +365,34 @@ class PGPDataType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}PGPKeyID'] = ('pgp_key_id', PGPKeyID) - c_children['{http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket'] = ('pgp_key_packet', PGPKeyPacket) - c_cardinality['pgp_key_packet'] = {"min":0, "max":1} + c_children['{http://www.w3.org/2000/09/xmldsig#}PGPKeyID'] = ( + 'pgp_key_id', PGPKeyID) + c_children['{http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket'] = ( + 'pgp_key_packet', PGPKeyPacket) + c_cardinality['pgp_key_packet'] = {"min": 0, "max": 1} c_child_order.extend(['pgp_key_id', 'pgp_key_packet']) def __init__(self, - pgp_key_id=None, - pgp_key_packet=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + pgp_key_id=None, + pgp_key_packet=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.pgp_key_id=pgp_key_id - self.pgp_key_packet=pgp_key_packet + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.pgp_key_id = pgp_key_id + self.pgp_key_packet = pgp_key_packet + def pgp_data_type__from_string(xml_string): return saml2.create_class_from_xml_string(PGPDataType_, xml_string) class SPKISexp(SamlBase): - c_tag = 'SPKISexp' c_namespace = NAMESPACE c_value_type = {'base': 'base64Binary'} @@ -388,6 +401,7 @@ class SPKISexp(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def spki_sexp_from_string(xml_string): return saml2.create_class_from_xml_string(SPKISexp, xml_string) @@ -403,21 +417,22 @@ class SPKIDataType_(SamlBase): c_cardinality = SamlBase.c_cardinality.copy() c_children['{http://www.w3.org/2000/09/xmldsig#}SPKISexp'] = ('spki_sexp', [SPKISexp]) - c_cardinality['spki_sexp'] = {"min":1} + c_cardinality['spki_sexp'] = {"min": 1} c_child_order.extend(['spki_sexp']) def __init__(self, - spki_sexp=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + spki_sexp=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.spki_sexp=spki_sexp or [] + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.spki_sexp = spki_sexp or [] + def spki_data_type__from_string(xml_string): return saml2.create_class_from_xml_string(SPKIDataType_, xml_string) @@ -437,21 +452,22 @@ class ObjectType_(SamlBase): c_attributes['Encoding'] = ('encoding', 'anyURI', False) def __init__(self, - id=None, - mime_type=None, - encoding=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + id=None, + mime_type=None, + encoding=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.id=id - self.mime_type=mime_type - self.encoding=encoding + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.id = id + self.mime_type = mime_type + self.encoding = encoding + def object_type__from_string(xml_string): return saml2.create_class_from_xml_string(ObjectType_, xml_string) @@ -470,22 +486,24 @@ class SignaturePropertyType_(SamlBase): c_attributes['Id'] = ('id', 'ID', False) def __init__(self, - target=None, - id=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + target=None, + id=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.target=target - self.id=id + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.target = target + self.id = id + def signature_property_type__from_string(xml_string): - return saml2.create_class_from_xml_string(SignaturePropertyType_, xml_string) + return saml2.create_class_from_xml_string(SignaturePropertyType_, + xml_string) class HMACOutputLengthType_(SamlBase): @@ -499,12 +517,12 @@ class HMACOutputLengthType_(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def hmac_output_length_type__from_string(xml_string): return saml2.create_class_from_xml_string(HMACOutputLengthType_, xml_string) class P(CryptoBinary_): - c_tag = 'P' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -512,12 +530,12 @@ class P(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def p_from_string(xml_string): return saml2.create_class_from_xml_string(P, xml_string) class Q(CryptoBinary_): - c_tag = 'Q' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -525,12 +543,12 @@ class Q(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def q_from_string(xml_string): return saml2.create_class_from_xml_string(Q, xml_string) class G(CryptoBinary_): - c_tag = 'G' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -538,12 +556,12 @@ class G(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def g_from_string(xml_string): return saml2.create_class_from_xml_string(G, xml_string) class Y(CryptoBinary_): - c_tag = 'Y' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -551,12 +569,12 @@ class Y(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def y_from_string(xml_string): return saml2.create_class_from_xml_string(Y, xml_string) class J(CryptoBinary_): - c_tag = 'J' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -564,12 +582,12 @@ class J(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def j_from_string(xml_string): return saml2.create_class_from_xml_string(J, xml_string) class Seed(CryptoBinary_): - c_tag = 'Seed' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -577,12 +595,12 @@ class Seed(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def seed_from_string(xml_string): return saml2.create_class_from_xml_string(Seed, xml_string) class PgenCounter(CryptoBinary_): - c_tag = 'PgenCounter' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -590,6 +608,7 @@ class PgenCounter(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def pgen_counter_from_string(xml_string): return saml2.create_class_from_xml_string(PgenCounter, xml_string) @@ -604,52 +623,52 @@ class DSAKeyValueType_(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() c_children['{http://www.w3.org/2000/09/xmldsig#}P'] = ('p', P) - c_cardinality['p'] = {"min":0, "max":1} + c_cardinality['p'] = {"min": 0, "max": 1} c_children['{http://www.w3.org/2000/09/xmldsig#}Q'] = ('q', Q) - c_cardinality['q'] = {"min":0, "max":1} + c_cardinality['q'] = {"min": 0, "max": 1} c_children['{http://www.w3.org/2000/09/xmldsig#}G'] = ('g', G) - c_cardinality['g'] = {"min":0, "max":1} + c_cardinality['g'] = {"min": 0, "max": 1} c_children['{http://www.w3.org/2000/09/xmldsig#}Y'] = ('y', Y) c_children['{http://www.w3.org/2000/09/xmldsig#}J'] = ('j', J) - c_cardinality['j'] = {"min":0, "max":1} + c_cardinality['j'] = {"min": 0, "max": 1} c_children['{http://www.w3.org/2000/09/xmldsig#}Seed'] = ('seed', Seed) - c_cardinality['seed'] = {"min":0, "max":1} - c_children['{http://www.w3.org/2000/09/xmldsig#}PgenCounter'] = ('pgen_counter', - PgenCounter) - c_cardinality['pgen_counter'] = {"min":0, "max":1} + c_cardinality['seed'] = {"min": 0, "max": 1} + c_children['{http://www.w3.org/2000/09/xmldsig#}PgenCounter'] = ( + 'pgen_counter', PgenCounter) + c_cardinality['pgen_counter'] = {"min": 0, "max": 1} c_child_order.extend(['p', 'q', 'g', 'y', 'j', 'seed', 'pgen_counter']) def __init__(self, - p=None, - q=None, - g=None, - y=None, - j=None, - seed=None, - pgen_counter=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + p=None, + q=None, + g=None, + y=None, + j=None, + seed=None, + pgen_counter=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.p=p - self.q=q - self.g=g - self.y=y - self.j=j - self.seed=seed - self.pgen_counter=pgen_counter + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.p = p + self.q = q + self.g = g + self.y = y + self.j = j + self.seed = seed + self.pgen_counter = pgen_counter + def dsa_key_value_type__from_string(xml_string): return saml2.create_class_from_xml_string(DSAKeyValueType_, xml_string) class Modulus(CryptoBinary_): - c_tag = 'Modulus' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -657,12 +676,12 @@ class Modulus(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def modulus_from_string(xml_string): return saml2.create_class_from_xml_string(Modulus, xml_string) class Exponent(CryptoBinary_): - c_tag = 'Exponent' c_namespace = NAMESPACE c_children = CryptoBinary_.c_children.copy() @@ -670,6 +689,7 @@ class Exponent(CryptoBinary_): c_child_order = CryptoBinary_.c_child_order[:] c_cardinality = CryptoBinary_.c_cardinality.copy() + def exponent_from_string(xml_string): return saml2.create_class_from_xml_string(Exponent, xml_string) @@ -690,19 +710,20 @@ class RSAKeyValueType_(SamlBase): c_child_order.extend(['modulus', 'exponent']) def __init__(self, - modulus=None, - exponent=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + modulus=None, + exponent=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.modulus=modulus - self.exponent=exponent + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.modulus = modulus + self.exponent = exponent + def rsa_key_value_type__from_string(xml_string): return saml2.create_class_from_xml_string(RSAKeyValueType_, xml_string) @@ -718,6 +739,7 @@ class SignatureValue(SignatureValueType_): c_child_order = SignatureValueType_.c_child_order[:] c_cardinality = SignatureValueType_.c_cardinality.copy() + def signature_value_from_string(xml_string): return saml2.create_class_from_xml_string(SignatureValue, xml_string) @@ -732,13 +754,13 @@ class CanonicalizationMethod(CanonicalizationMethodType_): c_child_order = CanonicalizationMethodType_.c_child_order[:] c_cardinality = CanonicalizationMethodType_.c_cardinality.copy() + def canonicalization_method_from_string(xml_string): return saml2.create_class_from_xml_string(CanonicalizationMethod, xml_string) class HMACOutputLength(HMACOutputLengthType_): - c_tag = 'HMACOutputLength' c_namespace = NAMESPACE c_children = HMACOutputLengthType_.c_children.copy() @@ -746,6 +768,7 @@ class HMACOutputLength(HMACOutputLengthType_): c_child_order = HMACOutputLengthType_.c_child_order[:] c_cardinality = HMACOutputLengthType_.c_cardinality.copy() + def hmac_output_length_from_string(xml_string): return saml2.create_class_from_xml_string(HMACOutputLength, xml_string) @@ -759,25 +782,27 @@ class SignatureMethodType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}HMACOutputLength'] = ('hmac_output_length', HMACOutputLength) - c_cardinality['hmac_output_length'] = {"min":0, "max":1} + c_children['{http://www.w3.org/2000/09/xmldsig#}HMACOutputLength'] = ( + 'hmac_output_length', HMACOutputLength) + c_cardinality['hmac_output_length'] = {"min": 0, "max": 1} c_attributes['Algorithm'] = ('algorithm', 'anyURI', True) c_child_order.extend(['hmac_output_length']) def __init__(self, - hmac_output_length=None, - algorithm=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + hmac_output_length=None, + algorithm=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.hmac_output_length=hmac_output_length - self.algorithm=algorithm + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.hmac_output_length = hmac_output_length + self.algorithm = algorithm + def signature_method_type__from_string(xml_string): return saml2.create_class_from_xml_string(SignatureMethodType_, xml_string) @@ -793,6 +818,7 @@ class Transform(TransformType_): c_child_order = TransformType_.c_child_order[:] c_cardinality = TransformType_.c_cardinality.copy() + def transform_from_string(xml_string): return saml2.create_class_from_xml_string(Transform, xml_string) @@ -807,6 +833,7 @@ class DigestMethod(DigestMethodType_): c_child_order = DigestMethodType_.c_child_order[:] c_cardinality = DigestMethodType_.c_cardinality.copy() + def digest_method_from_string(xml_string): return saml2.create_class_from_xml_string(DigestMethod, xml_string) @@ -821,12 +848,12 @@ class DigestValue(DigestValueType_): c_child_order = DigestValueType_.c_child_order[:] c_cardinality = DigestValueType_.c_cardinality.copy() + def digest_value_from_string(xml_string): return saml2.create_class_from_xml_string(DigestValue, xml_string) class X509IssuerSerial(X509IssuerSerialType_): - c_tag = 'X509IssuerSerial' c_namespace = NAMESPACE c_children = X509IssuerSerialType_.c_children.copy() @@ -834,12 +861,12 @@ class X509IssuerSerial(X509IssuerSerialType_): c_child_order = X509IssuerSerialType_.c_child_order[:] c_cardinality = X509IssuerSerialType_.c_cardinality.copy() + def x509_issuer_serial_from_string(xml_string): return saml2.create_class_from_xml_string(X509IssuerSerial, xml_string) class X509SKI(SamlBase): - c_tag = 'X509SKI' c_namespace = NAMESPACE c_value_type = {'base': 'base64Binary'} @@ -848,12 +875,12 @@ class X509SKI(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def x509_ski_from_string(xml_string): return saml2.create_class_from_xml_string(X509SKI, xml_string) class X509SubjectName(SamlBase): - c_tag = 'X509SubjectName' c_namespace = NAMESPACE c_value_type = {'base': 'string'} @@ -862,12 +889,12 @@ class X509SubjectName(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def x509_subject_name_from_string(xml_string): return saml2.create_class_from_xml_string(X509SubjectName, xml_string) class X509Certificate(SamlBase): - c_tag = 'X509Certificate' c_namespace = NAMESPACE c_value_type = {'base': 'base64Binary'} @@ -876,12 +903,12 @@ class X509Certificate(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def x509_certificate_from_string(xml_string): return saml2.create_class_from_xml_string(X509Certificate, xml_string) class X509CRL(SamlBase): - c_tag = 'X509CRL' c_namespace = NAMESPACE c_value_type = {'base': 'base64Binary'} @@ -890,6 +917,7 @@ class X509CRL(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def x509_crl_from_string(xml_string): return saml2.create_class_from_xml_string(X509CRL, xml_string) @@ -903,44 +931,48 @@ class X509DataType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial'] = ('x509_issuer_serial', - X509IssuerSerial) - c_cardinality['x509_issuer_serial'] = {"min":0, "max":1} + c_children['{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial'] = ( + 'x509_issuer_serial', + X509IssuerSerial) + c_cardinality['x509_issuer_serial'] = {"min": 0, "max": 1} c_children['{http://www.w3.org/2000/09/xmldsig#}X509SKI'] = ('x509_ski', X509SKI) - c_cardinality['x509_ski'] = {"min":0, "max":1} - c_children['{http://www.w3.org/2000/09/xmldsig#}X509SubjectName'] = ('x509_subject_name', - X509SubjectName) - c_cardinality['x509_subject_name'] = {"min":0, "max":1} - c_children['{http://www.w3.org/2000/09/xmldsig#}X509Certificate'] = ('x509_certificate', - X509Certificate) - c_cardinality['x509_certificate'] = {"min":0, "max":1} + c_cardinality['x509_ski'] = {"min": 0, "max": 1} + c_children['{http://www.w3.org/2000/09/xmldsig#}X509SubjectName'] = ( + 'x509_subject_name', + X509SubjectName) + c_cardinality['x509_subject_name'] = {"min": 0, "max": 1} + c_children['{http://www.w3.org/2000/09/xmldsig#}X509Certificate'] = ( + 'x509_certificate', + X509Certificate) + c_cardinality['x509_certificate'] = {"min": 0, "max": 1} c_children['{http://www.w3.org/2000/09/xmldsig#}X509CRL'] = ('x509_crl', X509CRL) - c_cardinality['x509_crl'] = {"min":0, "max":1} + c_cardinality['x509_crl'] = {"min": 0, "max": 1} c_child_order.extend(['x509_issuer_serial', 'x509_ski', 'x509_subject_name', 'x509_certificate', 'x509_crl']) def __init__(self, - x509_issuer_serial=None, - x509_ski=None, - x509_subject_name=None, - x509_certificate=None, - x509_crl=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + x509_issuer_serial=None, + x509_ski=None, + x509_subject_name=None, + x509_certificate=None, + x509_crl=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.x509_issuer_serial=x509_issuer_serial - self.x509_ski=x509_ski - self.x509_subject_name=x509_subject_name - self.x509_certificate=x509_certificate - self.x509_crl=x509_crl + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.x509_issuer_serial = x509_issuer_serial + self.x509_ski = x509_ski + self.x509_subject_name = x509_subject_name + self.x509_certificate = x509_certificate + self.x509_crl = x509_crl + def x509_data_type__from_string(xml_string): return saml2.create_class_from_xml_string(X509DataType_, xml_string) @@ -956,6 +988,7 @@ class PGPData(PGPDataType_): c_child_order = PGPDataType_.c_child_order[:] c_cardinality = PGPDataType_.c_cardinality.copy() + def pgp_data_from_string(xml_string): return saml2.create_class_from_xml_string(PGPData, xml_string) @@ -970,6 +1003,7 @@ class SPKIData(SPKIDataType_): c_child_order = SPKIDataType_.c_child_order[:] c_cardinality = SPKIDataType_.c_cardinality.copy() + def spki_data_from_string(xml_string): return saml2.create_class_from_xml_string(SPKIData, xml_string) @@ -984,6 +1018,7 @@ class Object(ObjectType_): c_child_order = ObjectType_.c_child_order[:] c_cardinality = ObjectType_.c_cardinality.copy() + def object_from_string(xml_string): return saml2.create_class_from_xml_string(Object, xml_string) @@ -998,6 +1033,7 @@ class SignatureProperty(SignaturePropertyType_): c_child_order = SignaturePropertyType_.c_child_order[:] c_cardinality = SignaturePropertyType_.c_cardinality.copy() + def signature_property_from_string(xml_string): return saml2.create_class_from_xml_string(SignatureProperty, xml_string) @@ -1012,6 +1048,7 @@ class DSAKeyValue(DSAKeyValueType_): c_child_order = DSAKeyValueType_.c_child_order[:] c_cardinality = DSAKeyValueType_.c_cardinality.copy() + def dsa_key_value_from_string(xml_string): return saml2.create_class_from_xml_string(DSAKeyValue, xml_string) @@ -1026,6 +1063,7 @@ class RSAKeyValue(RSAKeyValueType_): c_child_order = RSAKeyValueType_.c_child_order[:] c_cardinality = RSAKeyValueType_.c_cardinality.copy() + def rsa_key_value_from_string(xml_string): return saml2.create_class_from_xml_string(RSAKeyValue, xml_string) @@ -1040,6 +1078,7 @@ class SignatureMethod(SignatureMethodType_): c_child_order = SignatureMethodType_.c_child_order[:] c_cardinality = SignatureMethodType_.c_cardinality.copy() + def signature_method_from_string(xml_string): return saml2.create_class_from_xml_string(SignatureMethod, xml_string) @@ -1055,21 +1094,22 @@ class TransformsType_(SamlBase): c_cardinality = SamlBase.c_cardinality.copy() c_children['{http://www.w3.org/2000/09/xmldsig#}Transform'] = ('transform', [Transform]) - c_cardinality['transform'] = {"min":1} + c_cardinality['transform'] = {"min": 1} c_child_order.extend(['transform']) def __init__(self, - transform=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + transform=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.transform=transform or [] + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.transform = transform or [] + def transforms_type__from_string(xml_string): return saml2.create_class_from_xml_string(TransformsType_, xml_string) @@ -1084,28 +1124,29 @@ class KeyValueType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue'] = ('dsa_key_value', - DSAKeyValue) - c_cardinality['dsa_key_value'] = {"min":0, "max":1} - c_children['{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue'] = ('rsa_key_value', - RSAKeyValue) - c_cardinality['rsa_key_value'] = {"min":0, "max":1} + c_children['{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue'] = ( + 'dsa_key_value', DSAKeyValue) + c_cardinality['dsa_key_value'] = {"min": 0, "max": 1} + c_children['{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue'] = ( + 'rsa_key_value', RSAKeyValue) + c_cardinality['rsa_key_value'] = {"min": 0, "max": 1} c_child_order.extend(['dsa_key_value', 'rsa_key_value']) def __init__(self, - dsa_key_value=None, - rsa_key_value=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + dsa_key_value=None, + rsa_key_value=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.dsa_key_value=dsa_key_value - self.rsa_key_value=rsa_key_value + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.dsa_key_value = dsa_key_value + self.rsa_key_value = rsa_key_value + def key_value_type__from_string(xml_string): return saml2.create_class_from_xml_string(KeyValueType_, xml_string) @@ -1121,12 +1162,14 @@ class X509Data(X509DataType_): c_child_order = X509DataType_.c_child_order[:] c_cardinality = X509DataType_.c_cardinality.copy() + def x509_data_from_string(xml_string): return saml2.create_class_from_xml_string(X509Data, xml_string) class SignaturePropertiesType_(SamlBase): - """The http://www.w3.org/2000/09/xmldsig#:SignaturePropertiesType element """ + """The http://www.w3.org/2000/09/xmldsig#:SignaturePropertiesType element + """ c_tag = 'SignaturePropertiesType' c_namespace = NAMESPACE @@ -1134,28 +1177,31 @@ class SignaturePropertiesType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}SignatureProperty'] = ('signature_property', [SignatureProperty]) - c_cardinality['signature_property'] = {"min":1} + c_children['{http://www.w3.org/2000/09/xmldsig#}SignatureProperty'] = ( + 'signature_property', [SignatureProperty]) + c_cardinality['signature_property'] = {"min": 1} c_attributes['Id'] = ('id', 'ID', False) c_child_order.extend(['signature_property']) def __init__(self, - signature_property=None, - id=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + signature_property=None, + id=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.signature_property=signature_property or [] - self.id=id + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.signature_property = signature_property or [] + self.id = id + def signature_properties_type__from_string(xml_string): - return saml2.create_class_from_xml_string(SignaturePropertiesType_, xml_string) + return saml2.create_class_from_xml_string(SignaturePropertiesType_, + xml_string) class Transforms(TransformsType_): @@ -1168,6 +1214,7 @@ class Transforms(TransformsType_): c_child_order = TransformsType_.c_child_order[:] c_cardinality = TransformsType_.c_cardinality.copy() + def transforms_from_string(xml_string): return saml2.create_class_from_xml_string(Transforms, xml_string) @@ -1182,6 +1229,7 @@ class KeyValue(KeyValueType_): c_child_order = KeyValueType_.c_child_order[:] c_cardinality = KeyValueType_.c_cardinality.copy() + def key_value_from_string(xml_string): return saml2.create_class_from_xml_string(KeyValue, xml_string) @@ -1195,29 +1243,29 @@ class RetrievalMethodType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}Transforms'] = ('transforms', - Transforms) - c_cardinality['transforms'] = {"min":0, "max":1} + c_children['{http://www.w3.org/2000/09/xmldsig#}Transforms'] = ( + 'transforms', Transforms) + c_cardinality['transforms'] = {"min": 0, "max": 1} c_attributes['URI'] = ('uri', 'anyURI', False) c_attributes['Type'] = ('type', 'anyURI', False) c_child_order.extend(['transforms']) def __init__(self, - transforms=None, - uri=None, - type=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + transforms=None, + uri=None, + type=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.transforms=transforms - self.uri=uri - self.type=type + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.transforms = transforms + self.uri = uri + self.type = type def retrieval_method_type__from_string(xml_string): @@ -1248,40 +1296,40 @@ class ReferenceType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}Transforms'] = ('transforms', - Transforms) - c_cardinality['transforms'] = {"min":0, "max":1} - c_children['{http://www.w3.org/2000/09/xmldsig#}DigestMethod'] = ('digest_method', - DigestMethod) - c_children['{http://www.w3.org/2000/09/xmldsig#}DigestValue'] = ('digest_value', - DigestValue) + c_children['{http://www.w3.org/2000/09/xmldsig#}Transforms'] = ( + 'transforms', Transforms) + c_cardinality['transforms'] = {"min": 0, "max": 1} + c_children['{http://www.w3.org/2000/09/xmldsig#}DigestMethod'] = ( + 'digest_method', DigestMethod) + c_children['{http://www.w3.org/2000/09/xmldsig#}DigestValue'] = ( + 'digest_value', DigestValue) c_attributes['Id'] = ('id', 'ID', False) c_attributes['URI'] = ('uri', 'anyURI', False) c_attributes['Type'] = ('type', 'anyURI', False) c_child_order.extend(['transforms', 'digest_method', 'digest_value']) def __init__(self, - transforms=None, - digest_method=None, - digest_value=None, - id=None, - uri=None, - type=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + transforms=None, + digest_method=None, + digest_value=None, + id=None, + uri=None, + type=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.transforms=transforms - self.digest_method=digest_method - self.digest_value=digest_value - self.id=id - self.uri=uri - self.type=type + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.transforms = transforms + self.digest_method = digest_method + self.digest_value = digest_value + self.id = id + self.uri = uri + self.type = type def reference_type__from_string(xml_string): @@ -1317,7 +1365,8 @@ class Reference(ReferenceType_): def reference_from_string(xml_string): return saml2.create_class_from_xml_string(Reference, xml_string) -#import xmlenc as enc + +# import xmlenc as enc class KeyInfoType_(SamlBase): @@ -1331,28 +1380,28 @@ class KeyInfoType_(SamlBase): c_cardinality = SamlBase.c_cardinality.copy() c_children['{http://www.w3.org/2000/09/xmldsig#}KeyName'] = ('key_name', [KeyName]) - c_cardinality['key_name'] = {"min":0} + c_cardinality['key_name'] = {"min": 0} c_children['{http://www.w3.org/2000/09/xmldsig#}KeyValue'] = ('key_value', [KeyValue]) - c_cardinality['key_value'] = {"min":0} + c_cardinality['key_value'] = {"min": 0} c_children['{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod'] = ( 'retrieval_method', [RetrievalMethod]) - c_cardinality['retrieval_method'] = {"min":0} + c_cardinality['retrieval_method'] = {"min": 0} c_children['{http://www.w3.org/2000/09/xmldsig#}X509Data'] = ('x509_data', [X509Data]) - c_cardinality['x509_data'] = {"min":0} + c_cardinality['x509_data'] = {"min": 0} c_children['{http://www.w3.org/2000/09/xmldsig#}PGPData'] = ('pgp_data', [PGPData]) - c_cardinality['pgp_data'] = {"min":0} + c_cardinality['pgp_data'] = {"min": 0} c_children['{http://www.w3.org/2000/09/xmldsig#}SPKIData'] = ('spki_data', [SPKIData]) - c_cardinality['spki_data'] = {"min":0} + c_cardinality['spki_data'] = {"min": 0} c_children['{http://www.w3.org/2000/09/xmldsig#}MgmtData'] = ('mgmt_data', [MgmtData]) - c_cardinality['mgmt_data'] = {"min":0} + c_cardinality['mgmt_data'] = {"min": 0} c_children['{http://www.w3.org/2000/09/xmlenc#}EncryptedKey'] = ( 'encrypted_key', None) - c_cardinality['key_info'] = {"min":0, "max":1} + c_cardinality['key_info'] = {"min": 0, "max": 1} c_attributes['Id'] = ('id', 'ID', False) c_child_order.extend(['key_name', 'key_value', 'retrieval_method', @@ -1387,6 +1436,7 @@ class KeyInfoType_(SamlBase): self.encrypted_key = encrypted_key self.id = id + def key_info_type__from_string(xml_string): return saml2.create_class_from_xml_string(KeyInfoType_, xml_string) @@ -1402,24 +1452,25 @@ class ManifestType_(SamlBase): c_cardinality = SamlBase.c_cardinality.copy() c_children['{http://www.w3.org/2000/09/xmldsig#}Reference'] = ('reference', [Reference]) - c_cardinality['reference'] = {"min":1} + c_cardinality['reference'] = {"min": 1} c_attributes['Id'] = ('id', 'ID', False) c_child_order.extend(['reference']) def __init__(self, - reference=None, - id=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + reference=None, + id=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.reference=reference or [] - self.id=id + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.reference = reference or [] + self.id = id + def manifest_type__from_string(xml_string): return saml2.create_class_from_xml_string(ManifestType_, xml_string) @@ -1434,34 +1485,36 @@ class SignedInfoType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod'] = ('canonicalization_method', CanonicalizationMethod) - c_children['{http://www.w3.org/2000/09/xmldsig#}SignatureMethod'] = ('signature_method', - SignatureMethod) + c_children['{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod'] = ( + 'canonicalization_method', CanonicalizationMethod) + c_children['{http://www.w3.org/2000/09/xmldsig#}SignatureMethod'] = ( + 'signature_method', SignatureMethod) c_children['{http://www.w3.org/2000/09/xmldsig#}Reference'] = ('reference', [Reference]) - c_cardinality['reference'] = {"min":1} + c_cardinality['reference'] = {"min": 1} c_attributes['Id'] = ('id', 'ID', False) c_child_order.extend(['canonicalization_method', 'signature_method', 'reference']) def __init__(self, - canonicalization_method=None, - signature_method=None, - reference=None, - id=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + canonicalization_method=None, + signature_method=None, + reference=None, + id=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.canonicalization_method=canonicalization_method - self.signature_method=signature_method - self.reference=reference or [] - self.id=id + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.canonicalization_method = canonicalization_method + self.signature_method = signature_method + self.reference = reference or [] + self.id = id + def signed_info_type__from_string(xml_string): return saml2.create_class_from_xml_string(SignedInfoType_, xml_string) @@ -1477,6 +1530,7 @@ class KeyInfo(KeyInfoType_): c_child_order = KeyInfoType_.c_child_order[:] c_cardinality = KeyInfoType_.c_cardinality.copy() + def key_info_from_string(xml_string): return saml2.create_class_from_xml_string(KeyInfo, xml_string) @@ -1491,6 +1545,7 @@ class Manifest(ManifestType_): c_child_order = ManifestType_.c_child_order[:] c_cardinality = ManifestType_.c_cardinality.copy() + def manifest_from_string(xml_string): return saml2.create_class_from_xml_string(Manifest, xml_string) @@ -1505,6 +1560,7 @@ class SignedInfo(SignedInfoType_): c_child_order = SignedInfoType_.c_child_order[:] c_cardinality = SignedInfoType_.c_cardinality.copy() + def signed_info_from_string(xml_string): return saml2.create_class_from_xml_string(SignedInfo, xml_string) @@ -1518,39 +1574,41 @@ class SignatureType_(SamlBase): c_attributes = SamlBase.c_attributes.copy() c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() - c_children['{http://www.w3.org/2000/09/xmldsig#}SignedInfo'] = ('signed_info', - SignedInfo) - c_children['{http://www.w3.org/2000/09/xmldsig#}SignatureValue'] = ('signature_value', SignatureValue) + c_children['{http://www.w3.org/2000/09/xmldsig#}SignedInfo'] = ( + 'signed_info', SignedInfo) + c_children['{http://www.w3.org/2000/09/xmldsig#}SignatureValue'] = ( + 'signature_value', SignatureValue) c_children['{http://www.w3.org/2000/09/xmldsig#}KeyInfo'] = ('key_info', KeyInfo) - c_cardinality['key_info'] = {"min":0, "max":1} + c_cardinality['key_info'] = {"min": 0, "max": 1} c_children['{http://www.w3.org/2000/09/xmldsig#}Object'] = ('object', [Object]) - c_cardinality['object'] = {"min":0} + c_cardinality['object'] = {"min": 0} c_attributes['Id'] = ('id', 'ID', False) c_child_order.extend(['signed_info', 'signature_value', 'key_info', 'object']) def __init__(self, - signed_info=None, - signature_value=None, - key_info=None, - object=None, - id=None, - text=None, - extension_elements=None, - extension_attributes=None, - ): + signed_info=None, + signature_value=None, + key_info=None, + object=None, + id=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): SamlBase.__init__(self, - text=text, - extension_elements=extension_elements, - extension_attributes=extension_attributes, - ) - self.signed_info=signed_info - self.signature_value=signature_value - self.key_info=key_info - self.object=object or [] - self.id=id + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.signed_info = signed_info + self.signature_value = signature_value + self.key_info = key_info + self.object = object or [] + self.id = id + def signature_type__from_string(xml_string): return saml2.create_class_from_xml_string(SignatureType_, xml_string) @@ -1566,6 +1624,7 @@ class Signature(SignatureType_): c_child_order = SignatureType_.c_child_order[:] c_cardinality = SignatureType_.c_cardinality.copy() + def signature_from_string(xml_string): return saml2.create_class_from_xml_string(Signature, xml_string) @@ -1579,7 +1638,8 @@ ELEMENT_FROM_STRING = { SignedInfo.c_tag: signed_info_from_string, SignedInfoType_.c_tag: signed_info_type__from_string, CanonicalizationMethod.c_tag: canonicalization_method_from_string, - CanonicalizationMethodType_.c_tag: canonicalization_method_type__from_string, + CanonicalizationMethodType_.c_tag: + canonicalization_method_type__from_string, SignatureMethod.c_tag: signature_method_from_string, SignatureMethodType_.c_tag: signature_method_type__from_string, Reference.c_tag: reference_from_string, @@ -1719,4 +1779,3 @@ ELEMENT_BY_TAG = { def factory(tag, **kwargs): return ELEMENT_BY_TAG[tag](**kwargs) - diff --git a/tests/uu.xml b/tests/uu.xml new file mode 100644 index 0000000..36f7518 --- /dev/null +++ b/tests/uu.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + http://www.swamid.se/category/research-and-education + + + http://refeds.org/category/research-and-scholarship + + + http://www.swamid.se/category/hei-service + + + + + + + + + + + + + + akka-anv.uu.se + + CN=akka-anv.uu.se + + MIIC8TCCAdmgAwIBAgIJAN5oCkisOOXcMA0GCSqGSIb3DQEBBQUAMBkxFzAVBgNV + BAMTDmFra2EtYW52LnV1LnNlMB4XDTEyMTAxMjA5NTY0NloXDTIyMTAxMDA5NTY0 + NlowGTEXMBUGA1UEAxMOYWtrYS1hbnYudXUuc2UwggEiMA0GCSqGSIb3DQEBAQUA + A4IBDwAwggEKAoIBAQC9RBkxotLN9wNFPDlbM+HXCTFLC2rxdOI1McjZJjJ0MwJQ + Qhju2m8CB0lrTb22nHd7ITqtzhVBKXHY0rmCm7j5tlPCDcQqzgHbk2KR7lGEv5JK + oVXF7NdFRTxl393UX2a0+5aWUVsFrWIlHLK5ve+5HBdDUccWtX3XfR2HDcAvMNJB + B2FuueVM6pwkNwsyNjDzJlrvtC3QsuLE4KdSjb2GGDg0xvIEgs+/d85JNk+yLhaa + 90zyQaw0L3OA7F8fX6EesiBg9tGirQcZ6cYHRVKuM1D4sO08iwRA0EA8iXnL34+5 + Caa/71lSR1Kzo1cluQKkzfob+9AzztZ3vdKxwNiLAgMBAAGjPDA6MBkGA1UdEQQS + MBCCDmFra2EtYW52LnV1LnNlMB0GA1UdDgQWBBQFsDy6A2U1Zby9p6ijIsBxv3du + AzANBgkqhkiG9w0BAQUFAAOCAQEAtOsbz5YiPiR9xoQbIRr9BV3+fIxw07MNI2tU + ouCtCW6wuFPvYARgGGCavPn/Hn2V0LWIo2VRpHizK9DbpFRU0ofvr3nJZKq+H45w + WXmJLalTYyYnu6rwW7zmkbS30mMQ7J5aBawRNK5opSgbRp0eQt0ynyTgeJgqmACK + gaUQmP5gD9lXDNdROqMjwANcMdU57NDRGWzASx01r+0LLaUX4NzTPlnOYldRPn0z + JnhHj8Wsg0csCS86vOCTNXVKXHcRIUL5FaLf+8MrSHrs8WR4CN4AHLuprwthtQyV + 2nacKYU2Ke9STDjLkJSCmx/o8ZLfQPFLSCr1SjyYQzm21MOIZw== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 15a8da5387821ce7f38f50725b391789709ae9a0 Mon Sep 17 00:00:00 2001 From: Roland Hedberg Date: Thu, 19 Nov 2015 14:14:34 +0100 Subject: [PATCH 2/3] Adding support for publishing digest and signing support in metadata. --- src/saml2/metadata.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/saml2/metadata.py b/src/saml2/metadata.py index eb33788..cb88fc5 100644 --- a/src/saml2/metadata.py +++ b/src/saml2/metadata.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from saml2.algsupport import algorithm_support_in_metadata from saml2.md import AttributeProfile from saml2.sigver import security_context from saml2.config import Config @@ -728,6 +729,12 @@ def entity_descriptor(confd): item = mdattr.EntityAttributes(attribute=attr) entd.extensions.add_extension_element(item) + if not entd.extensions: + entd.extensions = md.Extensions() + + for item in algorithm_support_in_metadata(confd.xmlsec_binary): + entd.extensions.add_extension_element(item) + serves = confd.serves if not serves: raise SAMLError( From 73849b4f08f7900642bf74975b923e4263916014 Mon Sep 17 00:00:00 2001 From: Roland Hedberg Date: Thu, 19 Nov 2015 14:17:01 +0100 Subject: [PATCH 3/3] In between just so Hans can get his stuff in. --- tests/test_30_mdstore.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_30_mdstore.py b/tests/test_30_mdstore.py index d5da4fe..4a4e9d9 100644 --- a/tests/test_30_mdstore.py +++ b/tests/test_30_mdstore.py @@ -464,7 +464,6 @@ def test_metadata_extension_algsupport(): mds = MetadataStore(list(ONTS.values()), ATTRCONV, None) mds.imp(METADATACONF["12"]) mdf = mds.metadata[full_path("uu.xml")] - _txt = mdf.dumps() assert mds if __name__ == "__main__":