diff options
-rw-r--r-- | src/saml2/authn_context/__init__.py | 48 | ||||
-rw-r--r-- | src/saml2/authn_context/ippword.py | 2668 | ||||
-rw-r--r-- | src/saml2/authn_context/mobiletwofactor.py | 2571 | ||||
-rw-r--r-- | src/saml2/authn_context/ppt.py | 2623 | ||||
-rw-r--r-- | src/saml2/authn_context/pword.py | 2621 | ||||
-rw-r--r-- | src/saml2/authn_context/sslcert.py | 2549 | ||||
-rw-r--r-- | src/saml2/samlp.py | 1 | ||||
-rwxr-xr-x | tools/parse_xsd2.py | 183 |
8 files changed, 13226 insertions, 38 deletions
diff --git a/src/saml2/authn_context/__init__.py b/src/saml2/authn_context/__init__.py new file mode 100644 index 00000000..47d87729 --- /dev/null +++ b/src/saml2/authn_context/__init__.py @@ -0,0 +1,48 @@ +__author__ = 'rolandh' + +INTERNETPROTOCOLPASSWORD = \ + 'urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword' +MOBILETWOFACTORCONTRACT = \ + 'urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract' +PASSWORDPROTECTEDTRANSPORT = \ + 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport' +PASSWORD = 'urn:oasis:names:tc:SAML:2.0:ac:classes:Password' +TLSCLIENT = 'urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient' + + +class Authn(object): + def __init__(self): + self.db = {} + + def add(self, endpoint, spec, target): + """ + Adds a new authentication endpoint. + + :param endpoint: The service endpoint URL + :param spec: What the authentication endpoint offers in the form + of an AuthnContext + :param target: The URL of the authentication service + :return: + """ + + try: + _endpspec = self.db[endpoint] + except KeyError: + self.db[endpoint] = {} + _endpspec = self.db[endpoint] + + if spec.authn_context_class_ref: + _endpspec[spec.authn_context_class_ref.text] = target + elif spec.authn_context_decl: + _endpspec[ + spec.authn_context_decl.c_namespace] = spec.authn_context_decl + + def pick(self, endpoint, authn_context): + """ + Given which endpoint the request came in over and what + authentication context is defined find out where to send the user next. + + :param endpoint: The service endpoint URL + :param authn_context: An AuthnContext instance + :return: An URL + """
\ No newline at end of file diff --git a/src/saml2/authn_context/ippword.py b/src/saml2/authn_context/ippword.py new file mode 100644 index 00000000..47655d8d --- /dev/null +++ b/src/saml2/authn_context/ippword.py @@ -0,0 +1,2668 @@ +#!/usr/bin/env python + +# +# Generated Sun Apr 21 10:04:52 2013 by parse_xsd.py version 0.5. +# + +""" +The Internet Protocol Password class is applicable when a principal is +authenticated through the use of a provided IP address, in addition to a +username/password. +""" + +import saml2 +from saml2 import SamlBase + + +NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword' + + +class PhysicalVerification(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PhysicalVerification element """ + + c_tag = 'PhysicalVerification' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['credentialLevel'] = ('credential_level', 'None', False) + + def __init__(self, + credential_level=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.credential_level = credential_level + + +def physical_verification_from_string(xml_string): + return saml2.create_class_from_xml_string(PhysicalVerification, xml_string) + + +class Generation(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Generation element """ + + c_tag = 'Generation' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['mechanism'] = ('mechanism', 'None', True) + + def __init__(self, + mechanism=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.mechanism = mechanism + + +def generation_from_string(xml_string): + return saml2.create_class_from_xml_string(Generation, xml_string) + + +class NymType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:nymType element """ + + c_tag = 'nymType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['anonymity', 'verinymity', 'pseudonymity']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def nym_type__from_string(xml_string): + return saml2.create_class_from_xml_string(NymType_, xml_string) + + +class GoverningAgreementRefType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:GoverningAgreementRefType element """ + + c_tag = 'GoverningAgreementRefType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['governingAgreementRef'] = ( + 'governing_agreement_ref', 'anyURI', True) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref + + +def governing_agreement_ref_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRefType_, + xml_string) + + +class KeySharingType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:KeySharingType element """ + + c_tag = 'KeySharingType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['sharing'] = ('sharing', 'boolean', True) + + def __init__(self, + sharing=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.sharing = sharing + + +def key_sharing_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharingType_, xml_string) + + +class RestrictedLengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:RestrictedLengthType element """ + + c_tag = 'RestrictedLengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'None', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def restricted_length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedLengthType_, xml_string) + + +class AlphabetType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AlphabetType element """ + + c_tag = 'AlphabetType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['requiredChars'] = ('required_chars', 'string', True) + c_attributes['excludedChars'] = ('excluded_chars', 'string', False) + c_attributes['case'] = ('case', 'string', False) + + def __init__(self, + required_chars=None, + excluded_chars=None, + case=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.required_chars = required_chars + self.excluded_chars = excluded_chars + self.case = case + + +def alphabet_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AlphabetType_, xml_string) + + +class DeviceTypeType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:DeviceTypeType element """ + + c_tag = 'DeviceTypeType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['hardware', 'software']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def device_type_type__from_string(xml_string): + return saml2.create_class_from_xml_string(DeviceTypeType_, xml_string) + + +class BooleanType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:booleanType element """ + + c_tag = 'booleanType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', 'enumeration': ['true', 'false']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def boolean_type__from_string(xml_string): + return saml2.create_class_from_xml_string(BooleanType_, xml_string) + + +class TimeSyncTokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:TimeSyncTokenType element """ + + c_tag = 'TimeSyncTokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['DeviceType'] = ('device_type', DeviceTypeType_, True) + c_attributes['SeedLength'] = ('seed_length', 'integer', True) + c_attributes['DeviceInHand'] = ('device_in_hand', BooleanType_, True) + + def __init__(self, + device_type=None, + seed_length=None, + device_in_hand=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.device_type = device_type + self.seed_length = seed_length + self.device_in_hand = device_in_hand + + +def time_sync_token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncTokenType_, xml_string) + + +class ActivationLimitDurationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimitDurationType element """ + + c_tag = 'ActivationLimitDurationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['duration'] = ('duration', 'duration', True) + + def __init__(self, + duration=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.duration = duration + + +def activation_limit_duration_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDurationType_, + xml_string) + + +class ActivationLimitUsagesType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimitUsagesType element """ + + c_tag = 'ActivationLimitUsagesType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['number'] = ('number', 'integer', True) + + def __init__(self, + number=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.number = number + + +def activation_limit_usages_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsagesType_, + xml_string) + + +class ActivationLimitSessionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimitSessionType element """ + + c_tag = 'ActivationLimitSessionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def activation_limit_session_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSessionType_, + xml_string) + + +class LengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:LengthType element """ + + c_tag = 'LengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'integer', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(LengthType_, xml_string) + + +class MediumType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:mediumType element """ + + c_tag = 'mediumType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['memory', 'smartcard', 'token', + 'MobileDevice', 'MobileAuthCard']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def medium_type__from_string(xml_string): + return saml2.create_class_from_xml_string(MediumType_, xml_string) + + +class KeyStorageType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:KeyStorageType element """ + + c_tag = 'KeyStorageType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['medium'] = ('medium', MediumType_, True) + + def __init__(self, + medium=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.medium = medium + + +def key_storage_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorageType_, xml_string) + + +class ExtensionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ExtensionType element """ + + c_tag = 'ExtensionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def extension_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionType_, xml_string) + + +class KeySharing(KeySharingType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:KeySharing element """ + + c_tag = 'KeySharing' + c_namespace = NAMESPACE + c_children = KeySharingType_.c_children.copy() + c_attributes = KeySharingType_.c_attributes.copy() + c_child_order = KeySharingType_.c_child_order[:] + c_cardinality = KeySharingType_.c_cardinality.copy() + + +def key_sharing_from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharing, xml_string) + + +class KeyStorage(KeyStorageType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:KeyStorage element """ + + c_tag = 'KeyStorage' + c_namespace = NAMESPACE + c_children = KeyStorageType_.c_children.copy() + c_attributes = KeyStorageType_.c_attributes.copy() + c_child_order = KeyStorageType_.c_child_order[:] + c_cardinality = KeyStorageType_.c_cardinality.copy() + + +def key_storage_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorage, xml_string) + + +class TimeSyncToken(TimeSyncTokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:TimeSyncToken element """ + + c_tag = 'TimeSyncToken' + c_namespace = NAMESPACE + c_children = TimeSyncTokenType_.c_children.copy() + c_attributes = TimeSyncTokenType_.c_attributes.copy() + c_child_order = TimeSyncTokenType_.c_child_order[:] + c_cardinality = TimeSyncTokenType_.c_cardinality.copy() + + +def time_sync_token_from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncToken, xml_string) + + +class Length(LengthType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Length element """ + + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = LengthType_.c_children.copy() + c_attributes = LengthType_.c_attributes.copy() + c_child_order = LengthType_.c_child_order[:] + c_cardinality = LengthType_.c_cardinality.copy() + + +def length_from_string(xml_string): + return saml2.create_class_from_xml_string(Length, xml_string) + + +class GoverningAgreementRef(GoverningAgreementRefType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:GoverningAgreementRef element """ + + c_tag = 'GoverningAgreementRef' + c_namespace = NAMESPACE + c_children = GoverningAgreementRefType_.c_children.copy() + c_attributes = GoverningAgreementRefType_.c_attributes.copy() + c_child_order = GoverningAgreementRefType_.c_child_order[:] + c_cardinality = GoverningAgreementRefType_.c_cardinality.copy() + + +def governing_agreement_ref_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRef, xml_string) + + +class GoverningAgreementsType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:GoverningAgreementsType element """ + + c_tag = 'GoverningAgreementsType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}GoverningAgreementRef'] = ( + 'governing_agreement_ref', [GoverningAgreementRef]) + c_cardinality['governing_agreement_ref'] = {"min": 1} + c_child_order.extend(['governing_agreement_ref']) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref or [] + + +def governing_agreements_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementsType_, + xml_string) + + +class RestrictedPasswordType_Length(RestrictedLengthType_): + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = RestrictedLengthType_.c_children.copy() + c_attributes = RestrictedLengthType_.c_attributes.copy() + c_child_order = RestrictedLengthType_.c_child_order[:] + c_cardinality = RestrictedLengthType_.c_cardinality.copy() + + +def restricted_password_type__length_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_Length, + xml_string) + + +class Alphabet(AlphabetType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Alphabet element """ + + c_tag = 'Alphabet' + c_namespace = NAMESPACE + c_children = AlphabetType_.c_children.copy() + c_attributes = AlphabetType_.c_attributes.copy() + c_child_order = AlphabetType_.c_child_order[:] + c_cardinality = AlphabetType_.c_cardinality.copy() + + +def alphabet_from_string(xml_string): + return saml2.create_class_from_xml_string(Alphabet, xml_string) + + +class ActivationLimitDuration(ActivationLimitDurationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimitDuration element """ + + c_tag = 'ActivationLimitDuration' + c_namespace = NAMESPACE + c_children = ActivationLimitDurationType_.c_children.copy() + c_attributes = ActivationLimitDurationType_.c_attributes.copy() + c_child_order = ActivationLimitDurationType_.c_child_order[:] + c_cardinality = ActivationLimitDurationType_.c_cardinality.copy() + + +def activation_limit_duration_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDuration, + xml_string) + + +class ActivationLimitUsages(ActivationLimitUsagesType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimitUsages element """ + + c_tag = 'ActivationLimitUsages' + c_namespace = NAMESPACE + c_children = ActivationLimitUsagesType_.c_children.copy() + c_attributes = ActivationLimitUsagesType_.c_attributes.copy() + c_child_order = ActivationLimitUsagesType_.c_child_order[:] + c_cardinality = ActivationLimitUsagesType_.c_cardinality.copy() + + +def activation_limit_usages_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsages, xml_string) + + +class ActivationLimitSession(ActivationLimitSessionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimitSession element """ + + c_tag = 'ActivationLimitSession' + c_namespace = NAMESPACE + c_children = ActivationLimitSessionType_.c_children.copy() + c_attributes = ActivationLimitSessionType_.c_attributes.copy() + c_child_order = ActivationLimitSessionType_.c_child_order[:] + c_cardinality = ActivationLimitSessionType_.c_cardinality.copy() + + +def activation_limit_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSession, + xml_string) + + +class Extension(ExtensionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Extension element """ + + c_tag = 'Extension' + c_namespace = NAMESPACE + c_children = ExtensionType_.c_children.copy() + c_attributes = ExtensionType_.c_attributes.copy() + c_child_order = ExtensionType_.c_child_order[:] + c_cardinality = ExtensionType_.c_cardinality.copy() + + +def extension_from_string(xml_string): + return saml2.create_class_from_xml_string(Extension, xml_string) + + +class SharedSecretChallengeResponseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SharedSecretChallengeResponseType element """ + + c_tag = 'SharedSecretChallengeResponseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['method'] = ('method', 'anyURI', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + method=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.method = method + + +def shared_secret_challenge_response_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + SharedSecretChallengeResponseType_, xml_string) + + +class PublicKeyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PublicKeyType element """ + + c_tag = 'PublicKeyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['keyValidation'] = ('key_validation', 'None', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + key_validation=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.key_validation = key_validation + + +def public_key_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PublicKeyType_, xml_string) + + +class GoverningAgreements(GoverningAgreementsType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:GoverningAgreements element """ + + c_tag = 'GoverningAgreements' + c_namespace = NAMESPACE + c_children = GoverningAgreementsType_.c_children.copy() + c_attributes = GoverningAgreementsType_.c_attributes.copy() + c_child_order = GoverningAgreementsType_.c_child_order[:] + c_cardinality = GoverningAgreementsType_.c_cardinality.copy() + + +def governing_agreements_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreements, xml_string) + + +class PasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PasswordType element """ + + c_tag = 'PasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'alphabet', 'generation', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PasswordType_, xml_string) + + +class RestrictedPasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:RestrictedPasswordType element """ + + c_tag = 'RestrictedPasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Length'] = ( + 'length', RestrictedPasswordType_Length) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'generation', 'extension']) + + def __init__(self, + length=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def restricted_password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_, + xml_string) + + +class TokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:TokenType element """ + + c_tag = 'TokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}TimeSyncToken'] = ( + 'time_sync_token', TimeSyncToken) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['time_sync_token', 'extension']) + + def __init__(self, + time_sync_token=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.time_sync_token = time_sync_token + self.extension = extension or [] + + +def token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TokenType_, xml_string) + + +class ActivationLimitType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimitType element """ + + c_tag = 'ActivationLimitType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ActivationLimitDuration'] = ( + 'activation_limit_duration', ActivationLimitDuration) + c_cardinality['activation_limit_duration'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ActivationLimitUsages'] = ( + 'activation_limit_usages', ActivationLimitUsages) + c_cardinality['activation_limit_usages'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ActivationLimitSession'] = ( + 'activation_limit_session', ActivationLimitSession) + c_cardinality['activation_limit_session'] = {"min": 0, "max": 1} + c_child_order.extend( + ['activation_limit_duration', 'activation_limit_usages', + 'activation_limit_session']) + + def __init__(self, + activation_limit_duration=None, + activation_limit_usages=None, + activation_limit_session=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_limit_duration = activation_limit_duration + self.activation_limit_usages = activation_limit_usages + self.activation_limit_session = activation_limit_session + + +def activation_limit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitType_, xml_string) + + +class ExtensionOnlyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ExtensionOnlyType element """ + + c_tag = 'ExtensionOnlyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + + +def extension_only_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionOnlyType_, xml_string) + + +class WrittenConsent(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:WrittenConsent element """ + + c_tag = 'WrittenConsent' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def written_consent_from_string(xml_string): + return saml2.create_class_from_xml_string(WrittenConsent, xml_string) + + +class SubscriberLineNumber(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SubscriberLineNumber element """ + + c_tag = 'SubscriberLineNumber' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def subscriber_line_number_from_string(xml_string): + return saml2.create_class_from_xml_string(SubscriberLineNumber, xml_string) + + +class UserSuffix(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:UserSuffix element """ + + c_tag = 'UserSuffix' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def user_suffix_from_string(xml_string): + return saml2.create_class_from_xml_string(UserSuffix, xml_string) + + +class Password(PasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Password element """ + + c_tag = 'Password' + c_namespace = NAMESPACE + c_children = PasswordType_.c_children.copy() + c_attributes = PasswordType_.c_attributes.copy() + c_child_order = PasswordType_.c_child_order[:] + c_cardinality = PasswordType_.c_cardinality.copy() + + +def password_from_string(xml_string): + return saml2.create_class_from_xml_string(Password, xml_string) + + +class Token(TokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Token element """ + + c_tag = 'Token' + c_namespace = NAMESPACE + c_children = TokenType_.c_children.copy() + c_attributes = TokenType_.c_attributes.copy() + c_child_order = TokenType_.c_child_order[:] + c_cardinality = TokenType_.c_cardinality.copy() + + +def token_from_string(xml_string): + return saml2.create_class_from_xml_string(Token, xml_string) + + +class Smartcard(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Smartcard element """ + + c_tag = 'Smartcard' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def smartcard_from_string(xml_string): + return saml2.create_class_from_xml_string(Smartcard, xml_string) + + +class ActivationLimit(ActivationLimitType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationLimit element """ + + c_tag = 'ActivationLimit' + c_namespace = NAMESPACE + c_children = ActivationLimitType_.c_children.copy() + c_attributes = ActivationLimitType_.c_attributes.copy() + c_child_order = ActivationLimitType_.c_child_order[:] + c_cardinality = ActivationLimitType_.c_cardinality.copy() + + +def activation_limit_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimit, xml_string) + + +class PreviousSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PreviousSession element """ + + c_tag = 'PreviousSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def previous_session_from_string(xml_string): + return saml2.create_class_from_xml_string(PreviousSession, xml_string) + + +class ResumeSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ResumeSession element """ + + c_tag = 'ResumeSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def resume_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ResumeSession, xml_string) + + +class ZeroKnowledge(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ZeroKnowledge element """ + + c_tag = 'ZeroKnowledge' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def zero_knowledge_from_string(xml_string): + return saml2.create_class_from_xml_string(ZeroKnowledge, xml_string) + + +class SharedSecretChallengeResponse(SharedSecretChallengeResponseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SharedSecretChallengeResponse element """ + + c_tag = 'SharedSecretChallengeResponse' + c_namespace = NAMESPACE + c_children = SharedSecretChallengeResponseType_.c_children.copy() + c_attributes = SharedSecretChallengeResponseType_.c_attributes.copy() + c_child_order = SharedSecretChallengeResponseType_.c_child_order[:] + c_cardinality = SharedSecretChallengeResponseType_.c_cardinality.copy() + + +def shared_secret_challenge_response_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretChallengeResponse, + xml_string) + + +class DigSig(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:DigSig element """ + + c_tag = 'DigSig' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def dig_sig_from_string(xml_string): + return saml2.create_class_from_xml_string(DigSig, xml_string) + + +class AsymmetricDecryption(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AsymmetricDecryption element """ + + c_tag = 'AsymmetricDecryption' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_decryption_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricDecryption, xml_string) + + +class AsymmetricKeyAgreement(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AsymmetricKeyAgreement element """ + + c_tag = 'AsymmetricKeyAgreement' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_key_agreement_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricKeyAgreement, + xml_string) + + +class IPAddress(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:IPAddress element """ + + c_tag = 'IPAddress' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_address_from_string(xml_string): + return saml2.create_class_from_xml_string(IPAddress, xml_string) + + +class SharedSecretDynamicPlaintext(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SharedSecretDynamicPlaintext element """ + + c_tag = 'SharedSecretDynamicPlaintext' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def shared_secret_dynamic_plaintext_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretDynamicPlaintext, + xml_string) + + +class HTTP(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:HTTP element """ + + c_tag = 'HTTP' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def http_from_string(xml_string): + return saml2.create_class_from_xml_string(HTTP, xml_string) + + +class IPSec(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:IPSec element """ + + c_tag = 'IPSec' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_sec_from_string(xml_string): + return saml2.create_class_from_xml_string(IPSec, xml_string) + + +class WTLS(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:WTLS element """ + + c_tag = 'WTLS' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def wtls_from_string(xml_string): + return saml2.create_class_from_xml_string(WTLS, xml_string) + + +class MobileNetworkNoEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:MobileNetworkNoEncryption element """ + + c_tag = 'MobileNetworkNoEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_no_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkNoEncryption, + xml_string) + + +class MobileNetworkRadioEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:MobileNetworkRadioEncryption element """ + + c_tag = 'MobileNetworkRadioEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_radio_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkRadioEncryption, + xml_string) + + +class MobileNetworkEndToEndEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:MobileNetworkEndToEndEncryption element """ + + c_tag = 'MobileNetworkEndToEndEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_end_to_end_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkEndToEndEncryption, + xml_string) + + +class SSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SSL element """ + + c_tag = 'SSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ssl_from_string(xml_string): + return saml2.create_class_from_xml_string(SSL, xml_string) + + +class PSTN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PSTN element """ + + c_tag = 'PSTN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def pstn_from_string(xml_string): + return saml2.create_class_from_xml_string(PSTN, xml_string) + + +class ISDN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ISDN element """ + + c_tag = 'ISDN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def isdn_from_string(xml_string): + return saml2.create_class_from_xml_string(ISDN, xml_string) + + +class ADSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ADSL element """ + + c_tag = 'ADSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def adsl_from_string(xml_string): + return saml2.create_class_from_xml_string(ADSL, xml_string) + + +class SwitchAudit(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SwitchAudit element """ + + c_tag = 'SwitchAudit' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def switch_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SwitchAudit, xml_string) + + +class DeactivationCallCenter(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:DeactivationCallCenter element """ + + c_tag = 'DeactivationCallCenter' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def deactivation_call_center_from_string(xml_string): + return saml2.create_class_from_xml_string(DeactivationCallCenter, + xml_string) + + +class IdentificationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:IdentificationType element """ + + c_tag = 'IdentificationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}PhysicalVerification'] = ( + 'physical_verification', PhysicalVerification) + c_cardinality['physical_verification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}WrittenConsent'] = ( + 'written_consent', WrittenConsent) + c_cardinality['written_consent'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['nym'] = ('nym', NymType_, False) + c_child_order.extend( + ['physical_verification', 'written_consent', 'governing_agreements', + 'extension']) + + def __init__(self, + physical_verification=None, + written_consent=None, + governing_agreements=None, + extension=None, + nym=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.physical_verification = physical_verification + self.written_consent = written_consent + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.nym = nym + + +def identification_type__from_string(xml_string): + return saml2.create_class_from_xml_string(IdentificationType_, xml_string) + + +class AuthenticatorTransportProtocolType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AuthenticatorTransportProtocolType element """ + + c_tag = 'AuthenticatorTransportProtocolType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}HTTP'] = ( + 'http', HTTP) + c_cardinality['http'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}SSL'] = ( + 'ssl', SSL) + c_cardinality['ssl'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}MobileNetworkNoEncryption'] = ( + 'mobile_network_no_encryption', MobileNetworkNoEncryption) + c_cardinality['mobile_network_no_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}MobileNetworkRadioEncryption'] = ( + 'mobile_network_radio_encryption', MobileNetworkRadioEncryption) + c_cardinality['mobile_network_radio_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}MobileNetworkEndToEndEncryption'] = ( + 'mobile_network_end_to_end_encryption', MobileNetworkEndToEndEncryption) + c_cardinality['mobile_network_end_to_end_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}WTLS'] = ( + 'wtls', WTLS) + c_cardinality['wtls'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}IPSec'] = ( + 'ip_sec', IPSec) + c_cardinality['ip_sec'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}PSTN'] = ( + 'pstn', PSTN) + c_cardinality['pstn'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ISDN'] = ( + 'isdn', ISDN) + c_cardinality['isdn'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ADSL'] = ( + 'adsl', ADSL) + c_cardinality['adsl'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['http', 'ssl', 'mobile_network_no_encryption', + 'mobile_network_radio_encryption', + 'mobile_network_end_to_end_encryption', 'wtls', + 'ip_sec', 'pstn', 'isdn', 'adsl', 'extension']) + + def __init__(self, + http=None, + ssl=None, + mobile_network_no_encryption=None, + mobile_network_radio_encryption=None, + mobile_network_end_to_end_encryption=None, + wtls=None, + ip_sec=None, + pstn=None, + isdn=None, + adsl=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.http = http + self.ssl = ssl + self.mobile_network_no_encryption = mobile_network_no_encryption + self.mobile_network_radio_encryption = mobile_network_radio_encryption + self.mobile_network_end_to_end_encryption = mobile_network_end_to_end_encryption + self.wtls = wtls + self.ip_sec = ip_sec + self.pstn = pstn + self.isdn = isdn + self.adsl = adsl + self.extension = extension or [] + + +def authenticator_transport_protocol_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + AuthenticatorTransportProtocolType_, xml_string) + + +class RestrictedPassword(RestrictedPasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:RestrictedPassword element """ + + c_tag = 'RestrictedPassword' + c_namespace = NAMESPACE + c_children = RestrictedPasswordType_.c_children.copy() + c_attributes = RestrictedPasswordType_.c_attributes.copy() + c_child_order = RestrictedPasswordType_.c_child_order[:] + c_cardinality = RestrictedPasswordType_.c_cardinality.copy() + + +def restricted_password_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPassword, xml_string) + + +class ActivationPinType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationPinType element """ + + c_tag = 'ActivationPinType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ActivationLimit'] = ( + 'activation_limit', ActivationLimit) + c_cardinality['activation_limit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['length', 'alphabet', 'generation', 'activation_limit', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + activation_limit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.activation_limit = activation_limit + self.extension = extension or [] + + +def activation_pin_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPinType_, xml_string) + + +class SecurityAuditType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SecurityAuditType element """ + + c_tag = 'SecurityAuditType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}SwitchAudit'] = ( + 'switch_audit', SwitchAudit) + c_cardinality['switch_audit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['switch_audit', 'extension']) + + def __init__(self, + switch_audit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.switch_audit = switch_audit + self.extension = extension or [] + + +def security_audit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAuditType_, xml_string) + + +class AuthenticatorBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AuthenticatorBaseType element """ + + c_tag = 'AuthenticatorBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Password'] = ( + 'password', Password) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}IPAddress'] = ( + 'ip_address', IPAddress) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['password', 'ip_address', 'extension']) + + def __init__(self, + password=None, + ip_address=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.password = password + self.ip_address = ip_address + self.extension = extension or [] + + +def authenticator_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorBaseType_, + xml_string) + + +class Identification(IdentificationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Identification element """ + + c_tag = 'Identification' + c_namespace = NAMESPACE + c_children = IdentificationType_.c_children.copy() + c_attributes = IdentificationType_.c_attributes.copy() + c_child_order = IdentificationType_.c_child_order[:] + c_cardinality = IdentificationType_.c_cardinality.copy() + + +def identification_from_string(xml_string): + return saml2.create_class_from_xml_string(Identification, xml_string) + + +class ActivationPin(ActivationPinType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ActivationPin element """ + + c_tag = 'ActivationPin' + c_namespace = NAMESPACE + c_children = ActivationPinType_.c_children.copy() + c_attributes = ActivationPinType_.c_attributes.copy() + c_child_order = ActivationPinType_.c_child_order[:] + c_cardinality = ActivationPinType_.c_cardinality.copy() + + +def activation_pin_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPin, xml_string) + + +class Authenticator(AuthenticatorBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:Authenticator element """ + + c_tag = 'Authenticator' + c_namespace = NAMESPACE + c_children = AuthenticatorBaseType_.c_children.copy() + c_attributes = AuthenticatorBaseType_.c_attributes.copy() + c_child_order = AuthenticatorBaseType_.c_child_order[:] + c_cardinality = AuthenticatorBaseType_.c_cardinality.copy() + + +def authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(Authenticator, xml_string) + + +class AuthenticatorTransportProtocol(AuthenticatorTransportProtocolType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AuthenticatorTransportProtocol element """ + + c_tag = 'AuthenticatorTransportProtocol' + c_namespace = NAMESPACE + c_children = AuthenticatorTransportProtocolType_.c_children.copy() + c_attributes = AuthenticatorTransportProtocolType_.c_attributes.copy() + c_child_order = AuthenticatorTransportProtocolType_.c_child_order[:] + c_cardinality = AuthenticatorTransportProtocolType_.c_cardinality.copy() + + +def authenticator_transport_protocol_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorTransportProtocol, + xml_string) + + +class SecurityAudit(SecurityAuditType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SecurityAudit element """ + + c_tag = 'SecurityAudit' + c_namespace = NAMESPACE + c_children = SecurityAuditType_.c_children.copy() + c_attributes = SecurityAuditType_.c_attributes.copy() + c_child_order = SecurityAuditType_.c_child_order[:] + c_cardinality = SecurityAuditType_.c_cardinality.copy() + + +def security_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAudit, xml_string) + + +class OperationalProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:OperationalProtectionType element """ + + c_tag = 'OperationalProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}SecurityAudit'] = ( + 'security_audit', SecurityAudit) + c_cardinality['security_audit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}DeactivationCallCenter'] = ( + 'deactivation_call_center', DeactivationCallCenter) + c_cardinality['deactivation_call_center'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['security_audit', 'deactivation_call_center', 'extension']) + + def __init__(self, + security_audit=None, + deactivation_call_center=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.security_audit = security_audit + self.deactivation_call_center = deactivation_call_center + self.extension = extension or [] + + +def operational_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtectionType_, + xml_string) + + +class PrincipalAuthenticationMechanismType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PrincipalAuthenticationMechanismType element """ + + c_tag = 'PrincipalAuthenticationMechanismType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Token'] = ( + 'token', Token) + c_cardinality['token'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Smartcard'] = ( + 'smartcard', Smartcard) + c_cardinality['smartcard'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['preauth'] = ('preauth', 'integer', False) + c_child_order.extend( + ['password', 'restricted_password', 'token', 'smartcard', + 'activation_pin', 'extension']) + + def __init__(self, + password=None, + restricted_password=None, + token=None, + smartcard=None, + activation_pin=None, + extension=None, + preauth=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.password = password + self.restricted_password = restricted_password + self.token = token + self.smartcard = smartcard + self.activation_pin = activation_pin + self.extension = extension or [] + self.preauth = preauth + + +def principal_authentication_mechanism_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + PrincipalAuthenticationMechanismType_, xml_string) + + +class KeyActivationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:KeyActivationType element """ + + c_tag = 'KeyActivationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword' \ + '}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['activation_pin', 'extension']) + + def __init__(self, + activation_pin=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_pin = activation_pin + self.extension = extension or [] + + +def key_activation_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivationType_, xml_string) + + +class KeyActivation(KeyActivationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:KeyActivation element """ + + c_tag = 'KeyActivation' + c_namespace = NAMESPACE + c_children = KeyActivationType_.c_children.copy() + c_attributes = KeyActivationType_.c_attributes.copy() + c_child_order = KeyActivationType_.c_child_order[:] + c_cardinality = KeyActivationType_.c_cardinality.copy() + + +def key_activation_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivation, xml_string) + + +class PrincipalAuthenticationMechanism(PrincipalAuthenticationMechanismType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PrincipalAuthenticationMechanism element """ + + c_tag = 'PrincipalAuthenticationMechanism' + c_namespace = NAMESPACE + c_children = PrincipalAuthenticationMechanismType_.c_children.copy() + c_attributes = PrincipalAuthenticationMechanismType_.c_attributes.copy() + c_child_order = PrincipalAuthenticationMechanismType_.c_child_order[:] + c_cardinality = PrincipalAuthenticationMechanismType_.c_cardinality.copy() + + +def principal_authentication_mechanism_from_string(xml_string): + return saml2.create_class_from_xml_string(PrincipalAuthenticationMechanism, + xml_string) + + +class OperationalProtection(OperationalProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:OperationalProtection element """ + + c_tag = 'OperationalProtection' + c_namespace = NAMESPACE + c_children = OperationalProtectionType_.c_children.copy() + c_attributes = OperationalProtectionType_.c_attributes.copy() + c_child_order = OperationalProtectionType_.c_child_order[:] + c_cardinality = OperationalProtectionType_.c_cardinality.copy() + + +def operational_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtection, xml_string) + + +class PrivateKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PrivateKeyProtectionType element """ + + c_tag = 'PrivateKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}KeySharing'] = ( + 'key_sharing', KeySharing) + c_cardinality['key_sharing'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['key_activation', 'key_storage', 'key_sharing', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + key_sharing=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.key_sharing = key_sharing + self.extension = extension or [] + + +def private_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtectionType_, + xml_string) + + +class SecretKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SecretKeyProtectionType element """ + + c_tag = 'SecretKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['key_activation', 'key_storage', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.extension = extension or [] + + +def secret_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtectionType_, + xml_string) + + +class AuthnMethodBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AuthnMethodBaseType element """ + + c_tag = 'AuthnMethodBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}PrincipalAuthenticationMechanism'] = ( + 'principal_authentication_mechanism', PrincipalAuthenticationMechanism) + c_cardinality['principal_authentication_mechanism'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Authenticator'] = ( + 'authenticator', Authenticator) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}AuthenticatorTransportProtocol'] = ( + 'authenticator_transport_protocol', AuthenticatorTransportProtocol) + c_cardinality['authenticator_transport_protocol'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword' \ + '}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['principal_authentication_mechanism', 'authenticator', + 'authenticator_transport_protocol', 'extension']) + + def __init__(self, + principal_authentication_mechanism=None, + authenticator=None, + authenticator_transport_protocol=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.principal_authentication_mechanism = principal_authentication_mechanism + self.authenticator = authenticator + self.authenticator_transport_protocol = authenticator_transport_protocol + self.extension = extension or [] + + +def authn_method_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethodBaseType_, xml_string) + + +class SecretKeyProtection(SecretKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:SecretKeyProtection element """ + + c_tag = 'SecretKeyProtection' + c_namespace = NAMESPACE + c_children = SecretKeyProtectionType_.c_children.copy() + c_attributes = SecretKeyProtectionType_.c_attributes.copy() + c_child_order = SecretKeyProtectionType_.c_child_order[:] + c_cardinality = SecretKeyProtectionType_.c_cardinality.copy() + + +def secret_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtection, xml_string) + + +class PrivateKeyProtection(PrivateKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:PrivateKeyProtection element """ + + c_tag = 'PrivateKeyProtection' + c_namespace = NAMESPACE + c_children = PrivateKeyProtectionType_.c_children.copy() + c_attributes = PrivateKeyProtectionType_.c_attributes.copy() + c_child_order = PrivateKeyProtectionType_.c_child_order[:] + c_cardinality = PrivateKeyProtectionType_.c_cardinality.copy() + + +def private_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtection, xml_string) + + +class AuthnMethod(AuthnMethodBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AuthnMethod element """ + + c_tag = 'AuthnMethod' + c_namespace = NAMESPACE + c_children = AuthnMethodBaseType_.c_children.copy() + c_attributes = AuthnMethodBaseType_.c_attributes.copy() + c_child_order = AuthnMethodBaseType_.c_child_order[:] + c_cardinality = AuthnMethodBaseType_.c_cardinality.copy() + + +def authn_method_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethod, xml_string) + + +class TechnicalProtectionBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:TechnicalProtectionBaseType element """ + + c_tag = 'TechnicalProtectionBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}PrivateKeyProtection'] = ( + 'private_key_protection', PrivateKeyProtection) + c_cardinality['private_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}SecretKeyProtection'] = ( + 'secret_key_protection', SecretKeyProtection) + c_cardinality['secret_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['private_key_protection', 'secret_key_protection', 'extension']) + + def __init__(self, + private_key_protection=None, + secret_key_protection=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.private_key_protection = private_key_protection + self.secret_key_protection = secret_key_protection + self.extension = extension or [] + + +def technical_protection_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtectionBaseType_, + xml_string) + + +class TechnicalProtection(TechnicalProtectionBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:TechnicalProtection element """ + + c_tag = 'TechnicalProtection' + c_namespace = NAMESPACE + c_children = TechnicalProtectionBaseType_.c_children.copy() + c_attributes = TechnicalProtectionBaseType_.c_attributes.copy() + c_child_order = TechnicalProtectionBaseType_.c_child_order[:] + c_cardinality = TechnicalProtectionBaseType_.c_cardinality.copy() + + +def technical_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtection, xml_string) + + +class AuthnContextDeclarationBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AuthnContextDeclarationBaseType element """ + + c_tag = 'AuthnContextDeclarationBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Identification'] = ( + 'identification', Identification) + c_cardinality['identification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}TechnicalProtection'] = ( + 'technical_protection', TechnicalProtection) + c_cardinality['technical_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}OperationalProtection'] = ( + 'operational_protection', OperationalProtection) + c_cardinality['operational_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}AuthnMethod'] = ( + 'authn_method', AuthnMethod) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ID'] = ('id', 'ID', False) + c_child_order.extend( + ['identification', 'technical_protection', 'operational_protection', + 'authn_method', 'governing_agreements', 'extension']) + + def __init__(self, + identification=None, + technical_protection=None, + operational_protection=None, + authn_method=None, + governing_agreements=None, + extension=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.identification = identification + self.technical_protection = technical_protection + self.operational_protection = operational_protection + self.authn_method = authn_method + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.id = id + + +def authn_context_declaration_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnContextDeclarationBaseType_, + xml_string) + + +class AuthenticationContextDeclaration(AuthnContextDeclarationBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:AuthenticationContextDeclaration element """ + + c_tag = 'AuthenticationContextDeclaration' + c_namespace = NAMESPACE + c_children = AuthnContextDeclarationBaseType_.c_children.copy() + c_attributes = AuthnContextDeclarationBaseType_.c_attributes.copy() + c_child_order = AuthnContextDeclarationBaseType_.c_child_order[:] + c_cardinality = AuthnContextDeclarationBaseType_.c_cardinality.copy() + + +def authentication_context_declaration_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticationContextDeclaration, + xml_string) + + +#.................. +# ['ComplexAuthenticator', 'ComplexAuthenticatorType'] +class ComplexAuthenticatorType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ComplexAuthenticatorType element """ + + c_tag = 'ComplexAuthenticatorType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}PreviousSession'] = ( + 'previous_session', PreviousSession) + c_cardinality['previous_session'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ResumeSession'] = ( + 'resume_session', ResumeSession) + c_cardinality['resume_session'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}DigSig'] = ( + 'dig_sig', DigSig) + c_cardinality['dig_sig'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ZeroKnowledge'] = ( + 'zero_knowledge', ZeroKnowledge) + c_cardinality['zero_knowledge'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}SharedSecretChallengeResponse'] = ( + 'shared_secret_challenge_response', SharedSecretChallengeResponse) + c_cardinality['shared_secret_challenge_response'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}SharedSecretDynamicPlaintext'] = ( + 'shared_secret_dynamic_plaintext', SharedSecretDynamicPlaintext) + c_cardinality['shared_secret_dynamic_plaintext'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}IPAddress'] = ( + 'ip_address', IPAddress) + c_cardinality['ip_address'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}AsymmetricDecryption'] = ( + 'asymmetric_decryption', AsymmetricDecryption) + c_cardinality['asymmetric_decryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}AsymmetricKeyAgreement'] = ( + 'asymmetric_key_agreement', AsymmetricKeyAgreement) + c_cardinality['asymmetric_key_agreement'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}SubscriberLineNumber'] = ( + 'subscriber_line_number', SubscriberLineNumber) + c_cardinality['subscriber_line_number'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}UserSuffix'] = ( + 'user_suffix', UserSuffix) + c_cardinality['user_suffix'] = {"min": 0, "max": 1} + c_cardinality['complex_authenticator'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['previous_session', 'resume_session', 'dig_sig', 'password', + 'restricted_password', 'zero_knowledge', + 'shared_secret_challenge_response', 'shared_secret_dynamic_plaintext', + 'ip_address', 'asymmetric_decryption', 'asymmetric_key_agreement', + 'subscriber_line_number', 'user_suffix', 'complex_authenticator', + 'extension']) + + def __init__(self, + previous_session=None, + resume_session=None, + dig_sig=None, + password=None, + restricted_password=None, + zero_knowledge=None, + shared_secret_challenge_response=None, + shared_secret_dynamic_plaintext=None, + ip_address=None, + asymmetric_decryption=None, + asymmetric_key_agreement=None, + subscriber_line_number=None, + user_suffix=None, + complex_authenticator=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.previous_session = previous_session + self.resume_session = resume_session + self.dig_sig = dig_sig + self.password = password + self.restricted_password = restricted_password + self.zero_knowledge = zero_knowledge + self.shared_secret_challenge_response = shared_secret_challenge_response + self.shared_secret_dynamic_plaintext = shared_secret_dynamic_plaintext + self.ip_address = ip_address + self.asymmetric_decryption = asymmetric_decryption + self.asymmetric_key_agreement = asymmetric_key_agreement + self.subscriber_line_number = subscriber_line_number + self.user_suffix = user_suffix + self.complex_authenticator = complex_authenticator + self.extension = extension or [] + + +def complex_authenticator_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticatorType_, + xml_string) + + +class ComplexAuthenticator(ComplexAuthenticatorType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword:ComplexAuthenticator element """ + + c_tag = 'ComplexAuthenticator' + c_namespace = NAMESPACE + c_children = ComplexAuthenticatorType_.c_children.copy() + c_attributes = ComplexAuthenticatorType_.c_attributes.copy() + c_child_order = ComplexAuthenticatorType_.c_child_order[:] + c_cardinality = ComplexAuthenticatorType_.c_cardinality.copy() + + +def complex_authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticator, xml_string) + + +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +ComplexAuthenticatorType_.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +ComplexAuthenticator.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +ELEMENT_FROM_STRING = { + AuthenticationContextDeclaration.c_tag: authentication_context_declaration_from_string, + Identification.c_tag: identification_from_string, + PhysicalVerification.c_tag: physical_verification_from_string, + WrittenConsent.c_tag: written_consent_from_string, + TechnicalProtection.c_tag: technical_protection_from_string, + SecretKeyProtection.c_tag: secret_key_protection_from_string, + PrivateKeyProtection.c_tag: private_key_protection_from_string, + KeyActivation.c_tag: key_activation_from_string, + KeySharing.c_tag: key_sharing_from_string, + KeyStorage.c_tag: key_storage_from_string, + SubscriberLineNumber.c_tag: subscriber_line_number_from_string, + UserSuffix.c_tag: user_suffix_from_string, + Password.c_tag: password_from_string, + ActivationPin.c_tag: activation_pin_from_string, + Token.c_tag: token_from_string, + TimeSyncToken.c_tag: time_sync_token_from_string, + Smartcard.c_tag: smartcard_from_string, + Length.c_tag: length_from_string, + ActivationLimit.c_tag: activation_limit_from_string, + Generation.c_tag: generation_from_string, + AuthnMethod.c_tag: authn_method_from_string, + PrincipalAuthenticationMechanism.c_tag: principal_authentication_mechanism_from_string, + Authenticator.c_tag: authenticator_from_string, + ComplexAuthenticator.c_tag: complex_authenticator_from_string, + PreviousSession.c_tag: previous_session_from_string, + ResumeSession.c_tag: resume_session_from_string, + ZeroKnowledge.c_tag: zero_knowledge_from_string, + SharedSecretChallengeResponse.c_tag: shared_secret_challenge_response_from_string, + SharedSecretChallengeResponseType_.c_tag: shared_secret_challenge_response_type__from_string, + DigSig.c_tag: dig_sig_from_string, + AsymmetricDecryption.c_tag: asymmetric_decryption_from_string, + AsymmetricKeyAgreement.c_tag: asymmetric_key_agreement_from_string, + PublicKeyType_.c_tag: public_key_type__from_string, + IPAddress.c_tag: ip_address_from_string, + SharedSecretDynamicPlaintext.c_tag: shared_secret_dynamic_plaintext_from_string, + AuthenticatorTransportProtocol.c_tag: authenticator_transport_protocol_from_string, + HTTP.c_tag: http_from_string, + IPSec.c_tag: ip_sec_from_string, + WTLS.c_tag: wtls_from_string, + MobileNetworkNoEncryption.c_tag: mobile_network_no_encryption_from_string, + MobileNetworkRadioEncryption.c_tag: mobile_network_radio_encryption_from_string, + MobileNetworkEndToEndEncryption.c_tag: mobile_network_end_to_end_encryption_from_string, + SSL.c_tag: ssl_from_string, + PSTN.c_tag: pstn_from_string, + ISDN.c_tag: isdn_from_string, + ADSL.c_tag: adsl_from_string, + OperationalProtection.c_tag: operational_protection_from_string, + SecurityAudit.c_tag: security_audit_from_string, + SwitchAudit.c_tag: switch_audit_from_string, + DeactivationCallCenter.c_tag: deactivation_call_center_from_string, + GoverningAgreements.c_tag: governing_agreements_from_string, + GoverningAgreementRef.c_tag: governing_agreement_ref_from_string, + NymType_.c_tag: nym_type__from_string, + IdentificationType_.c_tag: identification_type__from_string, + TechnicalProtectionBaseType_.c_tag: technical_protection_base_type__from_string, + OperationalProtectionType_.c_tag: operational_protection_type__from_string, + GoverningAgreementsType_.c_tag: governing_agreements_type__from_string, + GoverningAgreementRefType_.c_tag: governing_agreement_ref_type__from_string, + PrincipalAuthenticationMechanismType_.c_tag: principal_authentication_mechanism_type__from_string, + ComplexAuthenticatorType_.c_tag: complex_authenticator_type__from_string, + AuthenticatorTransportProtocolType_.c_tag: authenticator_transport_protocol_type__from_string, + KeyActivationType_.c_tag: key_activation_type__from_string, + KeySharingType_.c_tag: key_sharing_type__from_string, + PrivateKeyProtectionType_.c_tag: private_key_protection_type__from_string, + PasswordType_.c_tag: password_type__from_string, + RestrictedPassword.c_tag: restricted_password_from_string, + RestrictedPasswordType_.c_tag: restricted_password_type__from_string, + RestrictedLengthType_.c_tag: restricted_length_type__from_string, + ActivationPinType_.c_tag: activation_pin_type__from_string, + Alphabet.c_tag: alphabet_from_string, + AlphabetType_.c_tag: alphabet_type__from_string, + TokenType_.c_tag: token_type__from_string, + DeviceTypeType_.c_tag: device_type_type__from_string, + BooleanType_.c_tag: boolean_type__from_string, + TimeSyncTokenType_.c_tag: time_sync_token_type__from_string, + ActivationLimitType_.c_tag: activation_limit_type__from_string, + ActivationLimitDuration.c_tag: activation_limit_duration_from_string, + ActivationLimitUsages.c_tag: activation_limit_usages_from_string, + ActivationLimitSession.c_tag: activation_limit_session_from_string, + ActivationLimitDurationType_.c_tag: activation_limit_duration_type__from_string, + ActivationLimitUsagesType_.c_tag: activation_limit_usages_type__from_string, + ActivationLimitSessionType_.c_tag: activation_limit_session_type__from_string, + LengthType_.c_tag: length_type__from_string, + MediumType_.c_tag: medium_type__from_string, + KeyStorageType_.c_tag: key_storage_type__from_string, + SecretKeyProtectionType_.c_tag: secret_key_protection_type__from_string, + SecurityAuditType_.c_tag: security_audit_type__from_string, + ExtensionOnlyType_.c_tag: extension_only_type__from_string, + Extension.c_tag: extension_from_string, + ExtensionType_.c_tag: extension_type__from_string, + AuthnContextDeclarationBaseType_.c_tag: authn_context_declaration_base_type__from_string, + AuthnMethodBaseType_.c_tag: authn_method_base_type__from_string, + AuthenticatorBaseType_.c_tag: authenticator_base_type__from_string, +} + +ELEMENT_BY_TAG = { + 'AuthenticationContextDeclaration': AuthenticationContextDeclaration, + 'Identification': Identification, + 'PhysicalVerification': PhysicalVerification, + 'WrittenConsent': WrittenConsent, + 'TechnicalProtection': TechnicalProtection, + 'SecretKeyProtection': SecretKeyProtection, + 'PrivateKeyProtection': PrivateKeyProtection, + 'KeyActivation': KeyActivation, + 'KeySharing': KeySharing, + 'KeyStorage': KeyStorage, + 'SubscriberLineNumber': SubscriberLineNumber, + 'UserSuffix': UserSuffix, + 'Password': Password, + 'ActivationPin': ActivationPin, + 'Token': Token, + 'TimeSyncToken': TimeSyncToken, + 'Smartcard': Smartcard, + 'Length': Length, + 'ActivationLimit': ActivationLimit, + 'Generation': Generation, + 'AuthnMethod': AuthnMethod, + 'PrincipalAuthenticationMechanism': PrincipalAuthenticationMechanism, + 'Authenticator': Authenticator, + 'ComplexAuthenticator': ComplexAuthenticator, + 'PreviousSession': PreviousSession, + 'ResumeSession': ResumeSession, + 'ZeroKnowledge': ZeroKnowledge, + 'SharedSecretChallengeResponse': SharedSecretChallengeResponse, + 'SharedSecretChallengeResponseType': SharedSecretChallengeResponseType_, + 'DigSig': DigSig, + 'AsymmetricDecryption': AsymmetricDecryption, + 'AsymmetricKeyAgreement': AsymmetricKeyAgreement, + 'PublicKeyType': PublicKeyType_, + 'IPAddress': IPAddress, + 'SharedSecretDynamicPlaintext': SharedSecretDynamicPlaintext, + 'AuthenticatorTransportProtocol': AuthenticatorTransportProtocol, + 'HTTP': HTTP, + 'IPSec': IPSec, + 'WTLS': WTLS, + 'MobileNetworkNoEncryption': MobileNetworkNoEncryption, + 'MobileNetworkRadioEncryption': MobileNetworkRadioEncryption, + 'MobileNetworkEndToEndEncryption': MobileNetworkEndToEndEncryption, + 'SSL': SSL, + 'PSTN': PSTN, + 'ISDN': ISDN, + 'ADSL': ADSL, + 'OperationalProtection': OperationalProtection, + 'SecurityAudit': SecurityAudit, + 'SwitchAudit': SwitchAudit, + 'DeactivationCallCenter': DeactivationCallCenter, + 'GoverningAgreements': GoverningAgreements, + 'GoverningAgreementRef': GoverningAgreementRef, + 'nymType': NymType_, + 'IdentificationType': IdentificationType_, + 'TechnicalProtectionBaseType': TechnicalProtectionBaseType_, + 'OperationalProtectionType': OperationalProtectionType_, + 'GoverningAgreementsType': GoverningAgreementsType_, + 'GoverningAgreementRefType': GoverningAgreementRefType_, + 'PrincipalAuthenticationMechanismType': PrincipalAuthenticationMechanismType_, + 'ComplexAuthenticatorType': ComplexAuthenticatorType_, + 'AuthenticatorTransportProtocolType': AuthenticatorTransportProtocolType_, + 'KeyActivationType': KeyActivationType_, + 'KeySharingType': KeySharingType_, + 'PrivateKeyProtectionType': PrivateKeyProtectionType_, + 'PasswordType': PasswordType_, + 'RestrictedPassword': RestrictedPassword, + 'RestrictedPasswordType': RestrictedPasswordType_, + 'RestrictedLengthType': RestrictedLengthType_, + 'ActivationPinType': ActivationPinType_, + 'Alphabet': Alphabet, + 'AlphabetType': AlphabetType_, + 'TokenType': TokenType_, + 'DeviceTypeType': DeviceTypeType_, + 'booleanType': BooleanType_, + 'TimeSyncTokenType': TimeSyncTokenType_, + 'ActivationLimitType': ActivationLimitType_, + 'ActivationLimitDuration': ActivationLimitDuration, + 'ActivationLimitUsages': ActivationLimitUsages, + 'ActivationLimitSession': ActivationLimitSession, + 'ActivationLimitDurationType': ActivationLimitDurationType_, + 'ActivationLimitUsagesType': ActivationLimitUsagesType_, + 'ActivationLimitSessionType': ActivationLimitSessionType_, + 'LengthType': LengthType_, + 'mediumType': MediumType_, + 'KeyStorageType': KeyStorageType_, + 'SecretKeyProtectionType': SecretKeyProtectionType_, + 'SecurityAuditType': SecurityAuditType_, + 'ExtensionOnlyType': ExtensionOnlyType_, + 'Extension': Extension, + 'ExtensionType': ExtensionType_, + 'AuthnContextDeclarationBaseType': AuthnContextDeclarationBaseType_, + 'AuthnMethodBaseType': AuthnMethodBaseType_, + 'AuthenticatorBaseType': AuthenticatorBaseType_, +} + + +def factory(tag, **kwargs): + return ELEMENT_BY_TAG[tag](**kwargs) + diff --git a/src/saml2/authn_context/mobiletwofactor.py b/src/saml2/authn_context/mobiletwofactor.py new file mode 100644 index 00000000..af033742 --- /dev/null +++ b/src/saml2/authn_context/mobiletwofactor.py @@ -0,0 +1,2571 @@ +#!/usr/bin/env python + +# +# Generated Sun Apr 21 10:04:52 2013 by parse_xsd.py version 0.5. +# + +""" +Reflects mobile contract customer registration procedures and a two-factor +based authentication. For example, a digital signing device with tamper +resistant memory for key storage, such as a GSM SIM, that +requires explicit proof of user identity and intent, such as a PIN or biometric. +""" + +import saml2 +from saml2 import SamlBase + + +NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract' + + +class PhysicalVerification(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PhysicalVerification element """ + + c_tag = 'PhysicalVerification' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['credentialLevel'] = ('credential_level', 'None', False) + + def __init__(self, + credential_level=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.credential_level = credential_level + + +def physical_verification_from_string(xml_string): + return saml2.create_class_from_xml_string(PhysicalVerification, xml_string) + + +class Generation(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Generation element """ + + c_tag = 'Generation' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['mechanism'] = ('mechanism', 'None', True) + + def __init__(self, + mechanism=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.mechanism = mechanism + + +def generation_from_string(xml_string): + return saml2.create_class_from_xml_string(Generation, xml_string) + + +class NymType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:nymType element """ + + c_tag = 'nymType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['anonymity', 'verinymity', 'pseudonymity']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def nym_type__from_string(xml_string): + return saml2.create_class_from_xml_string(NymType_, xml_string) + + +class GoverningAgreementRefType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:GoverningAgreementRefType element """ + + c_tag = 'GoverningAgreementRefType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['governingAgreementRef'] = ( + 'governing_agreement_ref', 'anyURI', True) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref + + +def governing_agreement_ref_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRefType_, + xml_string) + + +class KeySharingType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:KeySharingType element """ + + c_tag = 'KeySharingType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['sharing'] = ('sharing', 'boolean', True) + + def __init__(self, + sharing=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.sharing = sharing + + +def key_sharing_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharingType_, xml_string) + + +class RestrictedLengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:RestrictedLengthType element """ + + c_tag = 'RestrictedLengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'None', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def restricted_length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedLengthType_, xml_string) + + +class AlphabetType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AlphabetType element """ + + c_tag = 'AlphabetType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['requiredChars'] = ('required_chars', 'string', True) + c_attributes['excludedChars'] = ('excluded_chars', 'string', False) + c_attributes['case'] = ('case', 'string', False) + + def __init__(self, + required_chars=None, + excluded_chars=None, + case=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.required_chars = required_chars + self.excluded_chars = excluded_chars + self.case = case + + +def alphabet_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AlphabetType_, xml_string) + + +class DeviceTypeType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:DeviceTypeType element """ + + c_tag = 'DeviceTypeType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['hardware', 'software']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def device_type_type__from_string(xml_string): + return saml2.create_class_from_xml_string(DeviceTypeType_, xml_string) + + +class BooleanType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:booleanType element """ + + c_tag = 'booleanType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', 'enumeration': ['true', 'false']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def boolean_type__from_string(xml_string): + return saml2.create_class_from_xml_string(BooleanType_, xml_string) + + +class TimeSyncTokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:TimeSyncTokenType element """ + + c_tag = 'TimeSyncTokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['DeviceType'] = ('device_type', DeviceTypeType_, True) + c_attributes['SeedLength'] = ('seed_length', 'integer', True) + c_attributes['DeviceInHand'] = ('device_in_hand', BooleanType_, True) + + def __init__(self, + device_type=None, + seed_length=None, + device_in_hand=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.device_type = device_type + self.seed_length = seed_length + self.device_in_hand = device_in_hand + + +def time_sync_token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncTokenType_, xml_string) + + +class ActivationLimitDurationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimitDurationType element """ + + c_tag = 'ActivationLimitDurationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['duration'] = ('duration', 'duration', True) + + def __init__(self, + duration=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.duration = duration + + +def activation_limit_duration_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDurationType_, + xml_string) + + +class ActivationLimitUsagesType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimitUsagesType element """ + + c_tag = 'ActivationLimitUsagesType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['number'] = ('number', 'integer', True) + + def __init__(self, + number=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.number = number + + +def activation_limit_usages_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsagesType_, + xml_string) + + +class ActivationLimitSessionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimitSessionType element """ + + c_tag = 'ActivationLimitSessionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def activation_limit_session_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSessionType_, + xml_string) + + +class LengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:LengthType element """ + + c_tag = 'LengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'integer', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(LengthType_, xml_string) + + +class MediumType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:mediumType element """ + + c_tag = 'mediumType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['memory', 'smartcard', 'token', + 'MobileDevice', 'MobileAuthCard']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def medium_type__from_string(xml_string): + return saml2.create_class_from_xml_string(MediumType_, xml_string) + + +class ExtensionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ExtensionType element """ + + c_tag = 'ExtensionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def extension_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionType_, xml_string) + + +class KeyStorageType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:KeyStorageType element """ + + c_tag = 'KeyStorageType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['medium'] = ('medium', 'None', True) + + def __init__(self, + medium=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.medium = medium + + +def key_storage_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorageType_, xml_string) + + +class KeySharing(KeySharingType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:KeySharing element """ + + c_tag = 'KeySharing' + c_namespace = NAMESPACE + c_children = KeySharingType_.c_children.copy() + c_attributes = KeySharingType_.c_attributes.copy() + c_child_order = KeySharingType_.c_child_order[:] + c_cardinality = KeySharingType_.c_cardinality.copy() + + +def key_sharing_from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharing, xml_string) + + +class KeyStorage(KeyStorageType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:KeyStorage element """ + + c_tag = 'KeyStorage' + c_namespace = NAMESPACE + c_children = KeyStorageType_.c_children.copy() + c_attributes = KeyStorageType_.c_attributes.copy() + c_child_order = KeyStorageType_.c_child_order[:] + c_cardinality = KeyStorageType_.c_cardinality.copy() + + +def key_storage_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorage, xml_string) + + +class TimeSyncToken(TimeSyncTokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:TimeSyncToken element """ + + c_tag = 'TimeSyncToken' + c_namespace = NAMESPACE + c_children = TimeSyncTokenType_.c_children.copy() + c_attributes = TimeSyncTokenType_.c_attributes.copy() + c_child_order = TimeSyncTokenType_.c_child_order[:] + c_cardinality = TimeSyncTokenType_.c_cardinality.copy() + + +def time_sync_token_from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncToken, xml_string) + + +class Length(LengthType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Length element """ + + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = LengthType_.c_children.copy() + c_attributes = LengthType_.c_attributes.copy() + c_child_order = LengthType_.c_child_order[:] + c_cardinality = LengthType_.c_cardinality.copy() + + +def length_from_string(xml_string): + return saml2.create_class_from_xml_string(Length, xml_string) + + +class GoverningAgreementRef(GoverningAgreementRefType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:GoverningAgreementRef element """ + + c_tag = 'GoverningAgreementRef' + c_namespace = NAMESPACE + c_children = GoverningAgreementRefType_.c_children.copy() + c_attributes = GoverningAgreementRefType_.c_attributes.copy() + c_child_order = GoverningAgreementRefType_.c_child_order[:] + c_cardinality = GoverningAgreementRefType_.c_cardinality.copy() + + +def governing_agreement_ref_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRef, xml_string) + + +class GoverningAgreementsType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:GoverningAgreementsType element """ + + c_tag = 'GoverningAgreementsType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}GoverningAgreementRef'] = ( + 'governing_agreement_ref', [GoverningAgreementRef]) + c_cardinality['governing_agreement_ref'] = {"min": 1} + c_child_order.extend(['governing_agreement_ref']) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref or [] + + +def governing_agreements_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementsType_, + xml_string) + + +class RestrictedPasswordType_Length(RestrictedLengthType_): + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = RestrictedLengthType_.c_children.copy() + c_attributes = RestrictedLengthType_.c_attributes.copy() + c_child_order = RestrictedLengthType_.c_child_order[:] + c_cardinality = RestrictedLengthType_.c_cardinality.copy() + + +def restricted_password_type__length_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_Length, + xml_string) + + +class Alphabet(AlphabetType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Alphabet element """ + + c_tag = 'Alphabet' + c_namespace = NAMESPACE + c_children = AlphabetType_.c_children.copy() + c_attributes = AlphabetType_.c_attributes.copy() + c_child_order = AlphabetType_.c_child_order[:] + c_cardinality = AlphabetType_.c_cardinality.copy() + + +def alphabet_from_string(xml_string): + return saml2.create_class_from_xml_string(Alphabet, xml_string) + + +class ActivationLimitDuration(ActivationLimitDurationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimitDuration element """ + + c_tag = 'ActivationLimitDuration' + c_namespace = NAMESPACE + c_children = ActivationLimitDurationType_.c_children.copy() + c_attributes = ActivationLimitDurationType_.c_attributes.copy() + c_child_order = ActivationLimitDurationType_.c_child_order[:] + c_cardinality = ActivationLimitDurationType_.c_cardinality.copy() + + +def activation_limit_duration_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDuration, + xml_string) + + +class ActivationLimitUsages(ActivationLimitUsagesType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimitUsages element """ + + c_tag = 'ActivationLimitUsages' + c_namespace = NAMESPACE + c_children = ActivationLimitUsagesType_.c_children.copy() + c_attributes = ActivationLimitUsagesType_.c_attributes.copy() + c_child_order = ActivationLimitUsagesType_.c_child_order[:] + c_cardinality = ActivationLimitUsagesType_.c_cardinality.copy() + + +def activation_limit_usages_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsages, xml_string) + + +class ActivationLimitSession(ActivationLimitSessionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimitSession element """ + + c_tag = 'ActivationLimitSession' + c_namespace = NAMESPACE + c_children = ActivationLimitSessionType_.c_children.copy() + c_attributes = ActivationLimitSessionType_.c_attributes.copy() + c_child_order = ActivationLimitSessionType_.c_child_order[:] + c_cardinality = ActivationLimitSessionType_.c_cardinality.copy() + + +def activation_limit_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSession, + xml_string) + + +class Extension(ExtensionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Extension element """ + + c_tag = 'Extension' + c_namespace = NAMESPACE + c_children = ExtensionType_.c_children.copy() + c_attributes = ExtensionType_.c_attributes.copy() + c_child_order = ExtensionType_.c_child_order[:] + c_cardinality = ExtensionType_.c_cardinality.copy() + + +def extension_from_string(xml_string): + return saml2.create_class_from_xml_string(Extension, xml_string) + + +class SharedSecretChallengeResponseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SharedSecretChallengeResponseType element """ + + c_tag = 'SharedSecretChallengeResponseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['method'] = ('method', 'anyURI', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + method=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.method = method + + +def shared_secret_challenge_response_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + SharedSecretChallengeResponseType_, xml_string) + + +class PublicKeyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PublicKeyType element """ + + c_tag = 'PublicKeyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['keyValidation'] = ('key_validation', 'None', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + key_validation=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.key_validation = key_validation + + +def public_key_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PublicKeyType_, xml_string) + + +class GoverningAgreements(GoverningAgreementsType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:GoverningAgreements element """ + + c_tag = 'GoverningAgreements' + c_namespace = NAMESPACE + c_children = GoverningAgreementsType_.c_children.copy() + c_attributes = GoverningAgreementsType_.c_attributes.copy() + c_child_order = GoverningAgreementsType_.c_child_order[:] + c_cardinality = GoverningAgreementsType_.c_cardinality.copy() + + +def governing_agreements_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreements, xml_string) + + +class PasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PasswordType element """ + + c_tag = 'PasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'alphabet', 'generation', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PasswordType_, xml_string) + + +class RestrictedPasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:RestrictedPasswordType element """ + + c_tag = 'RestrictedPasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Length'] = ( + 'length', RestrictedPasswordType_Length) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'generation', 'extension']) + + def __init__(self, + length=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def restricted_password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_, + xml_string) + + +class TokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:TokenType element """ + + c_tag = 'TokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}TimeSyncToken'] = ( + 'time_sync_token', TimeSyncToken) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['time_sync_token', 'extension']) + + def __init__(self, + time_sync_token=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.time_sync_token = time_sync_token + self.extension = extension or [] + + +def token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TokenType_, xml_string) + + +class ActivationLimitType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimitType element """ + + c_tag = 'ActivationLimitType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ActivationLimitDuration'] = ( + 'activation_limit_duration', ActivationLimitDuration) + c_cardinality['activation_limit_duration'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ActivationLimitUsages'] = ( + 'activation_limit_usages', ActivationLimitUsages) + c_cardinality['activation_limit_usages'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ActivationLimitSession'] = ( + 'activation_limit_session', ActivationLimitSession) + c_cardinality['activation_limit_session'] = {"min": 0, "max": 1} + c_child_order.extend( + ['activation_limit_duration', 'activation_limit_usages', + 'activation_limit_session']) + + def __init__(self, + activation_limit_duration=None, + activation_limit_usages=None, + activation_limit_session=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_limit_duration = activation_limit_duration + self.activation_limit_usages = activation_limit_usages + self.activation_limit_session = activation_limit_session + + +def activation_limit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitType_, xml_string) + + +class ExtensionOnlyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ExtensionOnlyType element """ + + c_tag = 'ExtensionOnlyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + + +def extension_only_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionOnlyType_, xml_string) + + +class WrittenConsent(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:WrittenConsent element """ + + c_tag = 'WrittenConsent' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def written_consent_from_string(xml_string): + return saml2.create_class_from_xml_string(WrittenConsent, xml_string) + + +class SubscriberLineNumber(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SubscriberLineNumber element """ + + c_tag = 'SubscriberLineNumber' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def subscriber_line_number_from_string(xml_string): + return saml2.create_class_from_xml_string(SubscriberLineNumber, xml_string) + + +class UserSuffix(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:UserSuffix element """ + + c_tag = 'UserSuffix' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def user_suffix_from_string(xml_string): + return saml2.create_class_from_xml_string(UserSuffix, xml_string) + + +class Password(PasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Password element """ + + c_tag = 'Password' + c_namespace = NAMESPACE + c_children = PasswordType_.c_children.copy() + c_attributes = PasswordType_.c_attributes.copy() + c_child_order = PasswordType_.c_child_order[:] + c_cardinality = PasswordType_.c_cardinality.copy() + + +def password_from_string(xml_string): + return saml2.create_class_from_xml_string(Password, xml_string) + + +class Token(TokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Token element """ + + c_tag = 'Token' + c_namespace = NAMESPACE + c_children = TokenType_.c_children.copy() + c_attributes = TokenType_.c_attributes.copy() + c_child_order = TokenType_.c_child_order[:] + c_cardinality = TokenType_.c_cardinality.copy() + + +def token_from_string(xml_string): + return saml2.create_class_from_xml_string(Token, xml_string) + + +class Smartcard(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Smartcard element """ + + c_tag = 'Smartcard' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def smartcard_from_string(xml_string): + return saml2.create_class_from_xml_string(Smartcard, xml_string) + + +class ActivationLimit(ActivationLimitType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationLimit element """ + + c_tag = 'ActivationLimit' + c_namespace = NAMESPACE + c_children = ActivationLimitType_.c_children.copy() + c_attributes = ActivationLimitType_.c_attributes.copy() + c_child_order = ActivationLimitType_.c_child_order[:] + c_cardinality = ActivationLimitType_.c_cardinality.copy() + + +def activation_limit_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimit, xml_string) + + +class PreviousSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PreviousSession element """ + + c_tag = 'PreviousSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def previous_session_from_string(xml_string): + return saml2.create_class_from_xml_string(PreviousSession, xml_string) + + +class ResumeSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ResumeSession element """ + + c_tag = 'ResumeSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def resume_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ResumeSession, xml_string) + + +class ZeroKnowledge(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ZeroKnowledge element """ + + c_tag = 'ZeroKnowledge' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def zero_knowledge_from_string(xml_string): + return saml2.create_class_from_xml_string(ZeroKnowledge, xml_string) + + +class SharedSecretChallengeResponse(SharedSecretChallengeResponseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SharedSecretChallengeResponse element """ + + c_tag = 'SharedSecretChallengeResponse' + c_namespace = NAMESPACE + c_children = SharedSecretChallengeResponseType_.c_children.copy() + c_attributes = SharedSecretChallengeResponseType_.c_attributes.copy() + c_child_order = SharedSecretChallengeResponseType_.c_child_order[:] + c_cardinality = SharedSecretChallengeResponseType_.c_cardinality.copy() + + +def shared_secret_challenge_response_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretChallengeResponse, + xml_string) + + +class DigSig(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:DigSig element """ + + c_tag = 'DigSig' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def dig_sig_from_string(xml_string): + return saml2.create_class_from_xml_string(DigSig, xml_string) + + +class AsymmetricDecryption(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AsymmetricDecryption element """ + + c_tag = 'AsymmetricDecryption' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_decryption_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricDecryption, xml_string) + + +class AsymmetricKeyAgreement(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AsymmetricKeyAgreement element """ + + c_tag = 'AsymmetricKeyAgreement' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_key_agreement_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricKeyAgreement, + xml_string) + + +class IPAddress(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:IPAddress element """ + + c_tag = 'IPAddress' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_address_from_string(xml_string): + return saml2.create_class_from_xml_string(IPAddress, xml_string) + + +class SharedSecretDynamicPlaintext(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SharedSecretDynamicPlaintext element """ + + c_tag = 'SharedSecretDynamicPlaintext' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def shared_secret_dynamic_plaintext_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretDynamicPlaintext, + xml_string) + + +class HTTP(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:HTTP element """ + + c_tag = 'HTTP' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def http_from_string(xml_string): + return saml2.create_class_from_xml_string(HTTP, xml_string) + + +class IPSec(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:IPSec element """ + + c_tag = 'IPSec' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_sec_from_string(xml_string): + return saml2.create_class_from_xml_string(IPSec, xml_string) + + +class WTLS(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:WTLS element """ + + c_tag = 'WTLS' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def wtls_from_string(xml_string): + return saml2.create_class_from_xml_string(WTLS, xml_string) + + +class MobileNetworkNoEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:MobileNetworkNoEncryption element """ + + c_tag = 'MobileNetworkNoEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_no_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkNoEncryption, + xml_string) + + +class MobileNetworkRadioEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:MobileNetworkRadioEncryption element """ + + c_tag = 'MobileNetworkRadioEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_radio_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkRadioEncryption, + xml_string) + + +class MobileNetworkEndToEndEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:MobileNetworkEndToEndEncryption element """ + + c_tag = 'MobileNetworkEndToEndEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_end_to_end_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkEndToEndEncryption, + xml_string) + + +class SSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SSL element """ + + c_tag = 'SSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ssl_from_string(xml_string): + return saml2.create_class_from_xml_string(SSL, xml_string) + + +class PSTN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PSTN element """ + + c_tag = 'PSTN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def pstn_from_string(xml_string): + return saml2.create_class_from_xml_string(PSTN, xml_string) + + +class ISDN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ISDN element """ + + c_tag = 'ISDN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def isdn_from_string(xml_string): + return saml2.create_class_from_xml_string(ISDN, xml_string) + + +class ADSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ADSL element """ + + c_tag = 'ADSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def adsl_from_string(xml_string): + return saml2.create_class_from_xml_string(ADSL, xml_string) + + +class SwitchAudit(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SwitchAudit element """ + + c_tag = 'SwitchAudit' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def switch_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SwitchAudit, xml_string) + + +class DeactivationCallCenter(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:DeactivationCallCenter element """ + + c_tag = 'DeactivationCallCenter' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def deactivation_call_center_from_string(xml_string): + return saml2.create_class_from_xml_string(DeactivationCallCenter, + xml_string) + + +class RestrictedPassword(RestrictedPasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:RestrictedPassword element """ + + c_tag = 'RestrictedPassword' + c_namespace = NAMESPACE + c_children = RestrictedPasswordType_.c_children.copy() + c_attributes = RestrictedPasswordType_.c_attributes.copy() + c_child_order = RestrictedPasswordType_.c_child_order[:] + c_cardinality = RestrictedPasswordType_.c_cardinality.copy() + + +def restricted_password_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPassword, xml_string) + + +class ActivationPinType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationPinType element """ + + c_tag = 'ActivationPinType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ActivationLimit'] = ( + 'activation_limit', ActivationLimit) + c_cardinality['activation_limit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['length', 'alphabet', 'generation', 'activation_limit', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + activation_limit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.activation_limit = activation_limit + self.extension = extension or [] + + +def activation_pin_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPinType_, xml_string) + + +class ComplexAuthenticatorType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ComplexAuthenticatorType element """ + + c_tag = 'ComplexAuthenticatorType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SharedSecretChallengeResponse'] = ( + 'shared_secret_challenge_response', SharedSecretChallengeResponse) + c_cardinality['shared_secret_challenge_response'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SharedSecretDynamicPlaintext'] = ( + 'shared_secret_dynamic_plaintext', SharedSecretDynamicPlaintext) + c_cardinality['shared_secret_dynamic_plaintext'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Password'] = ( + 'password', Password) + c_child_order.extend( + ['shared_secret_challenge_response', 'shared_secret_dynamic_plaintext', + 'password']) + + def __init__(self, + shared_secret_challenge_response=None, + shared_secret_dynamic_plaintext=None, + password=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.shared_secret_challenge_response = shared_secret_challenge_response + self.shared_secret_dynamic_plaintext = shared_secret_dynamic_plaintext + self.password = password + + +def complex_authenticator_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticatorType_, + xml_string) + + +class AuthenticatorTransportProtocolType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AuthenticatorTransportProtocolType element """ + + c_tag = 'AuthenticatorTransportProtocolType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SSL'] = ( + 'ssl', SSL) + c_cardinality['ssl'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}MobileNetworkNoEncryption'] = ( + 'mobile_network_no_encryption', MobileNetworkNoEncryption) + c_cardinality['mobile_network_no_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}MobileNetworkRadioEncryption'] = ( + 'mobile_network_radio_encryption', MobileNetworkRadioEncryption) + c_cardinality['mobile_network_radio_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}MobileNetworkEndToEndEncryption'] = ( + 'mobile_network_end_to_end_encryption', MobileNetworkEndToEndEncryption) + c_cardinality['mobile_network_end_to_end_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}WTLS'] = ( + 'wtls', WTLS) + c_cardinality['wtls'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['ssl', 'mobile_network_no_encryption', + 'mobile_network_radio_encryption', + 'mobile_network_end_to_end_encryption', 'wtls', + 'extension']) + + def __init__(self, + ssl=None, + mobile_network_no_encryption=None, + mobile_network_radio_encryption=None, + mobile_network_end_to_end_encryption=None, + wtls=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.ssl = ssl + self.mobile_network_no_encryption = mobile_network_no_encryption + self.mobile_network_radio_encryption = mobile_network_radio_encryption + self.mobile_network_end_to_end_encryption = mobile_network_end_to_end_encryption + self.wtls = wtls + self.extension = extension or [] + + +def authenticator_transport_protocol_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + AuthenticatorTransportProtocolType_, xml_string) + + +class SecurityAuditType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SecurityAuditType element """ + + c_tag = 'SecurityAuditType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SwitchAudit'] = ( + 'switch_audit', SwitchAudit) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['switch_audit', 'extension']) + + def __init__(self, + switch_audit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.switch_audit = switch_audit + self.extension = extension or [] + + +def security_audit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAuditType_, xml_string) + + +class IdentificationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:IdentificationType element """ + + c_tag = 'IdentificationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}PhysicalVerification'] = ( + 'physical_verification', PhysicalVerification) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}WrittenConsent'] = ( + 'written_consent', WrittenConsent) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['nym'] = ('nym', 'None', False) + c_child_order.extend( + ['physical_verification', 'written_consent', 'governing_agreements', + 'extension']) + + def __init__(self, + physical_verification=None, + written_consent=None, + governing_agreements=None, + extension=None, + nym=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.physical_verification = physical_verification + self.written_consent = written_consent + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.nym = nym + + +def identification_type__from_string(xml_string): + return saml2.create_class_from_xml_string(IdentificationType_, xml_string) + + +class Identification(IdentificationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Identification element """ + + c_tag = 'Identification' + c_namespace = NAMESPACE + c_children = IdentificationType_.c_children.copy() + c_attributes = IdentificationType_.c_attributes.copy() + c_child_order = IdentificationType_.c_child_order[:] + c_cardinality = IdentificationType_.c_cardinality.copy() + + +def identification_from_string(xml_string): + return saml2.create_class_from_xml_string(Identification, xml_string) + + +class ActivationPin(ActivationPinType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ActivationPin element """ + + c_tag = 'ActivationPin' + c_namespace = NAMESPACE + c_children = ActivationPinType_.c_children.copy() + c_attributes = ActivationPinType_.c_attributes.copy() + c_child_order = ActivationPinType_.c_child_order[:] + c_cardinality = ActivationPinType_.c_cardinality.copy() + + +def activation_pin_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPin, xml_string) + + +class ComplexAuthenticator(ComplexAuthenticatorType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:ComplexAuthenticator element """ + + c_tag = 'ComplexAuthenticator' + c_namespace = NAMESPACE + c_children = ComplexAuthenticatorType_.c_children.copy() + c_attributes = ComplexAuthenticatorType_.c_attributes.copy() + c_child_order = ComplexAuthenticatorType_.c_child_order[:] + c_cardinality = ComplexAuthenticatorType_.c_cardinality.copy() + + +def complex_authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticator, xml_string) + + +class AuthenticatorTransportProtocol(AuthenticatorTransportProtocolType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AuthenticatorTransportProtocol element """ + + c_tag = 'AuthenticatorTransportProtocol' + c_namespace = NAMESPACE + c_children = AuthenticatorTransportProtocolType_.c_children.copy() + c_attributes = AuthenticatorTransportProtocolType_.c_attributes.copy() + c_child_order = AuthenticatorTransportProtocolType_.c_child_order[:] + c_cardinality = AuthenticatorTransportProtocolType_.c_cardinality.copy() + + +def authenticator_transport_protocol_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorTransportProtocol, + xml_string) + + +class SecurityAudit(SecurityAuditType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SecurityAudit element """ + + c_tag = 'SecurityAudit' + c_namespace = NAMESPACE + c_children = SecurityAuditType_.c_children.copy() + c_attributes = SecurityAuditType_.c_attributes.copy() + c_child_order = SecurityAuditType_.c_child_order[:] + c_cardinality = SecurityAuditType_.c_cardinality.copy() + + +def security_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAudit, xml_string) + + +class PrincipalAuthenticationMechanismType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PrincipalAuthenticationMechanismType element """ + + c_tag = 'PrincipalAuthenticationMechanismType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Token'] = ( + 'token', Token) + c_cardinality['token'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Smartcard'] = ( + 'smartcard', Smartcard) + c_cardinality['smartcard'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['preauth'] = ('preauth', 'integer', False) + c_child_order.extend( + ['password', 'restricted_password', 'token', 'smartcard', + 'activation_pin', 'extension']) + + def __init__(self, + password=None, + restricted_password=None, + token=None, + smartcard=None, + activation_pin=None, + extension=None, + preauth=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.password = password + self.restricted_password = restricted_password + self.token = token + self.smartcard = smartcard + self.activation_pin = activation_pin + self.extension = extension or [] + self.preauth = preauth + + +def principal_authentication_mechanism_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + PrincipalAuthenticationMechanismType_, xml_string) + + +class KeyActivationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:KeyActivationType element """ + + c_tag = 'KeyActivationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['activation_pin', 'extension']) + + def __init__(self, + activation_pin=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_pin = activation_pin + self.extension = extension or [] + + +def key_activation_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivationType_, xml_string) + + +class AuthenticatorBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AuthenticatorBaseType element """ + + c_tag = 'AuthenticatorBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}DigSig'] = ( + 'dig_sig', DigSig) + c_cardinality['dig_sig'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ZeroKnowledge'] = ( + 'zero_knowledge', ZeroKnowledge) + c_cardinality['zero_knowledge'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SharedSecretChallengeResponse'] = ( + 'shared_secret_challenge_response', SharedSecretChallengeResponse) + c_cardinality['shared_secret_challenge_response'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SharedSecretDynamicPlaintext'] = ( + 'shared_secret_dynamic_plaintext', SharedSecretDynamicPlaintext) + c_cardinality['shared_secret_dynamic_plaintext'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}AsymmetricDecryption'] = ( + 'asymmetric_decryption', AsymmetricDecryption) + c_cardinality['asymmetric_decryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}AsymmetricKeyAgreement'] = ( + 'asymmetric_key_agreement', AsymmetricKeyAgreement) + c_cardinality['asymmetric_key_agreement'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) + c_cardinality['complex_authenticator'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['dig_sig', 'zero_knowledge', 'shared_secret_challenge_response', + 'shared_secret_dynamic_plaintext', 'asymmetric_decryption', + 'asymmetric_key_agreement', 'complex_authenticator', 'extension']) + + def __init__(self, + dig_sig=None, + zero_knowledge=None, + shared_secret_challenge_response=None, + shared_secret_dynamic_plaintext=None, + asymmetric_decryption=None, + asymmetric_key_agreement=None, + complex_authenticator=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.dig_sig = dig_sig + self.zero_knowledge = zero_knowledge + self.shared_secret_challenge_response = shared_secret_challenge_response + self.shared_secret_dynamic_plaintext = shared_secret_dynamic_plaintext + self.asymmetric_decryption = asymmetric_decryption + self.asymmetric_key_agreement = asymmetric_key_agreement + self.complex_authenticator = complex_authenticator + self.extension = extension or [] + + +def authenticator_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorBaseType_, + xml_string) + + +class OperationalProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:OperationalProtectionType element """ + + c_tag = 'OperationalProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SecurityAudit'] = ( + 'security_audit', SecurityAudit) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}DeactivationCallCenter'] = ( + 'deactivation_call_center', DeactivationCallCenter) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['security_audit', 'deactivation_call_center', 'extension']) + + def __init__(self, + security_audit=None, + deactivation_call_center=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.security_audit = security_audit + self.deactivation_call_center = deactivation_call_center + self.extension = extension or [] + + +def operational_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtectionType_, + xml_string) + + +class KeyActivation(KeyActivationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:KeyActivation element """ + + c_tag = 'KeyActivation' + c_namespace = NAMESPACE + c_children = KeyActivationType_.c_children.copy() + c_attributes = KeyActivationType_.c_attributes.copy() + c_child_order = KeyActivationType_.c_child_order[:] + c_cardinality = KeyActivationType_.c_cardinality.copy() + + +def key_activation_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivation, xml_string) + + +class PrincipalAuthenticationMechanism(PrincipalAuthenticationMechanismType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PrincipalAuthenticationMechanism element """ + + c_tag = 'PrincipalAuthenticationMechanism' + c_namespace = NAMESPACE + c_children = PrincipalAuthenticationMechanismType_.c_children.copy() + c_attributes = PrincipalAuthenticationMechanismType_.c_attributes.copy() + c_child_order = PrincipalAuthenticationMechanismType_.c_child_order[:] + c_cardinality = PrincipalAuthenticationMechanismType_.c_cardinality.copy() + + +def principal_authentication_mechanism_from_string(xml_string): + return saml2.create_class_from_xml_string(PrincipalAuthenticationMechanism, + xml_string) + + +class Authenticator(AuthenticatorBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:Authenticator element """ + + c_tag = 'Authenticator' + c_namespace = NAMESPACE + c_children = AuthenticatorBaseType_.c_children.copy() + c_attributes = AuthenticatorBaseType_.c_attributes.copy() + c_child_order = AuthenticatorBaseType_.c_child_order[:] + c_cardinality = AuthenticatorBaseType_.c_cardinality.copy() + + +def authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(Authenticator, xml_string) + + +class OperationalProtection(OperationalProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:OperationalProtection element """ + + c_tag = 'OperationalProtection' + c_namespace = NAMESPACE + c_children = OperationalProtectionType_.c_children.copy() + c_attributes = OperationalProtectionType_.c_attributes.copy() + c_child_order = OperationalProtectionType_.c_child_order[:] + c_cardinality = OperationalProtectionType_.c_cardinality.copy() + + +def operational_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtection, xml_string) + + +class AuthnMethodBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AuthnMethodBaseType element """ + + c_tag = 'AuthnMethodBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}PrincipalAuthenticationMechanism'] = ( + 'principal_authentication_mechanism', PrincipalAuthenticationMechanism) + c_cardinality['principal_authentication_mechanism'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Authenticator'] = ( + 'authenticator', Authenticator) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}AuthenticatorTransportProtocol'] = ( + 'authenticator_transport_protocol', AuthenticatorTransportProtocol) + c_cardinality['authenticator_transport_protocol'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['principal_authentication_mechanism', 'authenticator', + 'authenticator_transport_protocol', 'extension']) + + def __init__(self, + principal_authentication_mechanism=None, + authenticator=None, + authenticator_transport_protocol=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.principal_authentication_mechanism = principal_authentication_mechanism + self.authenticator = authenticator + self.authenticator_transport_protocol = authenticator_transport_protocol + self.extension = extension or [] + + +def authn_method_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethodBaseType_, xml_string) + + +class PrivateKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PrivateKeyProtectionType element """ + + c_tag = 'PrivateKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['key_activation', 'key_storage', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.extension = extension or [] + + +def private_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtectionType_, + xml_string) + + +class SecretKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SecretKeyProtectionType element """ + + c_tag = 'SecretKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract' \ + '}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['key_activation', 'key_storage', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.extension = extension or [] + + +def secret_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtectionType_, + xml_string) + + +class SecretKeyProtection(SecretKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:SecretKeyProtection element """ + + c_tag = 'SecretKeyProtection' + c_namespace = NAMESPACE + c_children = SecretKeyProtectionType_.c_children.copy() + c_attributes = SecretKeyProtectionType_.c_attributes.copy() + c_child_order = SecretKeyProtectionType_.c_child_order[:] + c_cardinality = SecretKeyProtectionType_.c_cardinality.copy() + + +def secret_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtection, xml_string) + + +class PrivateKeyProtection(PrivateKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:PrivateKeyProtection element """ + + c_tag = 'PrivateKeyProtection' + c_namespace = NAMESPACE + c_children = PrivateKeyProtectionType_.c_children.copy() + c_attributes = PrivateKeyProtectionType_.c_attributes.copy() + c_child_order = PrivateKeyProtectionType_.c_child_order[:] + c_cardinality = PrivateKeyProtectionType_.c_cardinality.copy() + + +def private_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtection, xml_string) + + +class AuthnMethod(AuthnMethodBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AuthnMethod element """ + + c_tag = 'AuthnMethod' + c_namespace = NAMESPACE + c_children = AuthnMethodBaseType_.c_children.copy() + c_attributes = AuthnMethodBaseType_.c_attributes.copy() + c_child_order = AuthnMethodBaseType_.c_child_order[:] + c_cardinality = AuthnMethodBaseType_.c_cardinality.copy() + + +def authn_method_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethod, xml_string) + + +class TechnicalProtectionBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:TechnicalProtectionBaseType element """ + + c_tag = 'TechnicalProtectionBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}PrivateKeyProtection'] = ( + 'private_key_protection', PrivateKeyProtection) + c_cardinality['private_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}SecretKeyProtection'] = ( + 'secret_key_protection', SecretKeyProtection) + c_cardinality['secret_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['private_key_protection', 'secret_key_protection', 'extension']) + + def __init__(self, + private_key_protection=None, + secret_key_protection=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.private_key_protection = private_key_protection + self.secret_key_protection = secret_key_protection + self.extension = extension or [] + + +def technical_protection_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtectionBaseType_, + xml_string) + + +class TechnicalProtection(TechnicalProtectionBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:TechnicalProtection element """ + + c_tag = 'TechnicalProtection' + c_namespace = NAMESPACE + c_children = TechnicalProtectionBaseType_.c_children.copy() + c_attributes = TechnicalProtectionBaseType_.c_attributes.copy() + c_child_order = TechnicalProtectionBaseType_.c_child_order[:] + c_cardinality = TechnicalProtectionBaseType_.c_cardinality.copy() + + +def technical_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtection, xml_string) + + +class AuthnContextDeclarationBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AuthnContextDeclarationBaseType element """ + + c_tag = 'AuthnContextDeclarationBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Identification'] = ( + 'identification', Identification) + c_cardinality['identification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}TechnicalProtection'] = ( + 'technical_protection', TechnicalProtection) + c_cardinality['technical_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}OperationalProtection'] = ( + 'operational_protection', OperationalProtection) + c_cardinality['operational_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}AuthnMethod'] = ( + 'authn_method', AuthnMethod) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ID'] = ('id', 'ID', False) + c_child_order.extend( + ['identification', 'technical_protection', 'operational_protection', + 'authn_method', 'governing_agreements', 'extension']) + + def __init__(self, + identification=None, + technical_protection=None, + operational_protection=None, + authn_method=None, + governing_agreements=None, + extension=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.identification = identification + self.technical_protection = technical_protection + self.operational_protection = operational_protection + self.authn_method = authn_method + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.id = id + + +def authn_context_declaration_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnContextDeclarationBaseType_, + xml_string) + + +class AuthenticationContextDeclaration(AuthnContextDeclarationBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract:AuthenticationContextDeclaration element """ + + c_tag = 'AuthenticationContextDeclaration' + c_namespace = NAMESPACE + c_children = AuthnContextDeclarationBaseType_.c_children.copy() + c_attributes = AuthnContextDeclarationBaseType_.c_attributes.copy() + c_child_order = AuthnContextDeclarationBaseType_.c_child_order[:] + c_cardinality = AuthnContextDeclarationBaseType_.c_cardinality.copy() + + +def authentication_context_declaration_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticationContextDeclaration, + xml_string) + + +ELEMENT_FROM_STRING = { + AuthenticationContextDeclaration.c_tag: authentication_context_declaration_from_string, + Identification.c_tag: identification_from_string, + PhysicalVerification.c_tag: physical_verification_from_string, + WrittenConsent.c_tag: written_consent_from_string, + TechnicalProtection.c_tag: technical_protection_from_string, + SecretKeyProtection.c_tag: secret_key_protection_from_string, + PrivateKeyProtection.c_tag: private_key_protection_from_string, + KeyActivation.c_tag: key_activation_from_string, + KeySharing.c_tag: key_sharing_from_string, + KeyStorage.c_tag: key_storage_from_string, + SubscriberLineNumber.c_tag: subscriber_line_number_from_string, + UserSuffix.c_tag: user_suffix_from_string, + Password.c_tag: password_from_string, + ActivationPin.c_tag: activation_pin_from_string, + Token.c_tag: token_from_string, + TimeSyncToken.c_tag: time_sync_token_from_string, + Smartcard.c_tag: smartcard_from_string, + Length.c_tag: length_from_string, + ActivationLimit.c_tag: activation_limit_from_string, + Generation.c_tag: generation_from_string, + AuthnMethod.c_tag: authn_method_from_string, + PrincipalAuthenticationMechanism.c_tag: principal_authentication_mechanism_from_string, + Authenticator.c_tag: authenticator_from_string, + ComplexAuthenticator.c_tag: complex_authenticator_from_string, + PreviousSession.c_tag: previous_session_from_string, + ResumeSession.c_tag: resume_session_from_string, + ZeroKnowledge.c_tag: zero_knowledge_from_string, + SharedSecretChallengeResponse.c_tag: shared_secret_challenge_response_from_string, + SharedSecretChallengeResponseType_.c_tag: shared_secret_challenge_response_type__from_string, + DigSig.c_tag: dig_sig_from_string, + AsymmetricDecryption.c_tag: asymmetric_decryption_from_string, + AsymmetricKeyAgreement.c_tag: asymmetric_key_agreement_from_string, + PublicKeyType_.c_tag: public_key_type__from_string, + IPAddress.c_tag: ip_address_from_string, + SharedSecretDynamicPlaintext.c_tag: shared_secret_dynamic_plaintext_from_string, + AuthenticatorTransportProtocol.c_tag: authenticator_transport_protocol_from_string, + HTTP.c_tag: http_from_string, + IPSec.c_tag: ip_sec_from_string, + WTLS.c_tag: wtls_from_string, + MobileNetworkNoEncryption.c_tag: mobile_network_no_encryption_from_string, + MobileNetworkRadioEncryption.c_tag: mobile_network_radio_encryption_from_string, + MobileNetworkEndToEndEncryption.c_tag: mobile_network_end_to_end_encryption_from_string, + SSL.c_tag: ssl_from_string, + PSTN.c_tag: pstn_from_string, + ISDN.c_tag: isdn_from_string, + ADSL.c_tag: adsl_from_string, + OperationalProtection.c_tag: operational_protection_from_string, + SecurityAudit.c_tag: security_audit_from_string, + SwitchAudit.c_tag: switch_audit_from_string, + DeactivationCallCenter.c_tag: deactivation_call_center_from_string, + GoverningAgreements.c_tag: governing_agreements_from_string, + GoverningAgreementRef.c_tag: governing_agreement_ref_from_string, + NymType_.c_tag: nym_type__from_string, + GoverningAgreementsType_.c_tag: governing_agreements_type__from_string, + GoverningAgreementRefType_.c_tag: governing_agreement_ref_type__from_string, + PrincipalAuthenticationMechanismType_.c_tag: principal_authentication_mechanism_type__from_string, + KeyActivationType_.c_tag: key_activation_type__from_string, + KeySharingType_.c_tag: key_sharing_type__from_string, + PasswordType_.c_tag: password_type__from_string, + RestrictedPassword.c_tag: restricted_password_from_string, + RestrictedPasswordType_.c_tag: restricted_password_type__from_string, + RestrictedLengthType_.c_tag: restricted_length_type__from_string, + ActivationPinType_.c_tag: activation_pin_type__from_string, + Alphabet.c_tag: alphabet_from_string, + AlphabetType_.c_tag: alphabet_type__from_string, + TokenType_.c_tag: token_type__from_string, + DeviceTypeType_.c_tag: device_type_type__from_string, + BooleanType_.c_tag: boolean_type__from_string, + TimeSyncTokenType_.c_tag: time_sync_token_type__from_string, + ActivationLimitType_.c_tag: activation_limit_type__from_string, + ActivationLimitDuration.c_tag: activation_limit_duration_from_string, + ActivationLimitUsages.c_tag: activation_limit_usages_from_string, + ActivationLimitSession.c_tag: activation_limit_session_from_string, + ActivationLimitDurationType_.c_tag: activation_limit_duration_type__from_string, + ActivationLimitUsagesType_.c_tag: activation_limit_usages_type__from_string, + ActivationLimitSessionType_.c_tag: activation_limit_session_type__from_string, + LengthType_.c_tag: length_type__from_string, + MediumType_.c_tag: medium_type__from_string, + ExtensionOnlyType_.c_tag: extension_only_type__from_string, + Extension.c_tag: extension_from_string, + ExtensionType_.c_tag: extension_type__from_string, + AuthnContextDeclarationBaseType_.c_tag: authn_context_declaration_base_type__from_string, + AuthnMethodBaseType_.c_tag: authn_method_base_type__from_string, + AuthenticatorBaseType_.c_tag: authenticator_base_type__from_string, + ComplexAuthenticatorType_.c_tag: complex_authenticator_type__from_string, + AuthenticatorTransportProtocolType_.c_tag: authenticator_transport_protocol_type__from_string, + OperationalProtectionType_.c_tag: operational_protection_type__from_string, + TechnicalProtectionBaseType_.c_tag: technical_protection_base_type__from_string, + PrivateKeyProtectionType_.c_tag: private_key_protection_type__from_string, + SecretKeyProtectionType_.c_tag: secret_key_protection_type__from_string, + KeyStorageType_.c_tag: key_storage_type__from_string, + SecurityAuditType_.c_tag: security_audit_type__from_string, + IdentificationType_.c_tag: identification_type__from_string, +} + +ELEMENT_BY_TAG = { + 'AuthenticationContextDeclaration': AuthenticationContextDeclaration, + 'Identification': Identification, + 'PhysicalVerification': PhysicalVerification, + 'WrittenConsent': WrittenConsent, + 'TechnicalProtection': TechnicalProtection, + 'SecretKeyProtection': SecretKeyProtection, + 'PrivateKeyProtection': PrivateKeyProtection, + 'KeyActivation': KeyActivation, + 'KeySharing': KeySharing, + 'KeyStorage': KeyStorage, + 'SubscriberLineNumber': SubscriberLineNumber, + 'UserSuffix': UserSuffix, + 'Password': Password, + 'ActivationPin': ActivationPin, + 'Token': Token, + 'TimeSyncToken': TimeSyncToken, + 'Smartcard': Smartcard, + 'Length': Length, + 'ActivationLimit': ActivationLimit, + 'Generation': Generation, + 'AuthnMethod': AuthnMethod, + 'PrincipalAuthenticationMechanism': PrincipalAuthenticationMechanism, + 'Authenticator': Authenticator, + 'ComplexAuthenticator': ComplexAuthenticator, + 'PreviousSession': PreviousSession, + 'ResumeSession': ResumeSession, + 'ZeroKnowledge': ZeroKnowledge, + 'SharedSecretChallengeResponse': SharedSecretChallengeResponse, + 'SharedSecretChallengeResponseType': SharedSecretChallengeResponseType_, + 'DigSig': DigSig, + 'AsymmetricDecryption': AsymmetricDecryption, + 'AsymmetricKeyAgreement': AsymmetricKeyAgreement, + 'PublicKeyType': PublicKeyType_, + 'IPAddress': IPAddress, + 'SharedSecretDynamicPlaintext': SharedSecretDynamicPlaintext, + 'AuthenticatorTransportProtocol': AuthenticatorTransportProtocol, + 'HTTP': HTTP, + 'IPSec': IPSec, + 'WTLS': WTLS, + 'MobileNetworkNoEncryption': MobileNetworkNoEncryption, + 'MobileNetworkRadioEncryption': MobileNetworkRadioEncryption, + 'MobileNetworkEndToEndEncryption': MobileNetworkEndToEndEncryption, + 'SSL': SSL, + 'PSTN': PSTN, + 'ISDN': ISDN, + 'ADSL': ADSL, + 'OperationalProtection': OperationalProtection, + 'SecurityAudit': SecurityAudit, + 'SwitchAudit': SwitchAudit, + 'DeactivationCallCenter': DeactivationCallCenter, + 'GoverningAgreements': GoverningAgreements, + 'GoverningAgreementRef': GoverningAgreementRef, + 'nymType': NymType_, + 'GoverningAgreementsType': GoverningAgreementsType_, + 'GoverningAgreementRefType': GoverningAgreementRefType_, + 'PrincipalAuthenticationMechanismType': PrincipalAuthenticationMechanismType_, + 'KeyActivationType': KeyActivationType_, + 'KeySharingType': KeySharingType_, + 'PasswordType': PasswordType_, + 'RestrictedPassword': RestrictedPassword, + 'RestrictedPasswordType': RestrictedPasswordType_, + 'RestrictedLengthType': RestrictedLengthType_, + 'ActivationPinType': ActivationPinType_, + 'Alphabet': Alphabet, + 'AlphabetType': AlphabetType_, + 'TokenType': TokenType_, + 'DeviceTypeType': DeviceTypeType_, + 'booleanType': BooleanType_, + 'TimeSyncTokenType': TimeSyncTokenType_, + 'ActivationLimitType': ActivationLimitType_, + 'ActivationLimitDuration': ActivationLimitDuration, + 'ActivationLimitUsages': ActivationLimitUsages, + 'ActivationLimitSession': ActivationLimitSession, + 'ActivationLimitDurationType': ActivationLimitDurationType_, + 'ActivationLimitUsagesType': ActivationLimitUsagesType_, + 'ActivationLimitSessionType': ActivationLimitSessionType_, + 'LengthType': LengthType_, + 'mediumType': MediumType_, + 'ExtensionOnlyType': ExtensionOnlyType_, + 'Extension': Extension, + 'ExtensionType': ExtensionType_, + 'AuthnContextDeclarationBaseType': AuthnContextDeclarationBaseType_, + 'AuthnMethodBaseType': AuthnMethodBaseType_, + 'AuthenticatorBaseType': AuthenticatorBaseType_, + 'ComplexAuthenticatorType': ComplexAuthenticatorType_, + 'AuthenticatorTransportProtocolType': AuthenticatorTransportProtocolType_, + 'OperationalProtectionType': OperationalProtectionType_, + 'TechnicalProtectionBaseType': TechnicalProtectionBaseType_, + 'PrivateKeyProtectionType': PrivateKeyProtectionType_, + 'SecretKeyProtectionType': SecretKeyProtectionType_, + 'KeyStorageType': KeyStorageType_, + 'SecurityAuditType': SecurityAuditType_, + 'IdentificationType': IdentificationType_, +} + + +def factory(tag, **kwargs): + return ELEMENT_BY_TAG[tag](**kwargs) + diff --git a/src/saml2/authn_context/ppt.py b/src/saml2/authn_context/ppt.py new file mode 100644 index 00000000..6635ad88 --- /dev/null +++ b/src/saml2/authn_context/ppt.py @@ -0,0 +1,2623 @@ +#!/usr/bin/env python + +# +# Generated Sun Apr 21 10:23:51 2013 by parse_xsd.py version 0.5. +# + +"""The PasswordProtectedTransport class is applicable when a principal +authenticates to an authentication authority through the presentation of a +password over a protected session.""" + +import saml2 +from saml2 import SamlBase + + +NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport' + + +class PhysicalVerification(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PhysicalVerification element """ + + c_tag = 'PhysicalVerification' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['credentialLevel'] = ('credential_level', 'None', False) + + def __init__(self, + credential_level=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.credential_level = credential_level + + +def physical_verification_from_string(xml_string): + return saml2.create_class_from_xml_string(PhysicalVerification, xml_string) + + +class Generation(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Generation element """ + + c_tag = 'Generation' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['mechanism'] = ('mechanism', 'None', True) + + def __init__(self, + mechanism=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.mechanism = mechanism + + +def generation_from_string(xml_string): + return saml2.create_class_from_xml_string(Generation, xml_string) + + +class NymType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:nymType element """ + + c_tag = 'nymType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['anonymity', 'verinymity', 'pseudonymity']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def nym_type__from_string(xml_string): + return saml2.create_class_from_xml_string(NymType_, xml_string) + + +class GoverningAgreementRefType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:GoverningAgreementRefType element """ + + c_tag = 'GoverningAgreementRefType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['governingAgreementRef'] = ( + 'governing_agreement_ref', 'anyURI', True) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref + + +def governing_agreement_ref_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRefType_, + xml_string) + + +class KeySharingType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:KeySharingType element """ + + c_tag = 'KeySharingType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['sharing'] = ('sharing', 'boolean', True) + + def __init__(self, + sharing=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.sharing = sharing + + +def key_sharing_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharingType_, xml_string) + + +class RestrictedLengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:RestrictedLengthType element """ + + c_tag = 'RestrictedLengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'None', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def restricted_length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedLengthType_, xml_string) + + +class AlphabetType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AlphabetType element """ + + c_tag = 'AlphabetType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['requiredChars'] = ('required_chars', 'string', True) + c_attributes['excludedChars'] = ('excluded_chars', 'string', False) + c_attributes['case'] = ('case', 'string', False) + + def __init__(self, + required_chars=None, + excluded_chars=None, + case=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.required_chars = required_chars + self.excluded_chars = excluded_chars + self.case = case + + +def alphabet_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AlphabetType_, xml_string) + + +class DeviceTypeType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:DeviceTypeType element """ + + c_tag = 'DeviceTypeType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['hardware', 'software']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def device_type_type__from_string(xml_string): + return saml2.create_class_from_xml_string(DeviceTypeType_, xml_string) + + +class BooleanType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:booleanType element """ + + c_tag = 'booleanType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', 'enumeration': ['true', 'false']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def boolean_type__from_string(xml_string): + return saml2.create_class_from_xml_string(BooleanType_, xml_string) + + +class TimeSyncTokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:TimeSyncTokenType element """ + + c_tag = 'TimeSyncTokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['DeviceType'] = ('device_type', DeviceTypeType_, True) + c_attributes['SeedLength'] = ('seed_length', 'integer', True) + c_attributes['DeviceInHand'] = ('device_in_hand', BooleanType_, True) + + def __init__(self, + device_type=None, + seed_length=None, + device_in_hand=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.device_type = device_type + self.seed_length = seed_length + self.device_in_hand = device_in_hand + + +def time_sync_token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncTokenType_, xml_string) + + +class ActivationLimitDurationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimitDurationType element """ + + c_tag = 'ActivationLimitDurationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['duration'] = ('duration', 'duration', True) + + def __init__(self, + duration=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.duration = duration + + +def activation_limit_duration_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDurationType_, + xml_string) + + +class ActivationLimitUsagesType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimitUsagesType element """ + + c_tag = 'ActivationLimitUsagesType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['number'] = ('number', 'integer', True) + + def __init__(self, + number=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.number = number + + +def activation_limit_usages_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsagesType_, + xml_string) + + +class ActivationLimitSessionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimitSessionType element """ + + c_tag = 'ActivationLimitSessionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def activation_limit_session_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSessionType_, + xml_string) + + +class LengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:LengthType element """ + + c_tag = 'LengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'integer', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(LengthType_, xml_string) + + +class MediumType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:mediumType element """ + + c_tag = 'mediumType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['memory', 'smartcard', 'token', + 'MobileDevice', 'MobileAuthCard']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def medium_type__from_string(xml_string): + return saml2.create_class_from_xml_string(MediumType_, xml_string) + + +class KeyStorageType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:KeyStorageType element """ + + c_tag = 'KeyStorageType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['medium'] = ('medium', MediumType_, True) + + def __init__(self, + medium=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.medium = medium + + +def key_storage_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorageType_, xml_string) + + +class ExtensionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ExtensionType element """ + + c_tag = 'ExtensionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def extension_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionType_, xml_string) + + +class KeySharing(KeySharingType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:KeySharing element """ + + c_tag = 'KeySharing' + c_namespace = NAMESPACE + c_children = KeySharingType_.c_children.copy() + c_attributes = KeySharingType_.c_attributes.copy() + c_child_order = KeySharingType_.c_child_order[:] + c_cardinality = KeySharingType_.c_cardinality.copy() + + +def key_sharing_from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharing, xml_string) + + +class KeyStorage(KeyStorageType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:KeyStorage element """ + + c_tag = 'KeyStorage' + c_namespace = NAMESPACE + c_children = KeyStorageType_.c_children.copy() + c_attributes = KeyStorageType_.c_attributes.copy() + c_child_order = KeyStorageType_.c_child_order[:] + c_cardinality = KeyStorageType_.c_cardinality.copy() + + +def key_storage_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorage, xml_string) + + +class TimeSyncToken(TimeSyncTokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:TimeSyncToken element """ + + c_tag = 'TimeSyncToken' + c_namespace = NAMESPACE + c_children = TimeSyncTokenType_.c_children.copy() + c_attributes = TimeSyncTokenType_.c_attributes.copy() + c_child_order = TimeSyncTokenType_.c_child_order[:] + c_cardinality = TimeSyncTokenType_.c_cardinality.copy() + + +def time_sync_token_from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncToken, xml_string) + + +class Length(LengthType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Length element """ + + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = LengthType_.c_children.copy() + c_attributes = LengthType_.c_attributes.copy() + c_child_order = LengthType_.c_child_order[:] + c_cardinality = LengthType_.c_cardinality.copy() + + +def length_from_string(xml_string): + return saml2.create_class_from_xml_string(Length, xml_string) + + +class GoverningAgreementRef(GoverningAgreementRefType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:GoverningAgreementRef element """ + + c_tag = 'GoverningAgreementRef' + c_namespace = NAMESPACE + c_children = GoverningAgreementRefType_.c_children.copy() + c_attributes = GoverningAgreementRefType_.c_attributes.copy() + c_child_order = GoverningAgreementRefType_.c_child_order[:] + c_cardinality = GoverningAgreementRefType_.c_cardinality.copy() + + +def governing_agreement_ref_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRef, xml_string) + + +class GoverningAgreementsType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:GoverningAgreementsType element """ + + c_tag = 'GoverningAgreementsType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}GoverningAgreementRef'] = ( + 'governing_agreement_ref', [GoverningAgreementRef]) + c_cardinality['governing_agreement_ref'] = {"min": 1} + c_child_order.extend(['governing_agreement_ref']) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref or [] + + +def governing_agreements_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementsType_, + xml_string) + + +class RestrictedPasswordType_Length(RestrictedLengthType_): + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = RestrictedLengthType_.c_children.copy() + c_attributes = RestrictedLengthType_.c_attributes.copy() + c_child_order = RestrictedLengthType_.c_child_order[:] + c_cardinality = RestrictedLengthType_.c_cardinality.copy() + + +def restricted_password_type__length_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_Length, + xml_string) + + +class Alphabet(AlphabetType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Alphabet element """ + + c_tag = 'Alphabet' + c_namespace = NAMESPACE + c_children = AlphabetType_.c_children.copy() + c_attributes = AlphabetType_.c_attributes.copy() + c_child_order = AlphabetType_.c_child_order[:] + c_cardinality = AlphabetType_.c_cardinality.copy() + + +def alphabet_from_string(xml_string): + return saml2.create_class_from_xml_string(Alphabet, xml_string) + + +class ActivationLimitDuration(ActivationLimitDurationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimitDuration element """ + + c_tag = 'ActivationLimitDuration' + c_namespace = NAMESPACE + c_children = ActivationLimitDurationType_.c_children.copy() + c_attributes = ActivationLimitDurationType_.c_attributes.copy() + c_child_order = ActivationLimitDurationType_.c_child_order[:] + c_cardinality = ActivationLimitDurationType_.c_cardinality.copy() + + +def activation_limit_duration_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDuration, + xml_string) + + +class ActivationLimitUsages(ActivationLimitUsagesType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimitUsages element """ + + c_tag = 'ActivationLimitUsages' + c_namespace = NAMESPACE + c_children = ActivationLimitUsagesType_.c_children.copy() + c_attributes = ActivationLimitUsagesType_.c_attributes.copy() + c_child_order = ActivationLimitUsagesType_.c_child_order[:] + c_cardinality = ActivationLimitUsagesType_.c_cardinality.copy() + + +def activation_limit_usages_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsages, xml_string) + + +class ActivationLimitSession(ActivationLimitSessionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimitSession element """ + + c_tag = 'ActivationLimitSession' + c_namespace = NAMESPACE + c_children = ActivationLimitSessionType_.c_children.copy() + c_attributes = ActivationLimitSessionType_.c_attributes.copy() + c_child_order = ActivationLimitSessionType_.c_child_order[:] + c_cardinality = ActivationLimitSessionType_.c_cardinality.copy() + + +def activation_limit_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSession, + xml_string) + + +class Extension(ExtensionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Extension element """ + + c_tag = 'Extension' + c_namespace = NAMESPACE + c_children = ExtensionType_.c_children.copy() + c_attributes = ExtensionType_.c_attributes.copy() + c_child_order = ExtensionType_.c_child_order[:] + c_cardinality = ExtensionType_.c_cardinality.copy() + + +def extension_from_string(xml_string): + return saml2.create_class_from_xml_string(Extension, xml_string) + + +class SharedSecretChallengeResponseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SharedSecretChallengeResponseType element """ + + c_tag = 'SharedSecretChallengeResponseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['method'] = ('method', 'anyURI', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + method=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.method = method + + +def shared_secret_challenge_response_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + SharedSecretChallengeResponseType_, xml_string) + + +class PublicKeyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PublicKeyType element """ + + c_tag = 'PublicKeyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['keyValidation'] = ('key_validation', 'None', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + key_validation=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.key_validation = key_validation + + +def public_key_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PublicKeyType_, xml_string) + + +class GoverningAgreements(GoverningAgreementsType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:GoverningAgreements element """ + + c_tag = 'GoverningAgreements' + c_namespace = NAMESPACE + c_children = GoverningAgreementsType_.c_children.copy() + c_attributes = GoverningAgreementsType_.c_attributes.copy() + c_child_order = GoverningAgreementsType_.c_child_order[:] + c_cardinality = GoverningAgreementsType_.c_cardinality.copy() + + +def governing_agreements_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreements, xml_string) + + +class PasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PasswordType element """ + + c_tag = 'PasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'alphabet', 'generation', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PasswordType_, xml_string) + + +class RestrictedPasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:RestrictedPasswordType element """ + + c_tag = 'RestrictedPasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Length'] = ( + 'length', RestrictedPasswordType_Length) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'generation', 'extension']) + + def __init__(self, + length=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def restricted_password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_, + xml_string) + + +class TokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:TokenType element """ + + c_tag = 'TokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}TimeSyncToken'] = ( + 'time_sync_token', TimeSyncToken) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['time_sync_token', 'extension']) + + def __init__(self, + time_sync_token=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.time_sync_token = time_sync_token + self.extension = extension or [] + + +def token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TokenType_, xml_string) + + +class ActivationLimitType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimitType element """ + + c_tag = 'ActivationLimitType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ActivationLimitDuration'] = ( + 'activation_limit_duration', ActivationLimitDuration) + c_cardinality['activation_limit_duration'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ActivationLimitUsages'] = ( + 'activation_limit_usages', ActivationLimitUsages) + c_cardinality['activation_limit_usages'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ActivationLimitSession'] = ( + 'activation_limit_session', ActivationLimitSession) + c_cardinality['activation_limit_session'] = {"min": 0, "max": 1} + c_child_order.extend( + ['activation_limit_duration', 'activation_limit_usages', + 'activation_limit_session']) + + def __init__(self, + activation_limit_duration=None, + activation_limit_usages=None, + activation_limit_session=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_limit_duration = activation_limit_duration + self.activation_limit_usages = activation_limit_usages + self.activation_limit_session = activation_limit_session + + +def activation_limit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitType_, xml_string) + + +class ExtensionOnlyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ExtensionOnlyType element """ + + c_tag = 'ExtensionOnlyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + + +def extension_only_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionOnlyType_, xml_string) + + +class WrittenConsent(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:WrittenConsent element """ + + c_tag = 'WrittenConsent' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def written_consent_from_string(xml_string): + return saml2.create_class_from_xml_string(WrittenConsent, xml_string) + + +class SubscriberLineNumber(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SubscriberLineNumber element """ + + c_tag = 'SubscriberLineNumber' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def subscriber_line_number_from_string(xml_string): + return saml2.create_class_from_xml_string(SubscriberLineNumber, xml_string) + + +class UserSuffix(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:UserSuffix element """ + + c_tag = 'UserSuffix' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def user_suffix_from_string(xml_string): + return saml2.create_class_from_xml_string(UserSuffix, xml_string) + + +class Password(PasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Password element """ + + c_tag = 'Password' + c_namespace = NAMESPACE + c_children = PasswordType_.c_children.copy() + c_attributes = PasswordType_.c_attributes.copy() + c_child_order = PasswordType_.c_child_order[:] + c_cardinality = PasswordType_.c_cardinality.copy() + + +def password_from_string(xml_string): + return saml2.create_class_from_xml_string(Password, xml_string) + + +class Token(TokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Token element """ + + c_tag = 'Token' + c_namespace = NAMESPACE + c_children = TokenType_.c_children.copy() + c_attributes = TokenType_.c_attributes.copy() + c_child_order = TokenType_.c_child_order[:] + c_cardinality = TokenType_.c_cardinality.copy() + + +def token_from_string(xml_string): + return saml2.create_class_from_xml_string(Token, xml_string) + + +class Smartcard(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Smartcard element """ + + c_tag = 'Smartcard' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def smartcard_from_string(xml_string): + return saml2.create_class_from_xml_string(Smartcard, xml_string) + + +class ActivationLimit(ActivationLimitType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationLimit element """ + + c_tag = 'ActivationLimit' + c_namespace = NAMESPACE + c_children = ActivationLimitType_.c_children.copy() + c_attributes = ActivationLimitType_.c_attributes.copy() + c_child_order = ActivationLimitType_.c_child_order[:] + c_cardinality = ActivationLimitType_.c_cardinality.copy() + + +def activation_limit_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimit, xml_string) + + +class PreviousSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PreviousSession element """ + + c_tag = 'PreviousSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def previous_session_from_string(xml_string): + return saml2.create_class_from_xml_string(PreviousSession, xml_string) + + +class ResumeSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ResumeSession element """ + + c_tag = 'ResumeSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def resume_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ResumeSession, xml_string) + + +class ZeroKnowledge(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ZeroKnowledge element """ + + c_tag = 'ZeroKnowledge' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def zero_knowledge_from_string(xml_string): + return saml2.create_class_from_xml_string(ZeroKnowledge, xml_string) + + +class SharedSecretChallengeResponse(SharedSecretChallengeResponseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SharedSecretChallengeResponse element """ + + c_tag = 'SharedSecretChallengeResponse' + c_namespace = NAMESPACE + c_children = SharedSecretChallengeResponseType_.c_children.copy() + c_attributes = SharedSecretChallengeResponseType_.c_attributes.copy() + c_child_order = SharedSecretChallengeResponseType_.c_child_order[:] + c_cardinality = SharedSecretChallengeResponseType_.c_cardinality.copy() + + +def shared_secret_challenge_response_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretChallengeResponse, + xml_string) + + +class DigSig(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:DigSig element """ + + c_tag = 'DigSig' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def dig_sig_from_string(xml_string): + return saml2.create_class_from_xml_string(DigSig, xml_string) + + +class AsymmetricDecryption(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AsymmetricDecryption element """ + + c_tag = 'AsymmetricDecryption' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_decryption_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricDecryption, xml_string) + + +class AsymmetricKeyAgreement(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AsymmetricKeyAgreement element """ + + c_tag = 'AsymmetricKeyAgreement' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_key_agreement_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricKeyAgreement, + xml_string) + + +class IPAddress(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:IPAddress element """ + + c_tag = 'IPAddress' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_address_from_string(xml_string): + return saml2.create_class_from_xml_string(IPAddress, xml_string) + + +class SharedSecretDynamicPlaintext(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SharedSecretDynamicPlaintext element """ + + c_tag = 'SharedSecretDynamicPlaintext' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def shared_secret_dynamic_plaintext_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretDynamicPlaintext, + xml_string) + + +class HTTP(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:HTTP element """ + + c_tag = 'HTTP' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def http_from_string(xml_string): + return saml2.create_class_from_xml_string(HTTP, xml_string) + + +class IPSec(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:IPSec element """ + + c_tag = 'IPSec' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_sec_from_string(xml_string): + return saml2.create_class_from_xml_string(IPSec, xml_string) + + +class WTLS(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:WTLS element """ + + c_tag = 'WTLS' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def wtls_from_string(xml_string): + return saml2.create_class_from_xml_string(WTLS, xml_string) + + +class MobileNetworkNoEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:MobileNetworkNoEncryption element """ + + c_tag = 'MobileNetworkNoEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_no_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkNoEncryption, + xml_string) + + +class MobileNetworkRadioEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:MobileNetworkRadioEncryption element """ + + c_tag = 'MobileNetworkRadioEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_radio_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkRadioEncryption, + xml_string) + + +class MobileNetworkEndToEndEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:MobileNetworkEndToEndEncryption element """ + + c_tag = 'MobileNetworkEndToEndEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_end_to_end_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkEndToEndEncryption, + xml_string) + + +class SSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SSL element """ + + c_tag = 'SSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ssl_from_string(xml_string): + return saml2.create_class_from_xml_string(SSL, xml_string) + + +class PSTN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PSTN element """ + + c_tag = 'PSTN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def pstn_from_string(xml_string): + return saml2.create_class_from_xml_string(PSTN, xml_string) + + +class ISDN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ISDN element """ + + c_tag = 'ISDN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def isdn_from_string(xml_string): + return saml2.create_class_from_xml_string(ISDN, xml_string) + + +class ADSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ADSL element """ + + c_tag = 'ADSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def adsl_from_string(xml_string): + return saml2.create_class_from_xml_string(ADSL, xml_string) + + +class SwitchAudit(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SwitchAudit element """ + + c_tag = 'SwitchAudit' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def switch_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SwitchAudit, xml_string) + + +class DeactivationCallCenter(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:DeactivationCallCenter element """ + + c_tag = 'DeactivationCallCenter' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def deactivation_call_center_from_string(xml_string): + return saml2.create_class_from_xml_string(DeactivationCallCenter, + xml_string) + + +class IdentificationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:IdentificationType element """ + + c_tag = 'IdentificationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}PhysicalVerification'] = ( + 'physical_verification', PhysicalVerification) + c_cardinality['physical_verification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}WrittenConsent'] = ( + 'written_consent', WrittenConsent) + c_cardinality['written_consent'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['nym'] = ('nym', NymType_, False) + c_child_order.extend( + ['physical_verification', 'written_consent', 'governing_agreements', + 'extension']) + + def __init__(self, + physical_verification=None, + written_consent=None, + governing_agreements=None, + extension=None, + nym=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.physical_verification = physical_verification + self.written_consent = written_consent + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.nym = nym + + +def identification_type__from_string(xml_string): + return saml2.create_class_from_xml_string(IdentificationType_, xml_string) + + +class RestrictedPassword(RestrictedPasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:RestrictedPassword element """ + + c_tag = 'RestrictedPassword' + c_namespace = NAMESPACE + c_children = RestrictedPasswordType_.c_children.copy() + c_attributes = RestrictedPasswordType_.c_attributes.copy() + c_child_order = RestrictedPasswordType_.c_child_order[:] + c_cardinality = RestrictedPasswordType_.c_cardinality.copy() + + +def restricted_password_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPassword, xml_string) + + +class ActivationPinType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationPinType element """ + + c_tag = 'ActivationPinType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ActivationLimit'] = ( + 'activation_limit', ActivationLimit) + c_cardinality['activation_limit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['length', 'alphabet', 'generation', 'activation_limit', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + activation_limit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.activation_limit = activation_limit + self.extension = extension or [] + + +def activation_pin_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPinType_, xml_string) + + +class SecurityAuditType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SecurityAuditType element """ + + c_tag = 'SecurityAuditType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}SwitchAudit'] = ( + 'switch_audit', SwitchAudit) + c_cardinality['switch_audit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['switch_audit', 'extension']) + + def __init__(self, + switch_audit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.switch_audit = switch_audit + self.extension = extension or [] + + +def security_audit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAuditType_, xml_string) + + +class AuthenticatorBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AuthenticatorBaseType element """ + + c_tag = 'AuthenticatorBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_child_order.extend(['restricted_password']) + + def __init__(self, + restricted_password=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.restricted_password = restricted_password + + +def authenticator_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorBaseType_, + xml_string) + + +class AuthenticatorTransportProtocolType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AuthenticatorTransportProtocolType element """ + + c_tag = 'AuthenticatorTransportProtocolType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}SSL'] = ( + 'ssl', SSL) + c_cardinality['ssl'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}MobileNetworkRadioEncryption'] = ( + 'mobile_network_radio_encryption', MobileNetworkRadioEncryption) + c_cardinality['mobile_network_radio_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}MobileNetworkEndToEndEncryption'] = ( + 'mobile_network_end_to_end_encryption', MobileNetworkEndToEndEncryption) + c_cardinality['mobile_network_end_to_end_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}WTLS'] = ( + 'wtls', WTLS) + c_cardinality['wtls'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}IPSec'] = ( + 'ip_sec', IPSec) + c_cardinality['ip_sec'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['ssl', 'mobile_network_radio_encryption', + 'mobile_network_end_to_end_encryption', 'wtls', + 'ip_sec', 'extension']) + + def __init__(self, + ssl=None, + mobile_network_radio_encryption=None, + mobile_network_end_to_end_encryption=None, + wtls=None, + ip_sec=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.ssl = ssl + self.mobile_network_radio_encryption = mobile_network_radio_encryption + self.mobile_network_end_to_end_encryption = mobile_network_end_to_end_encryption + self.wtls = wtls + self.ip_sec = ip_sec + self.extension = extension or [] + + +def authenticator_transport_protocol_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + AuthenticatorTransportProtocolType_, xml_string) + + +class Identification(IdentificationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Identification element """ + + c_tag = 'Identification' + c_namespace = NAMESPACE + c_children = IdentificationType_.c_children.copy() + c_attributes = IdentificationType_.c_attributes.copy() + c_child_order = IdentificationType_.c_child_order[:] + c_cardinality = IdentificationType_.c_cardinality.copy() + + +def identification_from_string(xml_string): + return saml2.create_class_from_xml_string(Identification, xml_string) + + +class ActivationPin(ActivationPinType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ActivationPin element """ + + c_tag = 'ActivationPin' + c_namespace = NAMESPACE + c_children = ActivationPinType_.c_children.copy() + c_attributes = ActivationPinType_.c_attributes.copy() + c_child_order = ActivationPinType_.c_child_order[:] + c_cardinality = ActivationPinType_.c_cardinality.copy() + + +def activation_pin_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPin, xml_string) + + +class Authenticator(AuthenticatorBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:Authenticator element """ + + c_tag = 'Authenticator' + c_namespace = NAMESPACE + c_children = AuthenticatorBaseType_.c_children.copy() + c_attributes = AuthenticatorBaseType_.c_attributes.copy() + c_child_order = AuthenticatorBaseType_.c_child_order[:] + c_cardinality = AuthenticatorBaseType_.c_cardinality.copy() + + +def authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(Authenticator, xml_string) + + +class AuthenticatorTransportProtocol(AuthenticatorTransportProtocolType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AuthenticatorTransportProtocol element """ + + c_tag = 'AuthenticatorTransportProtocol' + c_namespace = NAMESPACE + c_children = AuthenticatorTransportProtocolType_.c_children.copy() + c_attributes = AuthenticatorTransportProtocolType_.c_attributes.copy() + c_child_order = AuthenticatorTransportProtocolType_.c_child_order[:] + c_cardinality = AuthenticatorTransportProtocolType_.c_cardinality.copy() + + +def authenticator_transport_protocol_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorTransportProtocol, + xml_string) + + +class SecurityAudit(SecurityAuditType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SecurityAudit element """ + + c_tag = 'SecurityAudit' + c_namespace = NAMESPACE + c_children = SecurityAuditType_.c_children.copy() + c_attributes = SecurityAuditType_.c_attributes.copy() + c_child_order = SecurityAuditType_.c_child_order[:] + c_cardinality = SecurityAuditType_.c_cardinality.copy() + + +def security_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAudit, xml_string) + + +class OperationalProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:OperationalProtectionType element """ + + c_tag = 'OperationalProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}SecurityAudit'] = ( + 'security_audit', SecurityAudit) + c_cardinality['security_audit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}DeactivationCallCenter'] = ( + 'deactivation_call_center', DeactivationCallCenter) + c_cardinality['deactivation_call_center'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['security_audit', 'deactivation_call_center', 'extension']) + + def __init__(self, + security_audit=None, + deactivation_call_center=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.security_audit = security_audit + self.deactivation_call_center = deactivation_call_center + self.extension = extension or [] + + +def operational_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtectionType_, + xml_string) + + +class PrincipalAuthenticationMechanismType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PrincipalAuthenticationMechanismType element """ + + c_tag = 'PrincipalAuthenticationMechanismType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Token'] = ( + 'token', Token) + c_cardinality['token'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Smartcard'] = ( + 'smartcard', Smartcard) + c_cardinality['smartcard'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['preauth'] = ('preauth', 'integer', False) + c_child_order.extend( + ['password', 'restricted_password', 'token', 'smartcard', + 'activation_pin', 'extension']) + + def __init__(self, + password=None, + restricted_password=None, + token=None, + smartcard=None, + activation_pin=None, + extension=None, + preauth=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.password = password + self.restricted_password = restricted_password + self.token = token + self.smartcard = smartcard + self.activation_pin = activation_pin + self.extension = extension or [] + self.preauth = preauth + + +def principal_authentication_mechanism_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + PrincipalAuthenticationMechanismType_, xml_string) + + +class KeyActivationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:KeyActivationType element """ + + c_tag = 'KeyActivationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['activation_pin', 'extension']) + + def __init__(self, + activation_pin=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_pin = activation_pin + self.extension = extension or [] + + +def key_activation_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivationType_, xml_string) + + +class KeyActivation(KeyActivationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:KeyActivation element """ + + c_tag = 'KeyActivation' + c_namespace = NAMESPACE + c_children = KeyActivationType_.c_children.copy() + c_attributes = KeyActivationType_.c_attributes.copy() + c_child_order = KeyActivationType_.c_child_order[:] + c_cardinality = KeyActivationType_.c_cardinality.copy() + + +def key_activation_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivation, xml_string) + + +class PrincipalAuthenticationMechanism(PrincipalAuthenticationMechanismType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PrincipalAuthenticationMechanism element """ + + c_tag = 'PrincipalAuthenticationMechanism' + c_namespace = NAMESPACE + c_children = PrincipalAuthenticationMechanismType_.c_children.copy() + c_attributes = PrincipalAuthenticationMechanismType_.c_attributes.copy() + c_child_order = PrincipalAuthenticationMechanismType_.c_child_order[:] + c_cardinality = PrincipalAuthenticationMechanismType_.c_cardinality.copy() + + +def principal_authentication_mechanism_from_string(xml_string): + return saml2.create_class_from_xml_string(PrincipalAuthenticationMechanism, + xml_string) + + +class OperationalProtection(OperationalProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:OperationalProtection element """ + + c_tag = 'OperationalProtection' + c_namespace = NAMESPACE + c_children = OperationalProtectionType_.c_children.copy() + c_attributes = OperationalProtectionType_.c_attributes.copy() + c_child_order = OperationalProtectionType_.c_child_order[:] + c_cardinality = OperationalProtectionType_.c_cardinality.copy() + + +def operational_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtection, xml_string) + + +class PrivateKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PrivateKeyProtectionType element """ + + c_tag = 'PrivateKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}KeyStorage'] = ( + + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}KeySharing'] = ( + 'key_sharing', KeySharing) + c_cardinality['key_sharing'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport' \ + '}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['key_activation', 'key_storage', 'key_sharing', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + key_sharing=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.key_sharing = key_sharing + self.extension = extension or [] + + +def private_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtectionType_, + xml_string) + + +class SecretKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SecretKeyProtectionType element """ + + c_tag = 'SecretKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['key_activation', 'key_storage', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.extension = extension or [] + + +def secret_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtectionType_, + xml_string) + + +class AuthnMethodBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AuthnMethodBaseType element """ + + c_tag = 'AuthnMethodBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}PrincipalAuthenticationMechanism'] = ( + 'principal_authentication_mechanism', PrincipalAuthenticationMechanism) + c_cardinality['principal_authentication_mechanism'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Authenticator'] = ( + 'authenticator', Authenticator) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}AuthenticatorTransportProtocol'] = ( + 'authenticator_transport_protocol', AuthenticatorTransportProtocol) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['principal_authentication_mechanism', 'authenticator', + 'authenticator_transport_protocol', 'extension']) + + def __init__(self, + principal_authentication_mechanism=None, + authenticator=None, + authenticator_transport_protocol=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.principal_authentication_mechanism = principal_authentication_mechanism + self.authenticator = authenticator + self.authenticator_transport_protocol = authenticator_transport_protocol + self.extension = extension or [] + + +def authn_method_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethodBaseType_, xml_string) + + +class SecretKeyProtection(SecretKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:SecretKeyProtection element """ + + c_tag = 'SecretKeyProtection' + c_namespace = NAMESPACE + c_children = SecretKeyProtectionType_.c_children.copy() + c_attributes = SecretKeyProtectionType_.c_attributes.copy() + c_child_order = SecretKeyProtectionType_.c_child_order[:] + c_cardinality = SecretKeyProtectionType_.c_cardinality.copy() + + +def secret_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtection, xml_string) + + +class PrivateKeyProtection(PrivateKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:PrivateKeyProtection element """ + + c_tag = 'PrivateKeyProtection' + c_namespace = NAMESPACE + c_children = PrivateKeyProtectionType_.c_children.copy() + c_attributes = PrivateKeyProtectionType_.c_attributes.copy() + c_child_order = PrivateKeyProtectionType_.c_child_order[:] + c_cardinality = PrivateKeyProtectionType_.c_cardinality.copy() + + +def private_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtection, xml_string) + + +class AuthnMethod(AuthnMethodBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AuthnMethod element """ + + c_tag = 'AuthnMethod' + c_namespace = NAMESPACE + c_children = AuthnMethodBaseType_.c_children.copy() + c_attributes = AuthnMethodBaseType_.c_attributes.copy() + c_child_order = AuthnMethodBaseType_.c_child_order[:] + c_cardinality = AuthnMethodBaseType_.c_cardinality.copy() + + +def authn_method_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethod, xml_string) + + +class TechnicalProtectionBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:TechnicalProtectionBaseType element """ + + c_tag = 'TechnicalProtectionBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}PrivateKeyProtection'] = ( + 'private_key_protection', PrivateKeyProtection) + c_cardinality['private_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}SecretKeyProtection'] = ( + 'secret_key_protection', SecretKeyProtection) + c_cardinality['secret_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport' \ + '}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['private_key_protection', 'secret_key_protection', 'extension']) + + def __init__(self, + private_key_protection=None, + secret_key_protection=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.private_key_protection = private_key_protection + self.secret_key_protection = secret_key_protection + self.extension = extension or [] + + +def technical_protection_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtectionBaseType_, + xml_string) + + +class TechnicalProtection(TechnicalProtectionBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:TechnicalProtection element """ + + c_tag = 'TechnicalProtection' + c_namespace = NAMESPACE + c_children = TechnicalProtectionBaseType_.c_children.copy() + c_attributes = TechnicalProtectionBaseType_.c_attributes.copy() + c_child_order = TechnicalProtectionBaseType_.c_child_order[:] + c_cardinality = TechnicalProtectionBaseType_.c_cardinality.copy() + + +def technical_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtection, xml_string) + + +class AuthnContextDeclarationBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AuthnContextDeclarationBaseType element """ + + c_tag = 'AuthnContextDeclarationBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Identification'] = ( + 'identification', Identification) + c_cardinality['identification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}TechnicalProtection'] = ( + 'technical_protection', TechnicalProtection) + c_cardinality['technical_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}OperationalProtection'] = ( + 'operational_protection', OperationalProtection) + c_cardinality['operational_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}AuthnMethod'] = ( + 'authn_method', AuthnMethod) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ID'] = ('id', 'ID', False) + c_child_order.extend( + ['identification', 'technical_protection', 'operational_protection', + 'authn_method', 'governing_agreements', 'extension']) + + def __init__(self, + identification=None, + technical_protection=None, + operational_protection=None, + authn_method=None, + governing_agreements=None, + extension=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.identification = identification + self.technical_protection = technical_protection + self.operational_protection = operational_protection + self.authn_method = authn_method + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.id = id + + +def authn_context_declaration_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnContextDeclarationBaseType_, + xml_string) + + +class AuthenticationContextDeclaration(AuthnContextDeclarationBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:AuthenticationContextDeclaration element """ + + c_tag = 'AuthenticationContextDeclaration' + c_namespace = NAMESPACE + c_children = AuthnContextDeclarationBaseType_.c_children.copy() + c_attributes = AuthnContextDeclarationBaseType_.c_attributes.copy() + c_child_order = AuthnContextDeclarationBaseType_.c_child_order[:] + c_cardinality = AuthnContextDeclarationBaseType_.c_cardinality.copy() + + +def authentication_context_declaration_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticationContextDeclaration, + xml_string) + + +class ComplexAuthenticatorType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ComplexAuthenticatorType element """ + + c_tag = 'ComplexAuthenticatorType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}PreviousSession'] = ( + + 'previous_session', PreviousSession) + c_cardinality['previous_session'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ResumeSession'] = ( + 'resume_session', ResumeSession) + c_cardinality['resume_session'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}DigSig'] = ( + 'dig_sig', DigSig) + c_cardinality['dig_sig'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ZeroKnowledge'] = ( + 'zero_knowledge', ZeroKnowledge) + c_cardinality['zero_knowledge'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}SharedSecretChallengeResponse'] = ( + 'shared_secret_challenge_response', SharedSecretChallengeResponse) + c_cardinality['shared_secret_challenge_response'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}SharedSecretDynamicPlaintext'] = ( + 'shared_secret_dynamic_plaintext', SharedSecretDynamicPlaintext) + c_cardinality['shared_secret_dynamic_plaintext'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}IPAddress'] = ( + 'ip_address', IPAddress) + c_cardinality['ip_address'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}AsymmetricDecryption'] = ( + 'asymmetric_decryption', AsymmetricDecryption) + c_cardinality['asymmetric_decryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}AsymmetricKeyAgreement'] = ( + 'asymmetric_key_agreement', AsymmetricKeyAgreement) + c_cardinality['asymmetric_key_agreement'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}SubscriberLineNumber'] = ( + 'subscriber_line_number', SubscriberLineNumber) + c_cardinality['subscriber_line_number'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}UserSuffix'] = ( + 'user_suffix', UserSuffix) + c_cardinality['user_suffix'] = {"min": 0, "max": 1} + c_cardinality['complex_authenticator'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['previous_session', 'resume_session', 'dig_sig', 'password', + 'restricted_password', 'zero_knowledge', + 'shared_secret_challenge_response', 'shared_secret_dynamic_plaintext', + 'ip_address', 'asymmetric_decryption', 'asymmetric_key_agreement', + 'subscriber_line_number', 'user_suffix', 'complex_authenticator', + 'extension']) + + def __init__(self, + previous_session=None, + resume_session=None, + dig_sig=None, + password=None, + restricted_password=None, + zero_knowledge=None, + shared_secret_challenge_response=None, + shared_secret_dynamic_plaintext=None, + ip_address=None, + asymmetric_decryption=None, + asymmetric_key_agreement=None, + subscriber_line_number=None, + user_suffix=None, + complex_authenticator=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.previous_session = previous_session + self.resume_session = resume_session + self.dig_sig = dig_sig + self.password = password + self.restricted_password = restricted_password + self.zero_knowledge = zero_knowledge + self.shared_secret_challenge_response = shared_secret_challenge_response + self.shared_secret_dynamic_plaintext = shared_secret_dynamic_plaintext + self.ip_address = ip_address + self.asymmetric_decryption = asymmetric_decryption + self.asymmetric_key_agreement = asymmetric_key_agreement + self.subscriber_line_number = subscriber_line_number + self.user_suffix = user_suffix + self.complex_authenticator = complex_authenticator + self.extension = extension or [] + + +def complex_authenticator_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticatorType_, + xml_string) + + +class ComplexAuthenticator(ComplexAuthenticatorType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport:ComplexAuthenticator element """ + + c_tag = 'ComplexAuthenticator' + c_namespace = NAMESPACE + c_children = ComplexAuthenticatorType_.c_children.copy() + c_attributes = ComplexAuthenticatorType_.c_attributes.copy() + c_child_order = ComplexAuthenticatorType_.c_child_order[:] + c_cardinality = ComplexAuthenticatorType_.c_cardinality.copy() + + +def complex_authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticator, xml_string) + + +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +ComplexAuthenticatorType_.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +ComplexAuthenticator.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +ELEMENT_FROM_STRING = { + AuthenticationContextDeclaration.c_tag: authentication_context_declaration_from_string, + Identification.c_tag: identification_from_string, + PhysicalVerification.c_tag: physical_verification_from_string, + WrittenConsent.c_tag: written_consent_from_string, + TechnicalProtection.c_tag: technical_protection_from_string, + SecretKeyProtection.c_tag: secret_key_protection_from_string, + PrivateKeyProtection.c_tag: private_key_protection_from_string, + KeyActivation.c_tag: key_activation_from_string, + KeySharing.c_tag: key_sharing_from_string, + KeyStorage.c_tag: key_storage_from_string, + SubscriberLineNumber.c_tag: subscriber_line_number_from_string, + UserSuffix.c_tag: user_suffix_from_string, + Password.c_tag: password_from_string, + ActivationPin.c_tag: activation_pin_from_string, + Token.c_tag: token_from_string, + TimeSyncToken.c_tag: time_sync_token_from_string, + Smartcard.c_tag: smartcard_from_string, + Length.c_tag: length_from_string, + ActivationLimit.c_tag: activation_limit_from_string, + Generation.c_tag: generation_from_string, + AuthnMethod.c_tag: authn_method_from_string, + PrincipalAuthenticationMechanism.c_tag: principal_authentication_mechanism_from_string, + Authenticator.c_tag: authenticator_from_string, + ComplexAuthenticator.c_tag: complex_authenticator_from_string, + PreviousSession.c_tag: previous_session_from_string, + ResumeSession.c_tag: resume_session_from_string, + ZeroKnowledge.c_tag: zero_knowledge_from_string, + SharedSecretChallengeResponse.c_tag: shared_secret_challenge_response_from_string, + SharedSecretChallengeResponseType_.c_tag: shared_secret_challenge_response_type__from_string, + DigSig.c_tag: dig_sig_from_string, + AsymmetricDecryption.c_tag: asymmetric_decryption_from_string, + AsymmetricKeyAgreement.c_tag: asymmetric_key_agreement_from_string, + PublicKeyType_.c_tag: public_key_type__from_string, + IPAddress.c_tag: ip_address_from_string, + SharedSecretDynamicPlaintext.c_tag: shared_secret_dynamic_plaintext_from_string, + AuthenticatorTransportProtocol.c_tag: authenticator_transport_protocol_from_string, + HTTP.c_tag: http_from_string, + IPSec.c_tag: ip_sec_from_string, + WTLS.c_tag: wtls_from_string, + MobileNetworkNoEncryption.c_tag: mobile_network_no_encryption_from_string, + MobileNetworkRadioEncryption.c_tag: mobile_network_radio_encryption_from_string, + MobileNetworkEndToEndEncryption.c_tag: mobile_network_end_to_end_encryption_from_string, + SSL.c_tag: ssl_from_string, + PSTN.c_tag: pstn_from_string, + ISDN.c_tag: isdn_from_string, + ADSL.c_tag: adsl_from_string, + OperationalProtection.c_tag: operational_protection_from_string, + SecurityAudit.c_tag: security_audit_from_string, + SwitchAudit.c_tag: switch_audit_from_string, + DeactivationCallCenter.c_tag: deactivation_call_center_from_string, + GoverningAgreements.c_tag: governing_agreements_from_string, + GoverningAgreementRef.c_tag: governing_agreement_ref_from_string, + NymType_.c_tag: nym_type__from_string, + IdentificationType_.c_tag: identification_type__from_string, + TechnicalProtectionBaseType_.c_tag: technical_protection_base_type__from_string, + OperationalProtectionType_.c_tag: operational_protection_type__from_string, + GoverningAgreementsType_.c_tag: governing_agreements_type__from_string, + GoverningAgreementRefType_.c_tag: governing_agreement_ref_type__from_string, + PrincipalAuthenticationMechanismType_.c_tag: principal_authentication_mechanism_type__from_string, + ComplexAuthenticatorType_.c_tag: complex_authenticator_type__from_string, + KeyActivationType_.c_tag: key_activation_type__from_string, + KeySharingType_.c_tag: key_sharing_type__from_string, + PrivateKeyProtectionType_.c_tag: private_key_protection_type__from_string, + PasswordType_.c_tag: password_type__from_string, + RestrictedPassword.c_tag: restricted_password_from_string, + RestrictedPasswordType_.c_tag: restricted_password_type__from_string, + RestrictedLengthType_.c_tag: restricted_length_type__from_string, + ActivationPinType_.c_tag: activation_pin_type__from_string, + Alphabet.c_tag: alphabet_from_string, + AlphabetType_.c_tag: alphabet_type__from_string, + TokenType_.c_tag: token_type__from_string, + DeviceTypeType_.c_tag: device_type_type__from_string, + BooleanType_.c_tag: boolean_type__from_string, + TimeSyncTokenType_.c_tag: time_sync_token_type__from_string, + ActivationLimitType_.c_tag: activation_limit_type__from_string, + ActivationLimitDuration.c_tag: activation_limit_duration_from_string, + ActivationLimitUsages.c_tag: activation_limit_usages_from_string, + ActivationLimitSession.c_tag: activation_limit_session_from_string, + ActivationLimitDurationType_.c_tag: activation_limit_duration_type__from_string, + ActivationLimitUsagesType_.c_tag: activation_limit_usages_type__from_string, + ActivationLimitSessionType_.c_tag: activation_limit_session_type__from_string, + LengthType_.c_tag: length_type__from_string, + MediumType_.c_tag: medium_type__from_string, + KeyStorageType_.c_tag: key_storage_type__from_string, + SecretKeyProtectionType_.c_tag: secret_key_protection_type__from_string, + SecurityAuditType_.c_tag: security_audit_type__from_string, + ExtensionOnlyType_.c_tag: extension_only_type__from_string, + Extension.c_tag: extension_from_string, + ExtensionType_.c_tag: extension_type__from_string, + AuthnContextDeclarationBaseType_.c_tag: authn_context_declaration_base_type__from_string, + AuthnMethodBaseType_.c_tag: authn_method_base_type__from_string, + AuthenticatorBaseType_.c_tag: authenticator_base_type__from_string, + AuthenticatorTransportProtocolType_.c_tag: authenticator_transport_protocol_type__from_string, +} + +ELEMENT_BY_TAG = { + 'AuthenticationContextDeclaration': AuthenticationContextDeclaration, + 'Identification': Identification, + 'PhysicalVerification': PhysicalVerification, + 'WrittenConsent': WrittenConsent, + 'TechnicalProtection': TechnicalProtection, + 'SecretKeyProtection': SecretKeyProtection, + 'PrivateKeyProtection': PrivateKeyProtection, + 'KeyActivation': KeyActivation, + 'KeySharing': KeySharing, + 'KeyStorage': KeyStorage, + 'SubscriberLineNumber': SubscriberLineNumber, + 'UserSuffix': UserSuffix, + 'Password': Password, + 'ActivationPin': ActivationPin, + 'Token': Token, + 'TimeSyncToken': TimeSyncToken, + 'Smartcard': Smartcard, + 'Length': Length, + 'ActivationLimit': ActivationLimit, + 'Generation': Generation, + 'AuthnMethod': AuthnMethod, + 'PrincipalAuthenticationMechanism': PrincipalAuthenticationMechanism, + 'Authenticator': Authenticator, + 'ComplexAuthenticator': ComplexAuthenticator, + 'PreviousSession': PreviousSession, + 'ResumeSession': ResumeSession, + 'ZeroKnowledge': ZeroKnowledge, + 'SharedSecretChallengeResponse': SharedSecretChallengeResponse, + 'SharedSecretChallengeResponseType': SharedSecretChallengeResponseType_, + 'DigSig': DigSig, + 'AsymmetricDecryption': AsymmetricDecryption, + 'AsymmetricKeyAgreement': AsymmetricKeyAgreement, + 'PublicKeyType': PublicKeyType_, + 'IPAddress': IPAddress, + 'SharedSecretDynamicPlaintext': SharedSecretDynamicPlaintext, + 'AuthenticatorTransportProtocol': AuthenticatorTransportProtocol, + 'HTTP': HTTP, + 'IPSec': IPSec, + 'WTLS': WTLS, + 'MobileNetworkNoEncryption': MobileNetworkNoEncryption, + 'MobileNetworkRadioEncryption': MobileNetworkRadioEncryption, + 'MobileNetworkEndToEndEncryption': MobileNetworkEndToEndEncryption, + 'SSL': SSL, + 'PSTN': PSTN, + 'ISDN': ISDN, + 'ADSL': ADSL, + 'OperationalProtection': OperationalProtection, + 'SecurityAudit': SecurityAudit, + 'SwitchAudit': SwitchAudit, + 'DeactivationCallCenter': DeactivationCallCenter, + 'GoverningAgreements': GoverningAgreements, + 'GoverningAgreementRef': GoverningAgreementRef, + 'nymType': NymType_, + 'IdentificationType': IdentificationType_, + 'TechnicalProtectionBaseType': TechnicalProtectionBaseType_, + 'OperationalProtectionType': OperationalProtectionType_, + 'GoverningAgreementsType': GoverningAgreementsType_, + 'GoverningAgreementRefType': GoverningAgreementRefType_, + 'PrincipalAuthenticationMechanismType': PrincipalAuthenticationMechanismType_, + 'ComplexAuthenticatorType': ComplexAuthenticatorType_, + 'KeyActivationType': KeyActivationType_, + 'KeySharingType': KeySharingType_, + 'PrivateKeyProtectionType': PrivateKeyProtectionType_, + 'PasswordType': PasswordType_, + 'RestrictedPassword': RestrictedPassword, + 'RestrictedPasswordType': RestrictedPasswordType_, + 'RestrictedLengthType': RestrictedLengthType_, + 'ActivationPinType': ActivationPinType_, + 'Alphabet': Alphabet, + 'AlphabetType': AlphabetType_, + 'TokenType': TokenType_, + 'DeviceTypeType': DeviceTypeType_, + 'booleanType': BooleanType_, + 'TimeSyncTokenType': TimeSyncTokenType_, + 'ActivationLimitType': ActivationLimitType_, + 'ActivationLimitDuration': ActivationLimitDuration, + 'ActivationLimitUsages': ActivationLimitUsages, + 'ActivationLimitSession': ActivationLimitSession, + 'ActivationLimitDurationType': ActivationLimitDurationType_, + 'ActivationLimitUsagesType': ActivationLimitUsagesType_, + 'ActivationLimitSessionType': ActivationLimitSessionType_, + 'LengthType': LengthType_, + 'mediumType': MediumType_, + 'KeyStorageType': KeyStorageType_, + 'SecretKeyProtectionType': SecretKeyProtectionType_, + 'SecurityAuditType': SecurityAuditType_, + 'ExtensionOnlyType': ExtensionOnlyType_, + 'Extension': Extension, + 'ExtensionType': ExtensionType_, + 'AuthnContextDeclarationBaseType': AuthnContextDeclarationBaseType_, + 'AuthnMethodBaseType': AuthnMethodBaseType_, + 'AuthenticatorBaseType': AuthenticatorBaseType_, + 'AuthenticatorTransportProtocolType': AuthenticatorTransportProtocolType_, +} + + +def factory(tag, **kwargs): + return ELEMENT_BY_TAG[tag](**kwargs) + diff --git a/src/saml2/authn_context/pword.py b/src/saml2/authn_context/pword.py new file mode 100644 index 00000000..e4ddd601 --- /dev/null +++ b/src/saml2/authn_context/pword.py @@ -0,0 +1,2621 @@ +#!/usr/bin/env python + +# +# Generated Sun Apr 21 10:04:52 2013 by parse_xsd.py version 0.5. +# + +""" +The Password class is applicable when a principal authenticates to an +authentication authority through the presentation of a password over an +unprotected HTTP session. +""" + +import saml2 +from saml2 import SamlBase + + +NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:ac:classes:Password' + + +class PhysicalVerification(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PhysicalVerification element """ + + c_tag = 'PhysicalVerification' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['credentialLevel'] = ('credential_level', 'None', False) + + def __init__(self, + credential_level=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.credential_level = credential_level + + +def physical_verification_from_string(xml_string): + return saml2.create_class_from_xml_string(PhysicalVerification, xml_string) + + +class Generation(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Generation element """ + + c_tag = 'Generation' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['mechanism'] = ('mechanism', 'None', True) + + def __init__(self, + mechanism=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.mechanism = mechanism + + +def generation_from_string(xml_string): + return saml2.create_class_from_xml_string(Generation, xml_string) + + +class NymType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:nymType element """ + + c_tag = 'nymType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['anonymity', 'verinymity', 'pseudonymity']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def nym_type__from_string(xml_string): + return saml2.create_class_from_xml_string(NymType_, xml_string) + + +class GoverningAgreementRefType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:GoverningAgreementRefType element """ + + c_tag = 'GoverningAgreementRefType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['governingAgreementRef'] = ( + 'governing_agreement_ref', 'anyURI', True) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref + + +def governing_agreement_ref_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRefType_, + xml_string) + + +class KeySharingType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:KeySharingType element """ + + c_tag = 'KeySharingType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['sharing'] = ('sharing', 'boolean', True) + + def __init__(self, + sharing=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.sharing = sharing + + +def key_sharing_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharingType_, xml_string) + + +class RestrictedLengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:RestrictedLengthType element """ + + c_tag = 'RestrictedLengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'None', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def restricted_length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedLengthType_, xml_string) + + +class AlphabetType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AlphabetType element """ + + c_tag = 'AlphabetType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['requiredChars'] = ('required_chars', 'string', True) + c_attributes['excludedChars'] = ('excluded_chars', 'string', False) + c_attributes['case'] = ('case', 'string', False) + + def __init__(self, + required_chars=None, + excluded_chars=None, + case=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.required_chars = required_chars + self.excluded_chars = excluded_chars + self.case = case + + +def alphabet_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AlphabetType_, xml_string) + + +class DeviceTypeType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:DeviceTypeType element """ + + c_tag = 'DeviceTypeType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['hardware', 'software']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def device_type_type__from_string(xml_string): + return saml2.create_class_from_xml_string(DeviceTypeType_, xml_string) + + +class BooleanType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:booleanType element """ + + c_tag = 'booleanType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', 'enumeration': ['true', 'false']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def boolean_type__from_string(xml_string): + return saml2.create_class_from_xml_string(BooleanType_, xml_string) + + +class TimeSyncTokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:TimeSyncTokenType element """ + + c_tag = 'TimeSyncTokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['DeviceType'] = ('device_type', DeviceTypeType_, True) + c_attributes['SeedLength'] = ('seed_length', 'integer', True) + c_attributes['DeviceInHand'] = ('device_in_hand', BooleanType_, True) + + def __init__(self, + device_type=None, + seed_length=None, + device_in_hand=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.device_type = device_type + self.seed_length = seed_length + self.device_in_hand = device_in_hand + + +def time_sync_token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncTokenType_, xml_string) + + +class ActivationLimitDurationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimitDurationType element """ + + c_tag = 'ActivationLimitDurationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['duration'] = ('duration', 'duration', True) + + def __init__(self, + duration=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.duration = duration + + +def activation_limit_duration_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDurationType_, + xml_string) + + +class ActivationLimitUsagesType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimitUsagesType element """ + + c_tag = 'ActivationLimitUsagesType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['number'] = ('number', 'integer', True) + + def __init__(self, + number=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.number = number + + +def activation_limit_usages_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsagesType_, + xml_string) + + +class ActivationLimitSessionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimitSessionType element """ + + c_tag = 'ActivationLimitSessionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def activation_limit_session_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSessionType_, + xml_string) + + +class LengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:LengthType element """ + + c_tag = 'LengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'integer', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(LengthType_, xml_string) + + +class MediumType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:mediumType element """ + + c_tag = 'mediumType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['memory', 'smartcard', 'token', + 'MobileDevice', 'MobileAuthCard']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def medium_type__from_string(xml_string): + return saml2.create_class_from_xml_string(MediumType_, xml_string) + + +class KeyStorageType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:KeyStorageType element """ + + c_tag = 'KeyStorageType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['medium'] = ('medium', MediumType_, True) + + def __init__(self, + medium=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.medium = medium + + +def key_storage_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorageType_, xml_string) + + +class ExtensionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ExtensionType element """ + + c_tag = 'ExtensionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def extension_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionType_, xml_string) + + +class KeySharing(KeySharingType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:KeySharing element """ + + c_tag = 'KeySharing' + c_namespace = NAMESPACE + c_children = KeySharingType_.c_children.copy() + c_attributes = KeySharingType_.c_attributes.copy() + c_child_order = KeySharingType_.c_child_order[:] + c_cardinality = KeySharingType_.c_cardinality.copy() + + +def key_sharing_from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharing, xml_string) + + +class KeyStorage(KeyStorageType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:KeyStorage element """ + + c_tag = 'KeyStorage' + c_namespace = NAMESPACE + c_children = KeyStorageType_.c_children.copy() + c_attributes = KeyStorageType_.c_attributes.copy() + c_child_order = KeyStorageType_.c_child_order[:] + c_cardinality = KeyStorageType_.c_cardinality.copy() + + +def key_storage_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorage, xml_string) + + +class TimeSyncToken(TimeSyncTokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:TimeSyncToken element """ + + c_tag = 'TimeSyncToken' + c_namespace = NAMESPACE + c_children = TimeSyncTokenType_.c_children.copy() + c_attributes = TimeSyncTokenType_.c_attributes.copy() + c_child_order = TimeSyncTokenType_.c_child_order[:] + c_cardinality = TimeSyncTokenType_.c_cardinality.copy() + + +def time_sync_token_from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncToken, xml_string) + + +class Length(LengthType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Length element """ + + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = LengthType_.c_children.copy() + c_attributes = LengthType_.c_attributes.copy() + c_child_order = LengthType_.c_child_order[:] + c_cardinality = LengthType_.c_cardinality.copy() + + +def length_from_string(xml_string): + return saml2.create_class_from_xml_string(Length, xml_string) + + +class GoverningAgreementRef(GoverningAgreementRefType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:GoverningAgreementRef element """ + + c_tag = 'GoverningAgreementRef' + c_namespace = NAMESPACE + c_children = GoverningAgreementRefType_.c_children.copy() + c_attributes = GoverningAgreementRefType_.c_attributes.copy() + c_child_order = GoverningAgreementRefType_.c_child_order[:] + c_cardinality = GoverningAgreementRefType_.c_cardinality.copy() + + +def governing_agreement_ref_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRef, xml_string) + + +class GoverningAgreementsType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:GoverningAgreementsType element """ + + c_tag = 'GoverningAgreementsType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}GoverningAgreementRef'] = ( + 'governing_agreement_ref', [GoverningAgreementRef]) + c_cardinality['governing_agreement_ref'] = {"min": 1} + c_child_order.extend(['governing_agreement_ref']) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref or [] + + +def governing_agreements_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementsType_, + xml_string) + + +class RestrictedPasswordType_Length(RestrictedLengthType_): + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = RestrictedLengthType_.c_children.copy() + c_attributes = RestrictedLengthType_.c_attributes.copy() + c_child_order = RestrictedLengthType_.c_child_order[:] + c_cardinality = RestrictedLengthType_.c_cardinality.copy() + + +def restricted_password_type__length_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_Length, + xml_string) + + +class Alphabet(AlphabetType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Alphabet element """ + + c_tag = 'Alphabet' + c_namespace = NAMESPACE + c_children = AlphabetType_.c_children.copy() + c_attributes = AlphabetType_.c_attributes.copy() + c_child_order = AlphabetType_.c_child_order[:] + c_cardinality = AlphabetType_.c_cardinality.copy() + + +def alphabet_from_string(xml_string): + return saml2.create_class_from_xml_string(Alphabet, xml_string) + + +class ActivationLimitDuration(ActivationLimitDurationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimitDuration element """ + + c_tag = 'ActivationLimitDuration' + c_namespace = NAMESPACE + c_children = ActivationLimitDurationType_.c_children.copy() + c_attributes = ActivationLimitDurationType_.c_attributes.copy() + c_child_order = ActivationLimitDurationType_.c_child_order[:] + c_cardinality = ActivationLimitDurationType_.c_cardinality.copy() + + +def activation_limit_duration_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDuration, + xml_string) + + +class ActivationLimitUsages(ActivationLimitUsagesType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimitUsages element """ + + c_tag = 'ActivationLimitUsages' + c_namespace = NAMESPACE + c_children = ActivationLimitUsagesType_.c_children.copy() + c_attributes = ActivationLimitUsagesType_.c_attributes.copy() + c_child_order = ActivationLimitUsagesType_.c_child_order[:] + c_cardinality = ActivationLimitUsagesType_.c_cardinality.copy() + + +def activation_limit_usages_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsages, xml_string) + + +class ActivationLimitSession(ActivationLimitSessionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimitSession element """ + + c_tag = 'ActivationLimitSession' + c_namespace = NAMESPACE + c_children = ActivationLimitSessionType_.c_children.copy() + c_attributes = ActivationLimitSessionType_.c_attributes.copy() + c_child_order = ActivationLimitSessionType_.c_child_order[:] + c_cardinality = ActivationLimitSessionType_.c_cardinality.copy() + + +def activation_limit_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSession, + xml_string) + + +class Extension(ExtensionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Extension element """ + + c_tag = 'Extension' + c_namespace = NAMESPACE + c_children = ExtensionType_.c_children.copy() + c_attributes = ExtensionType_.c_attributes.copy() + c_child_order = ExtensionType_.c_child_order[:] + c_cardinality = ExtensionType_.c_cardinality.copy() + + +def extension_from_string(xml_string): + return saml2.create_class_from_xml_string(Extension, xml_string) + + +class SharedSecretChallengeResponseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SharedSecretChallengeResponseType element """ + + c_tag = 'SharedSecretChallengeResponseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['method'] = ('method', 'anyURI', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + method=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.method = method + + +def shared_secret_challenge_response_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + SharedSecretChallengeResponseType_, xml_string) + + +class PublicKeyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PublicKeyType element """ + + c_tag = 'PublicKeyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['keyValidation'] = ('key_validation', 'None', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + key_validation=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.key_validation = key_validation + + +def public_key_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PublicKeyType_, xml_string) + + +class GoverningAgreements(GoverningAgreementsType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:GoverningAgreements element """ + + c_tag = 'GoverningAgreements' + c_namespace = NAMESPACE + c_children = GoverningAgreementsType_.c_children.copy() + c_attributes = GoverningAgreementsType_.c_attributes.copy() + c_child_order = GoverningAgreementsType_.c_child_order[:] + c_cardinality = GoverningAgreementsType_.c_cardinality.copy() + + +def governing_agreements_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreements, xml_string) + + +class PasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PasswordType element """ + + c_tag = 'PasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'alphabet', 'generation', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PasswordType_, xml_string) + + +class RestrictedPasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:RestrictedPasswordType element """ + + c_tag = 'RestrictedPasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Length'] = ( + 'length', RestrictedPasswordType_Length) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'generation', 'extension']) + + def __init__(self, + length=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def restricted_password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_, + xml_string) + + +class TokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:TokenType element """ + + c_tag = 'TokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}TimeSyncToken'] = ( + 'time_sync_token', TimeSyncToken) + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['time_sync_token', 'extension']) + + def __init__(self, + time_sync_token=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.time_sync_token = time_sync_token + self.extension = extension or [] + + +def token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TokenType_, xml_string) + + +class ActivationLimitType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimitType element """ + + c_tag = 'ActivationLimitType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ActivationLimitDuration'] = ( + 'activation_limit_duration', ActivationLimitDuration) + c_cardinality['activation_limit_duration'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ActivationLimitUsages'] = ( + 'activation_limit_usages', ActivationLimitUsages) + c_cardinality['activation_limit_usages'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ActivationLimitSession'] = ( + 'activation_limit_session', ActivationLimitSession) + c_cardinality['activation_limit_session'] = {"min": 0, "max": 1} + c_child_order.extend( + ['activation_limit_duration', 'activation_limit_usages', + 'activation_limit_session']) + + def __init__(self, + activation_limit_duration=None, + activation_limit_usages=None, + activation_limit_session=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_limit_duration = activation_limit_duration + self.activation_limit_usages = activation_limit_usages + self.activation_limit_session = activation_limit_session + + +def activation_limit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitType_, xml_string) + + +class ExtensionOnlyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ExtensionOnlyType element """ + + c_tag = 'ExtensionOnlyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + + +def extension_only_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionOnlyType_, xml_string) + + +class WrittenConsent(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:WrittenConsent element """ + + c_tag = 'WrittenConsent' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def written_consent_from_string(xml_string): + return saml2.create_class_from_xml_string(WrittenConsent, xml_string) + + +class SubscriberLineNumber(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SubscriberLineNumber element """ + + c_tag = 'SubscriberLineNumber' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def subscriber_line_number_from_string(xml_string): + return saml2.create_class_from_xml_string(SubscriberLineNumber, xml_string) + + +class UserSuffix(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:UserSuffix element """ + + c_tag = 'UserSuffix' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def user_suffix_from_string(xml_string): + return saml2.create_class_from_xml_string(UserSuffix, xml_string) + + +class Password(PasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Password element """ + + c_tag = 'Password' + c_namespace = NAMESPACE + c_children = PasswordType_.c_children.copy() + c_attributes = PasswordType_.c_attributes.copy() + c_child_order = PasswordType_.c_child_order[:] + c_cardinality = PasswordType_.c_cardinality.copy() + + +def password_from_string(xml_string): + return saml2.create_class_from_xml_string(Password, xml_string) + + +class Token(TokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Token element """ + + c_tag = 'Token' + c_namespace = NAMESPACE + c_children = TokenType_.c_children.copy() + c_attributes = TokenType_.c_attributes.copy() + c_child_order = TokenType_.c_child_order[:] + c_cardinality = TokenType_.c_cardinality.copy() + + +def token_from_string(xml_string): + return saml2.create_class_from_xml_string(Token, xml_string) + + +class Smartcard(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Smartcard element """ + + c_tag = 'Smartcard' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def smartcard_from_string(xml_string): + return saml2.create_class_from_xml_string(Smartcard, xml_string) + + +class ActivationLimit(ActivationLimitType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationLimit element """ + + c_tag = 'ActivationLimit' + c_namespace = NAMESPACE + c_children = ActivationLimitType_.c_children.copy() + c_attributes = ActivationLimitType_.c_attributes.copy() + c_child_order = ActivationLimitType_.c_child_order[:] + c_cardinality = ActivationLimitType_.c_cardinality.copy() + + +def activation_limit_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimit, xml_string) + + +class PreviousSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PreviousSession element """ + + c_tag = 'PreviousSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def previous_session_from_string(xml_string): + return saml2.create_class_from_xml_string(PreviousSession, xml_string) + + +class ResumeSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ResumeSession element """ + + c_tag = 'ResumeSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def resume_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ResumeSession, xml_string) + + +class ZeroKnowledge(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ZeroKnowledge element """ + + c_tag = 'ZeroKnowledge' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def zero_knowledge_from_string(xml_string): + return saml2.create_class_from_xml_string(ZeroKnowledge, xml_string) + + +class SharedSecretChallengeResponse(SharedSecretChallengeResponseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SharedSecretChallengeResponse element """ + + c_tag = 'SharedSecretChallengeResponse' + c_namespace = NAMESPACE + c_children = SharedSecretChallengeResponseType_.c_children.copy() + c_attributes = SharedSecretChallengeResponseType_.c_attributes.copy() + c_child_order = SharedSecretChallengeResponseType_.c_child_order[:] + c_cardinality = SharedSecretChallengeResponseType_.c_cardinality.copy() + + +def shared_secret_challenge_response_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretChallengeResponse, + xml_string) + + +class DigSig(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:DigSig element """ + + c_tag = 'DigSig' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def dig_sig_from_string(xml_string): + return saml2.create_class_from_xml_string(DigSig, xml_string) + + +class AsymmetricDecryption(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AsymmetricDecryption element """ + + c_tag = 'AsymmetricDecryption' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_decryption_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricDecryption, xml_string) + + +class AsymmetricKeyAgreement(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AsymmetricKeyAgreement element """ + + c_tag = 'AsymmetricKeyAgreement' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_key_agreement_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricKeyAgreement, + xml_string) + + +class IPAddress(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:IPAddress element """ + + c_tag = 'IPAddress' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_address_from_string(xml_string): + return saml2.create_class_from_xml_string(IPAddress, xml_string) + + +class SharedSecretDynamicPlaintext(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SharedSecretDynamicPlaintext element """ + + c_tag = 'SharedSecretDynamicPlaintext' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def shared_secret_dynamic_plaintext_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretDynamicPlaintext, + xml_string) + + +class HTTP(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:HTTP element """ + + c_tag = 'HTTP' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def http_from_string(xml_string): + return saml2.create_class_from_xml_string(HTTP, xml_string) + + +class IPSec(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:IPSec element """ + + c_tag = 'IPSec' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_sec_from_string(xml_string): + return saml2.create_class_from_xml_string(IPSec, xml_string) + + +class WTLS(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:WTLS element """ + + c_tag = 'WTLS' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def wtls_from_string(xml_string): + return saml2.create_class_from_xml_string(WTLS, xml_string) + + +class MobileNetworkNoEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:MobileNetworkNoEncryption element """ + + c_tag = 'MobileNetworkNoEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_no_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkNoEncryption, + xml_string) + + +class MobileNetworkRadioEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:MobileNetworkRadioEncryption element """ + + c_tag = 'MobileNetworkRadioEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_radio_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkRadioEncryption, + xml_string) + + +class MobileNetworkEndToEndEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:MobileNetworkEndToEndEncryption element """ + + c_tag = 'MobileNetworkEndToEndEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_end_to_end_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkEndToEndEncryption, + xml_string) + + +class SSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SSL element """ + + c_tag = 'SSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ssl_from_string(xml_string): + return saml2.create_class_from_xml_string(SSL, xml_string) + + +class PSTN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PSTN element """ + + c_tag = 'PSTN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def pstn_from_string(xml_string): + return saml2.create_class_from_xml_string(PSTN, xml_string) + + +class ISDN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ISDN element """ + + c_tag = 'ISDN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def isdn_from_string(xml_string): + return saml2.create_class_from_xml_string(ISDN, xml_string) + + +class ADSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ADSL element """ + + c_tag = 'ADSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def adsl_from_string(xml_string): + return saml2.create_class_from_xml_string(ADSL, xml_string) + + +class SwitchAudit(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SwitchAudit element """ + + c_tag = 'SwitchAudit' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def switch_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SwitchAudit, xml_string) + + +class DeactivationCallCenter(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:DeactivationCallCenter element """ + + c_tag = 'DeactivationCallCenter' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def deactivation_call_center_from_string(xml_string): + return saml2.create_class_from_xml_string(DeactivationCallCenter, + xml_string) + + +class IdentificationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:IdentificationType element """ + + c_tag = 'IdentificationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}PhysicalVerification'] = ( + 'physical_verification', PhysicalVerification) + c_cardinality['physical_verification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}WrittenConsent'] = ( + 'written_consent', WrittenConsent) + c_cardinality['written_consent'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['nym'] = ('nym', NymType_, False) + c_child_order.extend( + ['physical_verification', 'written_consent', 'governing_agreements', + 'extension']) + + def __init__(self, + physical_verification=None, + written_consent=None, + governing_agreements=None, + extension=None, + nym=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.physical_verification = physical_verification + self.written_consent = written_consent + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.nym = nym + + +def identification_type__from_string(xml_string): + return saml2.create_class_from_xml_string(IdentificationType_, xml_string) + + +class AuthenticatorTransportProtocolType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AuthenticatorTransportProtocolType element """ + + c_tag = 'AuthenticatorTransportProtocolType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}HTTP'] = ( + 'http', HTTP) + c_cardinality['http'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}SSL'] = ( + 'ssl', SSL) + c_cardinality['ssl'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}MobileNetworkNoEncryption'] = ( + 'mobile_network_no_encryption', MobileNetworkNoEncryption) + c_cardinality['mobile_network_no_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}MobileNetworkRadioEncryption'] = ( + 'mobile_network_radio_encryption', MobileNetworkRadioEncryption) + c_cardinality['mobile_network_radio_encryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}MobileNetworkEndToEndEncryption'] = ( + 'mobile_network_end_to_end_encryption', MobileNetworkEndToEndEncryption) + c_cardinality['mobile_network_end_to_end_encryption'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}WTLS'] = ( + 'wtls', WTLS) + c_cardinality['wtls'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}IPSec'] = ( + 'ip_sec', IPSec) + c_cardinality['ip_sec'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}PSTN'] = ( + 'pstn', PSTN) + c_cardinality['pstn'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ISDN'] = ( + 'isdn', ISDN) + c_cardinality['isdn'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ADSL'] = ( + 'adsl', ADSL) + c_cardinality['adsl'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['http', 'ssl', 'mobile_network_no_encryption', + 'mobile_network_radio_encryption', + 'mobile_network_end_to_end_encryption', 'wtls', + 'ip_sec', 'pstn', 'isdn', 'adsl', 'extension']) + + def __init__(self, + http=None, + ssl=None, + mobile_network_no_encryption=None, + mobile_network_radio_encryption=None, + mobile_network_end_to_end_encryption=None, + wtls=None, + ip_sec=None, + pstn=None, + isdn=None, + adsl=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.http = http + self.ssl = ssl + self.mobile_network_no_encryption = mobile_network_no_encryption + self.mobile_network_radio_encryption = mobile_network_radio_encryption + self.mobile_network_end_to_end_encryption = mobile_network_end_to_end_encryption + self.wtls = wtls + self.ip_sec = ip_sec + self.pstn = pstn + self.isdn = isdn + self.adsl = adsl + self.extension = extension or [] + + +def authenticator_transport_protocol_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + AuthenticatorTransportProtocolType_, xml_string) + + +class RestrictedPassword(RestrictedPasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:RestrictedPassword element """ + + c_tag = 'RestrictedPassword' + c_namespace = NAMESPACE + c_children = RestrictedPasswordType_.c_children.copy() + c_attributes = RestrictedPasswordType_.c_attributes.copy() + c_child_order = RestrictedPasswordType_.c_child_order[:] + c_cardinality = RestrictedPasswordType_.c_cardinality.copy() + + +def restricted_password_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPassword, xml_string) + + +class ActivationPinType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationPinType element """ + + c_tag = 'ActivationPinType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ActivationLimit'] = ( + 'activation_limit', ActivationLimit) + c_cardinality['activation_limit'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['length', 'alphabet', 'generation', 'activation_limit', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + activation_limit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.activation_limit = activation_limit + self.extension = extension or [] + + +def activation_pin_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPinType_, xml_string) + + +class SecurityAuditType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SecurityAuditType element """ + + c_tag = 'SecurityAuditType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}SwitchAudit'] = ( + 'switch_audit', SwitchAudit) + c_cardinality['switch_audit'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['switch_audit', 'extension']) + + def __init__(self, + switch_audit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.switch_audit = switch_audit + self.extension = extension or [] + + +def security_audit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAuditType_, xml_string) + + +class AuthenticatorBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AuthenticatorBaseType element """ + + c_tag = 'AuthenticatorBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}RestrictedPassword'] = ( + + 'restricted_password', RestrictedPassword) + c_child_order.extend(['restricted_password']) + + def __init__(self, + restricted_password=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.restricted_password = restricted_password + + +def authenticator_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorBaseType_, + xml_string) + + +class Identification(IdentificationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Identification element """ + + c_tag = 'Identification' + c_namespace = NAMESPACE + c_children = IdentificationType_.c_children.copy() + c_attributes = IdentificationType_.c_attributes.copy() + c_child_order = IdentificationType_.c_child_order[:] + c_cardinality = IdentificationType_.c_cardinality.copy() + + +def identification_from_string(xml_string): + return saml2.create_class_from_xml_string(Identification, xml_string) + + +class ActivationPin(ActivationPinType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ActivationPin element """ + + c_tag = 'ActivationPin' + c_namespace = NAMESPACE + c_children = ActivationPinType_.c_children.copy() + c_attributes = ActivationPinType_.c_attributes.copy() + c_child_order = ActivationPinType_.c_child_order[:] + c_cardinality = ActivationPinType_.c_cardinality.copy() + + +def activation_pin_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPin, xml_string) + + +class Authenticator(AuthenticatorBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:Authenticator element """ + + c_tag = 'Authenticator' + c_namespace = NAMESPACE + c_children = AuthenticatorBaseType_.c_children.copy() + c_attributes = AuthenticatorBaseType_.c_attributes.copy() + c_child_order = AuthenticatorBaseType_.c_child_order[:] + c_cardinality = AuthenticatorBaseType_.c_cardinality.copy() + + +def authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(Authenticator, xml_string) + + +class AuthenticatorTransportProtocol(AuthenticatorTransportProtocolType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AuthenticatorTransportProtocol element """ + + c_tag = 'AuthenticatorTransportProtocol' + c_namespace = NAMESPACE + c_children = AuthenticatorTransportProtocolType_.c_children.copy() + c_attributes = AuthenticatorTransportProtocolType_.c_attributes.copy() + c_child_order = AuthenticatorTransportProtocolType_.c_child_order[:] + c_cardinality = AuthenticatorTransportProtocolType_.c_cardinality.copy() + + +def authenticator_transport_protocol_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorTransportProtocol, + xml_string) + + +class SecurityAudit(SecurityAuditType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SecurityAudit element """ + + c_tag = 'SecurityAudit' + c_namespace = NAMESPACE + c_children = SecurityAuditType_.c_children.copy() + c_attributes = SecurityAuditType_.c_attributes.copy() + c_child_order = SecurityAuditType_.c_child_order[:] + c_cardinality = SecurityAuditType_.c_cardinality.copy() + + +def security_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAudit, xml_string) + + +class OperationalProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:OperationalProtectionType element """ + + c_tag = 'OperationalProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}SecurityAudit'] = ( + 'security_audit', SecurityAudit) + c_cardinality['security_audit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}DeactivationCallCenter'] = ( + 'deactivation_call_center', DeactivationCallCenter) + c_cardinality['deactivation_call_center'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['security_audit', 'deactivation_call_center', 'extension']) + + def __init__(self, + security_audit=None, + deactivation_call_center=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.security_audit = security_audit + self.deactivation_call_center = deactivation_call_center + self.extension = extension or [] + + +def operational_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtectionType_, + xml_string) + + +class PrincipalAuthenticationMechanismType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PrincipalAuthenticationMechanismType element """ + + c_tag = 'PrincipalAuthenticationMechanismType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Token'] = ( + 'token', Token) + c_cardinality['token'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Smartcard'] = ( + 'smartcard', Smartcard) + c_cardinality['smartcard'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['preauth'] = ('preauth', 'integer', False) + c_child_order.extend( + ['password', 'restricted_password', 'token', 'smartcard', + 'activation_pin', 'extension']) + + def __init__(self, + password=None, + restricted_password=None, + token=None, + smartcard=None, + activation_pin=None, + extension=None, + preauth=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.password = password + self.restricted_password = restricted_password + self.token = token + self.smartcard = smartcard + self.activation_pin = activation_pin + self.extension = extension or [] + self.preauth = preauth + + +def principal_authentication_mechanism_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + PrincipalAuthenticationMechanismType_, xml_string) + + +class KeyActivationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:KeyActivationType element """ + + c_tag = 'KeyActivationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['activation_pin', 'extension']) + + def __init__(self, + activation_pin=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_pin = activation_pin + self.extension = extension or [] + + +def key_activation_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivationType_, xml_string) + + +class KeyActivation(KeyActivationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:KeyActivation element """ + + c_tag = 'KeyActivation' + c_namespace = NAMESPACE + c_children = KeyActivationType_.c_children.copy() + c_attributes = KeyActivationType_.c_attributes.copy() + c_child_order = KeyActivationType_.c_child_order[:] + c_cardinality = KeyActivationType_.c_cardinality.copy() + + +def key_activation_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivation, xml_string) + + +class PrincipalAuthenticationMechanism(PrincipalAuthenticationMechanismType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PrincipalAuthenticationMechanism element """ + + c_tag = 'PrincipalAuthenticationMechanism' + c_namespace = NAMESPACE + c_children = PrincipalAuthenticationMechanismType_.c_children.copy() + c_attributes = PrincipalAuthenticationMechanismType_.c_attributes.copy() + c_child_order = PrincipalAuthenticationMechanismType_.c_child_order[:] + c_cardinality = PrincipalAuthenticationMechanismType_.c_cardinality.copy() + + +def principal_authentication_mechanism_from_string(xml_string): + return saml2.create_class_from_xml_string(PrincipalAuthenticationMechanism, + xml_string) + + +class OperationalProtection(OperationalProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:OperationalProtection element """ + + c_tag = 'OperationalProtection' + c_namespace = NAMESPACE + c_children = OperationalProtectionType_.c_children.copy() + c_attributes = OperationalProtectionType_.c_attributes.copy() + c_child_order = OperationalProtectionType_.c_child_order[:] + c_cardinality = OperationalProtectionType_.c_cardinality.copy() + + +def operational_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtection, xml_string) + + +class PrivateKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PrivateKeyProtectionType element """ + + c_tag = 'PrivateKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}KeySharing'] = ( + 'key_sharing', KeySharing) + c_cardinality['key_sharing'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['key_activation', 'key_storage', 'key_sharing', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + key_sharing=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.key_sharing = key_sharing + self.extension = extension or [] + + +def private_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtectionType_, + xml_string) + + +class SecretKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SecretKeyProtectionType element """ + + c_tag = 'SecretKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['key_activation', 'key_storage', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.extension = extension or [] + + +def secret_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtectionType_, + xml_string) + + +class AuthnMethodBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AuthnMethodBaseType element """ + + c_tag = 'AuthnMethodBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}PrincipalAuthenticationMechanism'] = ( + + 'principal_authentication_mechanism', PrincipalAuthenticationMechanism) + c_cardinality['principal_authentication_mechanism'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Authenticator'] = ( + 'authenticator', Authenticator) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}AuthenticatorTransportProtocol'] = ( + 'authenticator_transport_protocol', AuthenticatorTransportProtocol) + c_cardinality['authenticator_transport_protocol'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['principal_authentication_mechanism', 'authenticator', + 'authenticator_transport_protocol', 'extension']) + + def __init__(self, + principal_authentication_mechanism=None, + authenticator=None, + authenticator_transport_protocol=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.principal_authentication_mechanism = principal_authentication_mechanism + self.authenticator = authenticator + self.authenticator_transport_protocol = authenticator_transport_protocol + self.extension = extension or [] + + +def authn_method_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethodBaseType_, xml_string) + + +class SecretKeyProtection(SecretKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:SecretKeyProtection element """ + + c_tag = 'SecretKeyProtection' + c_namespace = NAMESPACE + c_children = SecretKeyProtectionType_.c_children.copy() + c_attributes = SecretKeyProtectionType_.c_attributes.copy() + c_child_order = SecretKeyProtectionType_.c_child_order[:] + c_cardinality = SecretKeyProtectionType_.c_cardinality.copy() + + +def secret_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtection, xml_string) + + +class PrivateKeyProtection(PrivateKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:PrivateKeyProtection element """ + + c_tag = 'PrivateKeyProtection' + c_namespace = NAMESPACE + c_children = PrivateKeyProtectionType_.c_children.copy() + c_attributes = PrivateKeyProtectionType_.c_attributes.copy() + c_child_order = PrivateKeyProtectionType_.c_child_order[:] + c_cardinality = PrivateKeyProtectionType_.c_cardinality.copy() + + +def private_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtection, xml_string) + + +class AuthnMethod(AuthnMethodBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AuthnMethod element """ + + c_tag = 'AuthnMethod' + c_namespace = NAMESPACE + c_children = AuthnMethodBaseType_.c_children.copy() + c_attributes = AuthnMethodBaseType_.c_attributes.copy() + c_child_order = AuthnMethodBaseType_.c_child_order[:] + c_cardinality = AuthnMethodBaseType_.c_cardinality.copy() + + +def authn_method_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethod, xml_string) + + +class TechnicalProtectionBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:TechnicalProtectionBaseType element """ + + c_tag = 'TechnicalProtectionBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}PrivateKeyProtection'] = ( + 'private_key_protection', PrivateKeyProtection) + c_cardinality['private_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}SecretKeyProtection'] = ( + 'secret_key_protection', SecretKeyProtection) + c_cardinality['secret_key_protection'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['private_key_protection', 'secret_key_protection', 'extension']) + + def __init__(self, + private_key_protection=None, + secret_key_protection=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.private_key_protection = private_key_protection + self.secret_key_protection = secret_key_protection + self.extension = extension or [] + + +def technical_protection_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtectionBaseType_, + xml_string) + + +class TechnicalProtection(TechnicalProtectionBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:TechnicalProtection element """ + + c_tag = 'TechnicalProtection' + c_namespace = NAMESPACE + c_children = TechnicalProtectionBaseType_.c_children.copy() + c_attributes = TechnicalProtectionBaseType_.c_attributes.copy() + c_child_order = TechnicalProtectionBaseType_.c_child_order[:] + c_cardinality = TechnicalProtectionBaseType_.c_cardinality.copy() + + +def technical_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtection, xml_string) + + +class AuthnContextDeclarationBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AuthnContextDeclarationBaseType element """ + + c_tag = 'AuthnContextDeclarationBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Identification'] = ( + 'identification', Identification) + c_cardinality['identification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}TechnicalProtection'] = ( + 'technical_protection', TechnicalProtection) + c_cardinality['technical_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}OperationalProtection'] = ( + 'operational_protection', OperationalProtection) + c_cardinality['operational_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}AuthnMethod'] = ( + 'authn_method', AuthnMethod) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ID'] = ('id', 'ID', False) + c_child_order.extend( + ['identification', 'technical_protection', 'operational_protection', + 'authn_method', 'governing_agreements', 'extension']) + + def __init__(self, + identification=None, + technical_protection=None, + operational_protection=None, + authn_method=None, + governing_agreements=None, + extension=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.identification = identification + self.technical_protection = technical_protection + self.operational_protection = operational_protection + self.authn_method = authn_method + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.id = id + + +def authn_context_declaration_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnContextDeclarationBaseType_, + xml_string) + + +class AuthenticationContextDeclaration(AuthnContextDeclarationBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:AuthenticationContextDeclaration element """ + + c_tag = 'AuthenticationContextDeclaration' + c_namespace = NAMESPACE + c_children = AuthnContextDeclarationBaseType_.c_children.copy() + c_attributes = AuthnContextDeclarationBaseType_.c_attributes.copy() + c_child_order = AuthnContextDeclarationBaseType_.c_child_order[:] + c_cardinality = AuthnContextDeclarationBaseType_.c_cardinality.copy() + + +def authentication_context_declaration_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticationContextDeclaration, + xml_string) + + +#.................. +# ['ComplexAuthenticator', 'ComplexAuthenticatorType'] +class ComplexAuthenticatorType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ComplexAuthenticatorType element """ + + c_tag = 'ComplexAuthenticatorType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}PreviousSession'] = ( + 'previous_session', PreviousSession) + c_cardinality['previous_session'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ResumeSession'] = ( + 'resume_session', ResumeSession) + c_cardinality['resume_session'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}DigSig'] = ( + 'dig_sig', DigSig) + c_cardinality['dig_sig'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}RestrictedPassword' \ + ''] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ZeroKnowledge'] = ( + 'zero_knowledge', ZeroKnowledge) + c_cardinality['zero_knowledge'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}SharedSecretChallengeResponse'] = ( + 'shared_secret_challenge_response', SharedSecretChallengeResponse) + c_cardinality['shared_secret_challenge_response'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}SharedSecretDynamicPlaintext'] = ( + 'shared_secret_dynamic_plaintext', SharedSecretDynamicPlaintext) + c_cardinality['shared_secret_dynamic_plaintext'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}IPAddress'] = ( + 'ip_address', IPAddress) + c_cardinality['ip_address'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}AsymmetricDecryption'] = ( + 'asymmetric_decryption', AsymmetricDecryption) + c_cardinality['asymmetric_decryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}AsymmetricKeyAgreement'] = ( + 'asymmetric_key_agreement', AsymmetricKeyAgreement) + c_cardinality['asymmetric_key_agreement'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}SubscriberLineNumber'] = ( + 'subscriber_line_number', SubscriberLineNumber) + c_cardinality['subscriber_line_number'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}UserSuffix'] = ( + 'user_suffix', UserSuffix) + c_cardinality['user_suffix'] = {"min": 0, "max": 1} + c_cardinality['complex_authenticator'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['previous_session', 'resume_session', 'dig_sig', 'password', + 'restricted_password', 'zero_knowledge', + 'shared_secret_challenge_response', 'shared_secret_dynamic_plaintext', + 'ip_address', 'asymmetric_decryption', 'asymmetric_key_agreement', + 'subscriber_line_number', 'user_suffix', 'complex_authenticator', + 'extension']) + + def __init__(self, + previous_session=None, + resume_session=None, + dig_sig=None, + password=None, + restricted_password=None, + zero_knowledge=None, + shared_secret_challenge_response=None, + shared_secret_dynamic_plaintext=None, + ip_address=None, + asymmetric_decryption=None, + asymmetric_key_agreement=None, + subscriber_line_number=None, + user_suffix=None, + complex_authenticator=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.previous_session = previous_session + self.resume_session = resume_session + self.dig_sig = dig_sig + self.password = password + self.restricted_password = restricted_password + self.zero_knowledge = zero_knowledge + self.shared_secret_challenge_response = shared_secret_challenge_response + self.shared_secret_dynamic_plaintext = shared_secret_dynamic_plaintext + self.ip_address = ip_address + self.asymmetric_decryption = asymmetric_decryption + self.asymmetric_key_agreement = asymmetric_key_agreement + self.subscriber_line_number = subscriber_line_number + self.user_suffix = user_suffix + self.complex_authenticator = complex_authenticator + self.extension = extension or [] + + +def complex_authenticator_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticatorType_, + xml_string) + + +class ComplexAuthenticator(ComplexAuthenticatorType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:Password:ComplexAuthenticator element """ + + c_tag = 'ComplexAuthenticator' + c_namespace = NAMESPACE + c_children = ComplexAuthenticatorType_.c_children.copy() + c_attributes = ComplexAuthenticatorType_.c_attributes.copy() + c_child_order = ComplexAuthenticatorType_.c_child_order[:] + c_cardinality = ComplexAuthenticatorType_.c_cardinality.copy() + + +def complex_authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticator, xml_string) + + +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +ComplexAuthenticatorType_.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +ComplexAuthenticator.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:Password}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +ELEMENT_FROM_STRING = { + AuthenticationContextDeclaration.c_tag: authentication_context_declaration_from_string, + Identification.c_tag: identification_from_string, + PhysicalVerification.c_tag: physical_verification_from_string, + WrittenConsent.c_tag: written_consent_from_string, + TechnicalProtection.c_tag: technical_protection_from_string, + SecretKeyProtection.c_tag: secret_key_protection_from_string, + PrivateKeyProtection.c_tag: private_key_protection_from_string, + KeyActivation.c_tag: key_activation_from_string, + KeySharing.c_tag: key_sharing_from_string, + KeyStorage.c_tag: key_storage_from_string, + SubscriberLineNumber.c_tag: subscriber_line_number_from_string, + UserSuffix.c_tag: user_suffix_from_string, + Password.c_tag: password_from_string, + ActivationPin.c_tag: activation_pin_from_string, + Token.c_tag: token_from_string, + TimeSyncToken.c_tag: time_sync_token_from_string, + Smartcard.c_tag: smartcard_from_string, + Length.c_tag: length_from_string, + ActivationLimit.c_tag: activation_limit_from_string, + Generation.c_tag: generation_from_string, + AuthnMethod.c_tag: authn_method_from_string, + PrincipalAuthenticationMechanism.c_tag: principal_authentication_mechanism_from_string, + Authenticator.c_tag: authenticator_from_string, + ComplexAuthenticator.c_tag: complex_authenticator_from_string, + PreviousSession.c_tag: previous_session_from_string, + ResumeSession.c_tag: resume_session_from_string, + ZeroKnowledge.c_tag: zero_knowledge_from_string, + SharedSecretChallengeResponse.c_tag: shared_secret_challenge_response_from_string, + SharedSecretChallengeResponseType_.c_tag: shared_secret_challenge_response_type__from_string, + DigSig.c_tag: dig_sig_from_string, + AsymmetricDecryption.c_tag: asymmetric_decryption_from_string, + AsymmetricKeyAgreement.c_tag: asymmetric_key_agreement_from_string, + PublicKeyType_.c_tag: public_key_type__from_string, + IPAddress.c_tag: ip_address_from_string, + SharedSecretDynamicPlaintext.c_tag: shared_secret_dynamic_plaintext_from_string, + AuthenticatorTransportProtocol.c_tag: authenticator_transport_protocol_from_string, + HTTP.c_tag: http_from_string, + IPSec.c_tag: ip_sec_from_string, + WTLS.c_tag: wtls_from_string, + MobileNetworkNoEncryption.c_tag: mobile_network_no_encryption_from_string, + MobileNetworkRadioEncryption.c_tag: mobile_network_radio_encryption_from_string, + MobileNetworkEndToEndEncryption.c_tag: mobile_network_end_to_end_encryption_from_string, + SSL.c_tag: ssl_from_string, + PSTN.c_tag: pstn_from_string, + ISDN.c_tag: isdn_from_string, + ADSL.c_tag: adsl_from_string, + OperationalProtection.c_tag: operational_protection_from_string, + SecurityAudit.c_tag: security_audit_from_string, + SwitchAudit.c_tag: switch_audit_from_string, + DeactivationCallCenter.c_tag: deactivation_call_center_from_string, + GoverningAgreements.c_tag: governing_agreements_from_string, + GoverningAgreementRef.c_tag: governing_agreement_ref_from_string, + NymType_.c_tag: nym_type__from_string, + IdentificationType_.c_tag: identification_type__from_string, + TechnicalProtectionBaseType_.c_tag: technical_protection_base_type__from_string, + OperationalProtectionType_.c_tag: operational_protection_type__from_string, + GoverningAgreementsType_.c_tag: governing_agreements_type__from_string, + GoverningAgreementRefType_.c_tag: governing_agreement_ref_type__from_string, + PrincipalAuthenticationMechanismType_.c_tag: principal_authentication_mechanism_type__from_string, + ComplexAuthenticatorType_.c_tag: complex_authenticator_type__from_string, + AuthenticatorTransportProtocolType_.c_tag: authenticator_transport_protocol_type__from_string, + KeyActivationType_.c_tag: key_activation_type__from_string, + KeySharingType_.c_tag: key_sharing_type__from_string, + PrivateKeyProtectionType_.c_tag: private_key_protection_type__from_string, + PasswordType_.c_tag: password_type__from_string, + RestrictedPassword.c_tag: restricted_password_from_string, + RestrictedPasswordType_.c_tag: restricted_password_type__from_string, + RestrictedLengthType_.c_tag: restricted_length_type__from_string, + ActivationPinType_.c_tag: activation_pin_type__from_string, + Alphabet.c_tag: alphabet_from_string, + AlphabetType_.c_tag: alphabet_type__from_string, + TokenType_.c_tag: token_type__from_string, + DeviceTypeType_.c_tag: device_type_type__from_string, + BooleanType_.c_tag: boolean_type__from_string, + TimeSyncTokenType_.c_tag: time_sync_token_type__from_string, + ActivationLimitType_.c_tag: activation_limit_type__from_string, + ActivationLimitDuration.c_tag: activation_limit_duration_from_string, + ActivationLimitUsages.c_tag: activation_limit_usages_from_string, + ActivationLimitSession.c_tag: activation_limit_session_from_string, + ActivationLimitDurationType_.c_tag: activation_limit_duration_type__from_string, + ActivationLimitUsagesType_.c_tag: activation_limit_usages_type__from_string, + ActivationLimitSessionType_.c_tag: activation_limit_session_type__from_string, + LengthType_.c_tag: length_type__from_string, + MediumType_.c_tag: medium_type__from_string, + KeyStorageType_.c_tag: key_storage_type__from_string, + SecretKeyProtectionType_.c_tag: secret_key_protection_type__from_string, + SecurityAuditType_.c_tag: security_audit_type__from_string, + ExtensionOnlyType_.c_tag: extension_only_type__from_string, + Extension.c_tag: extension_from_string, + ExtensionType_.c_tag: extension_type__from_string, + AuthnContextDeclarationBaseType_.c_tag: authn_context_declaration_base_type__from_string, + AuthnMethodBaseType_.c_tag: authn_method_base_type__from_string, + AuthenticatorBaseType_.c_tag: authenticator_base_type__from_string, +} + +ELEMENT_BY_TAG = { + 'AuthenticationContextDeclaration': AuthenticationContextDeclaration, + 'Identification': Identification, + 'PhysicalVerification': PhysicalVerification, + 'WrittenConsent': WrittenConsent, + 'TechnicalProtection': TechnicalProtection, + 'SecretKeyProtection': SecretKeyProtection, + 'PrivateKeyProtection': PrivateKeyProtection, + 'KeyActivation': KeyActivation, + 'KeySharing': KeySharing, + 'KeyStorage': KeyStorage, + 'SubscriberLineNumber': SubscriberLineNumber, + 'UserSuffix': UserSuffix, + 'Password': Password, + 'ActivationPin': ActivationPin, + 'Token': Token, + 'TimeSyncToken': TimeSyncToken, + 'Smartcard': Smartcard, + 'Length': Length, + 'ActivationLimit': ActivationLimit, + 'Generation': Generation, + 'AuthnMethod': AuthnMethod, + 'PrincipalAuthenticationMechanism': PrincipalAuthenticationMechanism, + 'Authenticator': Authenticator, + 'ComplexAuthenticator': ComplexAuthenticator, + 'PreviousSession': PreviousSession, + 'ResumeSession': ResumeSession, + 'ZeroKnowledge': ZeroKnowledge, + 'SharedSecretChallengeResponse': SharedSecretChallengeResponse, + 'SharedSecretChallengeResponseType': SharedSecretChallengeResponseType_, + 'DigSig': DigSig, + 'AsymmetricDecryption': AsymmetricDecryption, + 'AsymmetricKeyAgreement': AsymmetricKeyAgreement, + 'PublicKeyType': PublicKeyType_, + 'IPAddress': IPAddress, + 'SharedSecretDynamicPlaintext': SharedSecretDynamicPlaintext, + 'AuthenticatorTransportProtocol': AuthenticatorTransportProtocol, + 'HTTP': HTTP, + 'IPSec': IPSec, + 'WTLS': WTLS, + 'MobileNetworkNoEncryption': MobileNetworkNoEncryption, + 'MobileNetworkRadioEncryption': MobileNetworkRadioEncryption, + 'MobileNetworkEndToEndEncryption': MobileNetworkEndToEndEncryption, + 'SSL': SSL, + 'PSTN': PSTN, + 'ISDN': ISDN, + 'ADSL': ADSL, + 'OperationalProtection': OperationalProtection, + 'SecurityAudit': SecurityAudit, + 'SwitchAudit': SwitchAudit, + 'DeactivationCallCenter': DeactivationCallCenter, + 'GoverningAgreements': GoverningAgreements, + 'GoverningAgreementRef': GoverningAgreementRef, + 'nymType': NymType_, + 'IdentificationType': IdentificationType_, + 'TechnicalProtectionBaseType': TechnicalProtectionBaseType_, + 'OperationalProtectionType': OperationalProtectionType_, + 'GoverningAgreementsType': GoverningAgreementsType_, + 'GoverningAgreementRefType': GoverningAgreementRefType_, + 'PrincipalAuthenticationMechanismType': PrincipalAuthenticationMechanismType_, + 'ComplexAuthenticatorType': ComplexAuthenticatorType_, + 'AuthenticatorTransportProtocolType': AuthenticatorTransportProtocolType_, + 'KeyActivationType': KeyActivationType_, + 'KeySharingType': KeySharingType_, + 'PrivateKeyProtectionType': PrivateKeyProtectionType_, + 'PasswordType': PasswordType_, + 'RestrictedPassword': RestrictedPassword, + 'RestrictedPasswordType': RestrictedPasswordType_, + 'RestrictedLengthType': RestrictedLengthType_, + 'ActivationPinType': ActivationPinType_, + 'Alphabet': Alphabet, + 'AlphabetType': AlphabetType_, + 'TokenType': TokenType_, + 'DeviceTypeType': DeviceTypeType_, + 'booleanType': BooleanType_, + 'TimeSyncTokenType': TimeSyncTokenType_, + 'ActivationLimitType': ActivationLimitType_, + 'ActivationLimitDuration': ActivationLimitDuration, + 'ActivationLimitUsages': ActivationLimitUsages, + 'ActivationLimitSession': ActivationLimitSession, + 'ActivationLimitDurationType': ActivationLimitDurationType_, + 'ActivationLimitUsagesType': ActivationLimitUsagesType_, + 'ActivationLimitSessionType': ActivationLimitSessionType_, + 'LengthType': LengthType_, + 'mediumType': MediumType_, + 'KeyStorageType': KeyStorageType_, + 'SecretKeyProtectionType': SecretKeyProtectionType_, + 'SecurityAuditType': SecurityAuditType_, + 'ExtensionOnlyType': ExtensionOnlyType_, + 'Extension': Extension, + 'ExtensionType': ExtensionType_, + 'AuthnContextDeclarationBaseType': AuthnContextDeclarationBaseType_, + 'AuthnMethodBaseType': AuthnMethodBaseType_, + 'AuthenticatorBaseType': AuthenticatorBaseType_, +} + + +def factory(tag, **kwargs): + return ELEMENT_BY_TAG[tag](**kwargs) + diff --git a/src/saml2/authn_context/sslcert.py b/src/saml2/authn_context/sslcert.py new file mode 100644 index 00000000..80dd2b8b --- /dev/null +++ b/src/saml2/authn_context/sslcert.py @@ -0,0 +1,2549 @@ +#!/usr/bin/env python + +# +# Generated Sun Apr 21 10:44:16 2013 by parse_xsd.py version 0.5. +# + +""" +This class indicates that the principal authenticated by means of a client +certificate, secured with the SSL/TLS transport. +""" + +import saml2 +from saml2 import SamlBase + + +NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient' + + +class PhysicalVerification(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PhysicalVerification element """ + + c_tag = 'PhysicalVerification' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['credentialLevel'] = ('credential_level', 'None', False) + + def __init__(self, + credential_level=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.credential_level = credential_level + + +def physical_verification_from_string(xml_string): + return saml2.create_class_from_xml_string(PhysicalVerification, xml_string) + + +class Generation(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Generation element """ + + c_tag = 'Generation' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['mechanism'] = ('mechanism', 'None', True) + + def __init__(self, + mechanism=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.mechanism = mechanism + + +def generation_from_string(xml_string): + return saml2.create_class_from_xml_string(Generation, xml_string) + + +class NymType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:nymType element """ + + c_tag = 'nymType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['anonymity', 'verinymity', 'pseudonymity']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def nym_type__from_string(xml_string): + return saml2.create_class_from_xml_string(NymType_, xml_string) + + +class GoverningAgreementRefType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:GoverningAgreementRefType element """ + + c_tag = 'GoverningAgreementRefType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['governingAgreementRef'] = ( + 'governing_agreement_ref', 'anyURI', True) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref + + +def governing_agreement_ref_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRefType_, + xml_string) + + +class KeySharingType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:KeySharingType element """ + + c_tag = 'KeySharingType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['sharing'] = ('sharing', 'boolean', True) + + def __init__(self, + sharing=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.sharing = sharing + + +def key_sharing_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharingType_, xml_string) + + +class RestrictedLengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:RestrictedLengthType element """ + + c_tag = 'RestrictedLengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'None', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def restricted_length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedLengthType_, xml_string) + + +class AlphabetType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AlphabetType element """ + + c_tag = 'AlphabetType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['requiredChars'] = ('required_chars', 'string', True) + c_attributes['excludedChars'] = ('excluded_chars', 'string', False) + c_attributes['case'] = ('case', 'string', False) + + def __init__(self, + required_chars=None, + excluded_chars=None, + case=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.required_chars = required_chars + self.excluded_chars = excluded_chars + self.case = case + + +def alphabet_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AlphabetType_, xml_string) + + +class DeviceTypeType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:DeviceTypeType element """ + + c_tag = 'DeviceTypeType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['hardware', 'software']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def device_type_type__from_string(xml_string): + return saml2.create_class_from_xml_string(DeviceTypeType_, xml_string) + + +class BooleanType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:booleanType element """ + + c_tag = 'booleanType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', 'enumeration': ['true', 'false']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def boolean_type__from_string(xml_string): + return saml2.create_class_from_xml_string(BooleanType_, xml_string) + + +class TimeSyncTokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:TimeSyncTokenType element """ + + c_tag = 'TimeSyncTokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['DeviceType'] = ('device_type', DeviceTypeType_, True) + c_attributes['SeedLength'] = ('seed_length', 'integer', True) + c_attributes['DeviceInHand'] = ('device_in_hand', BooleanType_, True) + + def __init__(self, + device_type=None, + seed_length=None, + device_in_hand=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.device_type = device_type + self.seed_length = seed_length + self.device_in_hand = device_in_hand + + +def time_sync_token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncTokenType_, xml_string) + + +class ActivationLimitDurationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimitDurationType element """ + + c_tag = 'ActivationLimitDurationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['duration'] = ('duration', 'duration', True) + + def __init__(self, + duration=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.duration = duration + + +def activation_limit_duration_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDurationType_, + xml_string) + + +class ActivationLimitUsagesType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimitUsagesType element """ + + c_tag = 'ActivationLimitUsagesType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['number'] = ('number', 'integer', True) + + def __init__(self, + number=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.number = number + + +def activation_limit_usages_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsagesType_, + xml_string) + + +class ActivationLimitSessionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimitSessionType element """ + + c_tag = 'ActivationLimitSessionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def activation_limit_session_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSessionType_, + xml_string) + + +class LengthType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:LengthType element """ + + c_tag = 'LengthType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['min'] = ('min', 'integer', True) + c_attributes['max'] = ('max', 'integer', False) + + def __init__(self, + min=None, + max=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.min = min + self.max = max + + +def length_type__from_string(xml_string): + return saml2.create_class_from_xml_string(LengthType_, xml_string) + + +class MediumType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:mediumType element """ + + c_tag = 'mediumType' + c_namespace = NAMESPACE + c_value_type = {'base': 'xs:NMTOKEN', + 'enumeration': ['memory', 'smartcard', 'token', + 'MobileDevice', 'MobileAuthCard']} + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def medium_type__from_string(xml_string): + return saml2.create_class_from_xml_string(MediumType_, xml_string) + + +class KeyStorageType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:KeyStorageType element """ + + c_tag = 'KeyStorageType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['medium'] = ('medium', MediumType_, True) + + def __init__(self, + medium=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.medium = medium + + +def key_storage_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorageType_, xml_string) + + +class ExtensionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ExtensionType element """ + + c_tag = 'ExtensionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + + +def extension_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionType_, xml_string) + + +class PublicKeyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PublicKeyType element """ + + c_tag = 'PublicKeyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_attributes['keyValidation'] = ('key_validation', 'anyURI', False) + + def __init__(self, + key_validation="urn:oasis:names:tc:SAML:2.0:ac:classes:X509", + text=None, + extension_elements=None, + extension_attributes=None): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes) + + +def public_key_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PublicKeyType_, xml_string) + + +class KeySharing(KeySharingType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:KeySharing element """ + + c_tag = 'KeySharing' + c_namespace = NAMESPACE + c_children = KeySharingType_.c_children.copy() + c_attributes = KeySharingType_.c_attributes.copy() + c_child_order = KeySharingType_.c_child_order[:] + c_cardinality = KeySharingType_.c_cardinality.copy() + + +def key_sharing_from_string(xml_string): + return saml2.create_class_from_xml_string(KeySharing, xml_string) + + +class KeyStorage(KeyStorageType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:KeyStorage element """ + + c_tag = 'KeyStorage' + c_namespace = NAMESPACE + c_children = KeyStorageType_.c_children.copy() + c_attributes = KeyStorageType_.c_attributes.copy() + c_child_order = KeyStorageType_.c_child_order[:] + c_cardinality = KeyStorageType_.c_cardinality.copy() + + +def key_storage_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyStorage, xml_string) + + +class TimeSyncToken(TimeSyncTokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:TimeSyncToken element """ + + c_tag = 'TimeSyncToken' + c_namespace = NAMESPACE + c_children = TimeSyncTokenType_.c_children.copy() + c_attributes = TimeSyncTokenType_.c_attributes.copy() + c_child_order = TimeSyncTokenType_.c_child_order[:] + c_cardinality = TimeSyncTokenType_.c_cardinality.copy() + + +def time_sync_token_from_string(xml_string): + return saml2.create_class_from_xml_string(TimeSyncToken, xml_string) + + +class Length(LengthType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Length element """ + + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = LengthType_.c_children.copy() + c_attributes = LengthType_.c_attributes.copy() + c_child_order = LengthType_.c_child_order[:] + c_cardinality = LengthType_.c_cardinality.copy() + + +def length_from_string(xml_string): + return saml2.create_class_from_xml_string(Length, xml_string) + + +class DigSig(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:DigSig element """ + + c_tag = 'DigSig' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def dig_sig_from_string(xml_string): + return saml2.create_class_from_xml_string(DigSig, xml_string) + + +class AsymmetricDecryption(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AsymmetricDecryption element """ + + c_tag = 'AsymmetricDecryption' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_decryption_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricDecryption, xml_string) + + +class AsymmetricKeyAgreement(PublicKeyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AsymmetricKeyAgreement element """ + + c_tag = 'AsymmetricKeyAgreement' + c_namespace = NAMESPACE + c_children = PublicKeyType_.c_children.copy() + c_attributes = PublicKeyType_.c_attributes.copy() + c_child_order = PublicKeyType_.c_child_order[:] + c_cardinality = PublicKeyType_.c_cardinality.copy() + + +def asymmetric_key_agreement_from_string(xml_string): + return saml2.create_class_from_xml_string(AsymmetricKeyAgreement, + xml_string) + + +class GoverningAgreementRef(GoverningAgreementRefType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:GoverningAgreementRef element """ + + c_tag = 'GoverningAgreementRef' + c_namespace = NAMESPACE + c_children = GoverningAgreementRefType_.c_children.copy() + c_attributes = GoverningAgreementRefType_.c_attributes.copy() + c_child_order = GoverningAgreementRefType_.c_child_order[:] + c_cardinality = GoverningAgreementRefType_.c_cardinality.copy() + + +def governing_agreement_ref_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementRef, xml_string) + + +class GoverningAgreementsType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:GoverningAgreementsType element """ + + c_tag = 'GoverningAgreementsType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}GoverningAgreementRef'] = ( + 'governing_agreement_ref', [GoverningAgreementRef]) + c_cardinality['governing_agreement_ref'] = {"min": 1} + c_child_order.extend(['governing_agreement_ref']) + + def __init__(self, + governing_agreement_ref=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.governing_agreement_ref = governing_agreement_ref or [] + + +def governing_agreements_type__from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreementsType_, + xml_string) + + +class RestrictedPasswordType_Length(RestrictedLengthType_): + c_tag = 'Length' + c_namespace = NAMESPACE + c_children = RestrictedLengthType_.c_children.copy() + c_attributes = RestrictedLengthType_.c_attributes.copy() + c_child_order = RestrictedLengthType_.c_child_order[:] + c_cardinality = RestrictedLengthType_.c_cardinality.copy() + + +def restricted_password_type__length_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_Length, + xml_string) + + +class Alphabet(AlphabetType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Alphabet element """ + + c_tag = 'Alphabet' + c_namespace = NAMESPACE + c_children = AlphabetType_.c_children.copy() + c_attributes = AlphabetType_.c_attributes.copy() + c_child_order = AlphabetType_.c_child_order[:] + c_cardinality = AlphabetType_.c_cardinality.copy() + + +def alphabet_from_string(xml_string): + return saml2.create_class_from_xml_string(Alphabet, xml_string) + + +class ActivationLimitDuration(ActivationLimitDurationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimitDuration element """ + + c_tag = 'ActivationLimitDuration' + c_namespace = NAMESPACE + c_children = ActivationLimitDurationType_.c_children.copy() + c_attributes = ActivationLimitDurationType_.c_attributes.copy() + c_child_order = ActivationLimitDurationType_.c_child_order[:] + c_cardinality = ActivationLimitDurationType_.c_cardinality.copy() + + +def activation_limit_duration_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitDuration, + xml_string) + + +class ActivationLimitUsages(ActivationLimitUsagesType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimitUsages element """ + + c_tag = 'ActivationLimitUsages' + c_namespace = NAMESPACE + c_children = ActivationLimitUsagesType_.c_children.copy() + c_attributes = ActivationLimitUsagesType_.c_attributes.copy() + c_child_order = ActivationLimitUsagesType_.c_child_order[:] + c_cardinality = ActivationLimitUsagesType_.c_cardinality.copy() + + +def activation_limit_usages_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitUsages, xml_string) + + +class ActivationLimitSession(ActivationLimitSessionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimitSession element """ + + c_tag = 'ActivationLimitSession' + c_namespace = NAMESPACE + c_children = ActivationLimitSessionType_.c_children.copy() + c_attributes = ActivationLimitSessionType_.c_attributes.copy() + c_child_order = ActivationLimitSessionType_.c_child_order[:] + c_cardinality = ActivationLimitSessionType_.c_cardinality.copy() + + +def activation_limit_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitSession, + xml_string) + + +class Extension(ExtensionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Extension element """ + + c_tag = 'Extension' + c_namespace = NAMESPACE + c_children = ExtensionType_.c_children.copy() + c_attributes = ExtensionType_.c_attributes.copy() + c_child_order = ExtensionType_.c_child_order[:] + c_cardinality = ExtensionType_.c_cardinality.copy() + + +def extension_from_string(xml_string): + return saml2.create_class_from_xml_string(Extension, xml_string) + + +class AuthenticatorBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AuthenticatorBaseType element """ + + c_tag = 'AuthenticatorBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}DigSig'] = ( + 'dig_sig', DigSig) + c_child_order.extend(['dig_sig']) + + def __init__(self, + dig_sig=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.dig_sig = dig_sig + + +def authenticator_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorBaseType_, + xml_string) + + +class Authenticator(AuthenticatorBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Authenticator element """ + + c_tag = 'Authenticator' + c_namespace = NAMESPACE + c_children = AuthenticatorBaseType_.c_children.copy() + c_attributes = AuthenticatorBaseType_.c_attributes.copy() + c_child_order = AuthenticatorBaseType_.c_child_order[:] + c_cardinality = AuthenticatorBaseType_.c_cardinality.copy() + + +def authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(Authenticator, xml_string) + + +class SharedSecretChallengeResponseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SharedSecretChallengeResponseType element """ + + c_tag = 'SharedSecretChallengeResponseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['method'] = ('method', 'anyURI', False) + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + method=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + self.method = method + + +def shared_secret_challenge_response_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + SharedSecretChallengeResponseType_, xml_string) + + +class GoverningAgreements(GoverningAgreementsType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:GoverningAgreements element """ + + c_tag = 'GoverningAgreements' + c_namespace = NAMESPACE + c_children = GoverningAgreementsType_.c_children.copy() + c_attributes = GoverningAgreementsType_.c_attributes.copy() + c_child_order = GoverningAgreementsType_.c_child_order[:] + c_cardinality = GoverningAgreementsType_.c_cardinality.copy() + + +def governing_agreements_from_string(xml_string): + return saml2.create_class_from_xml_string(GoverningAgreements, xml_string) + + +class PasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PasswordType element """ + + c_tag = 'PasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'alphabet', 'generation', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PasswordType_, xml_string) + + +class RestrictedPasswordType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:RestrictedPasswordType element """ + + c_tag = 'RestrictedPasswordType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Length'] = ( + 'length', RestrictedPasswordType_Length) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ExternalVerification'] = ( + 'external_verification', 'anyURI', False) + c_child_order.extend(['length', 'generation', 'extension']) + + def __init__(self, + length=None, + generation=None, + extension=None, + external_verification=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.generation = generation + self.extension = extension or [] + self.external_verification = external_verification + + +def restricted_password_type__from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPasswordType_, + xml_string) + + +class TokenType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:TokenType element """ + + c_tag = 'TokenType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}TimeSyncToken'] = ( + 'time_sync_token', TimeSyncToken) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['time_sync_token', 'extension']) + + def __init__(self, + time_sync_token=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.time_sync_token = time_sync_token + self.extension = extension or [] + + +def token_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TokenType_, xml_string) + + +class ActivationLimitType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimitType element """ + + c_tag = 'ActivationLimitType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ActivationLimitDuration'] = ( + 'activation_limit_duration', ActivationLimitDuration) + c_cardinality['activation_limit_duration'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ActivationLimitUsages'] = ( + 'activation_limit_usages', ActivationLimitUsages) + c_cardinality['activation_limit_usages'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ActivationLimitSession'] = ( + 'activation_limit_session', ActivationLimitSession) + c_cardinality['activation_limit_session'] = {"min": 0, "max": 1} + c_child_order.extend( + ['activation_limit_duration', 'activation_limit_usages', + 'activation_limit_session']) + + def __init__(self, + activation_limit_duration=None, + activation_limit_usages=None, + activation_limit_session=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_limit_duration = activation_limit_duration + self.activation_limit_usages = activation_limit_usages + self.activation_limit_session = activation_limit_session + + +def activation_limit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimitType_, xml_string) + + +class ExtensionOnlyType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ExtensionOnlyType element """ + + c_tag = 'ExtensionOnlyType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['extension']) + + def __init__(self, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.extension = extension or [] + + +def extension_only_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ExtensionOnlyType_, xml_string) + + +class WrittenConsent(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:WrittenConsent element """ + + c_tag = 'WrittenConsent' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def written_consent_from_string(xml_string): + return saml2.create_class_from_xml_string(WrittenConsent, xml_string) + + +class SubscriberLineNumber(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SubscriberLineNumber element """ + + c_tag = 'SubscriberLineNumber' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def subscriber_line_number_from_string(xml_string): + return saml2.create_class_from_xml_string(SubscriberLineNumber, xml_string) + + +class UserSuffix(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:UserSuffix element """ + + c_tag = 'UserSuffix' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def user_suffix_from_string(xml_string): + return saml2.create_class_from_xml_string(UserSuffix, xml_string) + + +class Password(PasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Password element """ + + c_tag = 'Password' + c_namespace = NAMESPACE + c_children = PasswordType_.c_children.copy() + c_attributes = PasswordType_.c_attributes.copy() + c_child_order = PasswordType_.c_child_order[:] + c_cardinality = PasswordType_.c_cardinality.copy() + + +def password_from_string(xml_string): + return saml2.create_class_from_xml_string(Password, xml_string) + + +class Token(TokenType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Token element """ + + c_tag = 'Token' + c_namespace = NAMESPACE + c_children = TokenType_.c_children.copy() + c_attributes = TokenType_.c_attributes.copy() + c_child_order = TokenType_.c_child_order[:] + c_cardinality = TokenType_.c_cardinality.copy() + + +def token_from_string(xml_string): + return saml2.create_class_from_xml_string(Token, xml_string) + + +class Smartcard(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Smartcard element """ + + c_tag = 'Smartcard' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def smartcard_from_string(xml_string): + return saml2.create_class_from_xml_string(Smartcard, xml_string) + + +class ActivationLimit(ActivationLimitType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationLimit element """ + + c_tag = 'ActivationLimit' + c_namespace = NAMESPACE + c_children = ActivationLimitType_.c_children.copy() + c_attributes = ActivationLimitType_.c_attributes.copy() + c_child_order = ActivationLimitType_.c_child_order[:] + c_cardinality = ActivationLimitType_.c_cardinality.copy() + + +def activation_limit_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationLimit, xml_string) + + +class PreviousSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PreviousSession element """ + + c_tag = 'PreviousSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def previous_session_from_string(xml_string): + return saml2.create_class_from_xml_string(PreviousSession, xml_string) + + +class ResumeSession(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ResumeSession element """ + + c_tag = 'ResumeSession' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def resume_session_from_string(xml_string): + return saml2.create_class_from_xml_string(ResumeSession, xml_string) + + +class ZeroKnowledge(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ZeroKnowledge element """ + + c_tag = 'ZeroKnowledge' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def zero_knowledge_from_string(xml_string): + return saml2.create_class_from_xml_string(ZeroKnowledge, xml_string) + + +class SharedSecretChallengeResponse(SharedSecretChallengeResponseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SharedSecretChallengeResponse element """ + + c_tag = 'SharedSecretChallengeResponse' + c_namespace = NAMESPACE + c_children = SharedSecretChallengeResponseType_.c_children.copy() + c_attributes = SharedSecretChallengeResponseType_.c_attributes.copy() + c_child_order = SharedSecretChallengeResponseType_.c_child_order[:] + c_cardinality = SharedSecretChallengeResponseType_.c_cardinality.copy() + + +def shared_secret_challenge_response_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretChallengeResponse, + xml_string) + + +class IPAddress(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:IPAddress element """ + + c_tag = 'IPAddress' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_address_from_string(xml_string): + return saml2.create_class_from_xml_string(IPAddress, xml_string) + + +class SharedSecretDynamicPlaintext(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SharedSecretDynamicPlaintext element """ + + c_tag = 'SharedSecretDynamicPlaintext' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def shared_secret_dynamic_plaintext_from_string(xml_string): + return saml2.create_class_from_xml_string(SharedSecretDynamicPlaintext, + xml_string) + + +class HTTP(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:HTTP element """ + + c_tag = 'HTTP' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def http_from_string(xml_string): + return saml2.create_class_from_xml_string(HTTP, xml_string) + + +class IPSec(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:IPSec element """ + + c_tag = 'IPSec' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ip_sec_from_string(xml_string): + return saml2.create_class_from_xml_string(IPSec, xml_string) + + +class WTLS(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:WTLS element """ + + c_tag = 'WTLS' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def wtls_from_string(xml_string): + return saml2.create_class_from_xml_string(WTLS, xml_string) + + +class MobileNetworkNoEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:MobileNetworkNoEncryption element """ + + c_tag = 'MobileNetworkNoEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_no_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkNoEncryption, + xml_string) + + +class MobileNetworkRadioEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:MobileNetworkRadioEncryption element """ + + c_tag = 'MobileNetworkRadioEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_radio_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkRadioEncryption, + xml_string) + + +class MobileNetworkEndToEndEncryption(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:MobileNetworkEndToEndEncryption element """ + + c_tag = 'MobileNetworkEndToEndEncryption' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def mobile_network_end_to_end_encryption_from_string(xml_string): + return saml2.create_class_from_xml_string(MobileNetworkEndToEndEncryption, + xml_string) + + +class SSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SSL element """ + + c_tag = 'SSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def ssl_from_string(xml_string): + return saml2.create_class_from_xml_string(SSL, xml_string) + + +class PSTN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PSTN element """ + + c_tag = 'PSTN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def pstn_from_string(xml_string): + return saml2.create_class_from_xml_string(PSTN, xml_string) + + +class ISDN(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ISDN element """ + + c_tag = 'ISDN' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def isdn_from_string(xml_string): + return saml2.create_class_from_xml_string(ISDN, xml_string) + + +class ADSL(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ADSL element """ + + c_tag = 'ADSL' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def adsl_from_string(xml_string): + return saml2.create_class_from_xml_string(ADSL, xml_string) + + +class SwitchAudit(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SwitchAudit element """ + + c_tag = 'SwitchAudit' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def switch_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SwitchAudit, xml_string) + + +class DeactivationCallCenter(ExtensionOnlyType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:DeactivationCallCenter element """ + + c_tag = 'DeactivationCallCenter' + c_namespace = NAMESPACE + c_children = ExtensionOnlyType_.c_children.copy() + c_attributes = ExtensionOnlyType_.c_attributes.copy() + c_child_order = ExtensionOnlyType_.c_child_order[:] + c_cardinality = ExtensionOnlyType_.c_cardinality.copy() + + +def deactivation_call_center_from_string(xml_string): + return saml2.create_class_from_xml_string(DeactivationCallCenter, + xml_string) + + +class IdentificationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:IdentificationType element """ + + c_tag = 'IdentificationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}PhysicalVerification'] = ( + 'physical_verification', PhysicalVerification) + c_cardinality['physical_verification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}WrittenConsent'] = ( + 'written_consent', WrittenConsent) + c_cardinality['written_consent'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['nym'] = ('nym', NymType_, False) + c_child_order.extend( + ['physical_verification', 'written_consent', 'governing_agreements', + 'extension']) + + def __init__(self, + physical_verification=None, + written_consent=None, + governing_agreements=None, + extension=None, + nym=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.physical_verification = physical_verification + self.written_consent = written_consent + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.nym = nym + + +def identification_type__from_string(xml_string): + return saml2.create_class_from_xml_string(IdentificationType_, xml_string) + + +class RestrictedPassword(RestrictedPasswordType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:RestrictedPassword element """ + + c_tag = 'RestrictedPassword' + c_namespace = NAMESPACE + c_children = RestrictedPasswordType_.c_children.copy() + c_attributes = RestrictedPasswordType_.c_attributes.copy() + c_child_order = RestrictedPasswordType_.c_child_order[:] + c_cardinality = RestrictedPasswordType_.c_cardinality.copy() + + +def restricted_password_from_string(xml_string): + return saml2.create_class_from_xml_string(RestrictedPassword, xml_string) + + +class ActivationPinType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationPinType element """ + + c_tag = 'ActivationPinType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Length'] = ( + 'length', Length) + c_cardinality['length'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Alphabet'] = ( + 'alphabet', Alphabet) + c_cardinality['alphabet'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Generation'] = ( + 'generation', Generation) + c_cardinality['generation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ActivationLimit'] = ( + 'activation_limit', ActivationLimit) + c_cardinality['activation_limit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['length', 'alphabet', 'generation', 'activation_limit', 'extension']) + + def __init__(self, + length=None, + alphabet=None, + generation=None, + activation_limit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.length = length + self.alphabet = alphabet + self.generation = generation + self.activation_limit = activation_limit + self.extension = extension or [] + + +def activation_pin_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPinType_, xml_string) + + +class SecurityAuditType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SecurityAuditType element """ + + c_tag = 'SecurityAuditType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}SwitchAudit'] = ( + 'switch_audit', SwitchAudit) + c_cardinality['switch_audit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['switch_audit', 'extension']) + + def __init__(self, + switch_audit=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.switch_audit = switch_audit + self.extension = extension or [] + + +def security_audit_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAuditType_, xml_string) + + +class PrincipalAuthenticationMechanismType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PrincipalAuthenticationMechanismType element """ + + c_tag = 'PrincipalAuthenticationMechanismType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_attributes['preauth'] = ('preauth', 'integer', False) + c_child_order.extend(['restricted_password']) + + def __init__(self, + restricted_password=None, + preauth=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.restricted_password = restricted_password + self.preauth = preauth + + +def principal_authentication_mechanism_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + PrincipalAuthenticationMechanismType_, xml_string) + + +class AuthenticatorTransportProtocolType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AuthenticatorTransportProtocolType element """ + + c_tag = 'AuthenticatorTransportProtocolType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}SSL'] = ( + 'ssl', SSL) + c_cardinality['ssl'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}WTLS'] = ( + 'wtls', WTLS) + c_cardinality['wtls'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['ssl', 'wtls', 'extension']) + + def __init__(self, + ssl=None, + wtls=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.ssl = ssl + self.wtls = wtls + self.extension = extension or [] + + +def authenticator_transport_protocol_type__from_string(xml_string): + return saml2.create_class_from_xml_string( + AuthenticatorTransportProtocolType_, xml_string) + + +class Identification(IdentificationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:Identification element """ + + c_tag = 'Identification' + c_namespace = NAMESPACE + c_children = IdentificationType_.c_children.copy() + c_attributes = IdentificationType_.c_attributes.copy() + c_child_order = IdentificationType_.c_child_order[:] + c_cardinality = IdentificationType_.c_cardinality.copy() + + +def identification_from_string(xml_string): + return saml2.create_class_from_xml_string(Identification, xml_string) + + +class ActivationPin(ActivationPinType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ActivationPin element """ + + c_tag = 'ActivationPin' + c_namespace = NAMESPACE + c_children = ActivationPinType_.c_children.copy() + c_attributes = ActivationPinType_.c_attributes.copy() + c_child_order = ActivationPinType_.c_child_order[:] + c_cardinality = ActivationPinType_.c_cardinality.copy() + + +def activation_pin_from_string(xml_string): + return saml2.create_class_from_xml_string(ActivationPin, xml_string) + + +class PrincipalAuthenticationMechanism(PrincipalAuthenticationMechanismType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PrincipalAuthenticationMechanism element """ + + c_tag = 'PrincipalAuthenticationMechanism' + c_namespace = NAMESPACE + c_children = PrincipalAuthenticationMechanismType_.c_children.copy() + c_attributes = PrincipalAuthenticationMechanismType_.c_attributes.copy() + c_child_order = PrincipalAuthenticationMechanismType_.c_child_order[:] + c_cardinality = PrincipalAuthenticationMechanismType_.c_cardinality.copy() + + +def principal_authentication_mechanism_from_string(xml_string): + return saml2.create_class_from_xml_string(PrincipalAuthenticationMechanism, + xml_string) + + +class AuthenticatorTransportProtocol(AuthenticatorTransportProtocolType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AuthenticatorTransportProtocol element """ + + c_tag = 'AuthenticatorTransportProtocol' + c_namespace = NAMESPACE + c_children = AuthenticatorTransportProtocolType_.c_children.copy() + c_attributes = AuthenticatorTransportProtocolType_.c_attributes.copy() + c_child_order = AuthenticatorTransportProtocolType_.c_child_order[:] + c_cardinality = AuthenticatorTransportProtocolType_.c_cardinality.copy() + + +def authenticator_transport_protocol_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticatorTransportProtocol, + xml_string) + + +class SecurityAudit(SecurityAuditType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SecurityAudit element """ + + c_tag = 'SecurityAudit' + c_namespace = NAMESPACE + c_children = SecurityAuditType_.c_children.copy() + c_attributes = SecurityAuditType_.c_attributes.copy() + c_child_order = SecurityAuditType_.c_child_order[:] + c_cardinality = SecurityAuditType_.c_cardinality.copy() + + +def security_audit_from_string(xml_string): + return saml2.create_class_from_xml_string(SecurityAudit, xml_string) + + +class OperationalProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:OperationalProtectionType element """ + + c_tag = 'OperationalProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}SecurityAudit'] = ( + 'security_audit', SecurityAudit) + c_cardinality['security_audit'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}DeactivationCallCenter'] = ( + 'deactivation_call_center', DeactivationCallCenter) + c_cardinality['deactivation_call_center'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['security_audit', 'deactivation_call_center', 'extension']) + + def __init__(self, + security_audit=None, + deactivation_call_center=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.security_audit = security_audit + self.deactivation_call_center = deactivation_call_center + self.extension = extension or [] + + +def operational_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtectionType_, + xml_string) + + +class KeyActivationType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:KeyActivationType element """ + + c_tag = 'KeyActivationType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ActivationPin'] = ( + 'activation_pin', ActivationPin) + c_cardinality['activation_pin'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['activation_pin', 'extension']) + + def __init__(self, + activation_pin=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.activation_pin = activation_pin + self.extension = extension or [] + + +def key_activation_type__from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivationType_, xml_string) + + +class AuthnMethodBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AuthnMethodBaseType element """ + + c_tag = 'AuthnMethodBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}PrincipalAuthenticationMechanism'] = ( + 'principal_authentication_mechanism', PrincipalAuthenticationMechanism) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Authenticator'] = ( + 'authenticator', Authenticator) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}AuthenticatorTransportProtocol'] = ( + 'authenticator_transport_protocol', AuthenticatorTransportProtocol) + c_cardinality['authenticator_transport_protocol'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['principal_authentication_mechanism', 'authenticator', + 'authenticator_transport_protocol', 'extension']) + + def __init__(self, + principal_authentication_mechanism=None, + authenticator=None, + authenticator_transport_protocol=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.principal_authentication_mechanism = principal_authentication_mechanism + self.authenticator = authenticator + self.authenticator_transport_protocol = authenticator_transport_protocol + self.extension = extension or [] + + +def authn_method_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethodBaseType_, xml_string) + + +class KeyActivation(KeyActivationType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:KeyActivation element """ + + c_tag = 'KeyActivation' + c_namespace = NAMESPACE + c_children = KeyActivationType_.c_children.copy() + c_attributes = KeyActivationType_.c_attributes.copy() + c_child_order = KeyActivationType_.c_child_order[:] + c_cardinality = KeyActivationType_.c_cardinality.copy() + + +def key_activation_from_string(xml_string): + return saml2.create_class_from_xml_string(KeyActivation, xml_string) + + +class AuthnMethod(AuthnMethodBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AuthnMethod element """ + + c_tag = 'AuthnMethod' + c_namespace = NAMESPACE + c_children = AuthnMethodBaseType_.c_children.copy() + c_attributes = AuthnMethodBaseType_.c_attributes.copy() + c_child_order = AuthnMethodBaseType_.c_child_order[:] + c_cardinality = AuthnMethodBaseType_.c_cardinality.copy() + + +def authn_method_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnMethod, xml_string) + + +class OperationalProtection(OperationalProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:OperationalProtection element """ + + c_tag = 'OperationalProtection' + c_namespace = NAMESPACE + c_children = OperationalProtectionType_.c_children.copy() + c_attributes = OperationalProtectionType_.c_attributes.copy() + c_child_order = OperationalProtectionType_.c_child_order[:] + c_cardinality = OperationalProtectionType_.c_cardinality.copy() + + +def operational_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(OperationalProtection, xml_string) + + +class PrivateKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PrivateKeyProtectionType element """ + + c_tag = 'PrivateKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}KeySharing'] = ( + 'key_sharing', KeySharing) + c_cardinality['key_sharing'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['key_activation', 'key_storage', 'key_sharing', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + key_sharing=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.key_sharing = key_sharing + self.extension = extension or [] + + +def private_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtectionType_, + xml_string) + + +class SecretKeyProtectionType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SecretKeyProtectionType element """ + + c_tag = 'SecretKeyProtectionType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}KeyActivation'] = ( + 'key_activation', KeyActivation) + c_cardinality['key_activation'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}KeyStorage'] = ( + 'key_storage', KeyStorage) + c_cardinality['key_storage'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend(['key_activation', 'key_storage', 'extension']) + + def __init__(self, + key_activation=None, + key_storage=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.key_activation = key_activation + self.key_storage = key_storage + self.extension = extension or [] + + +def secret_key_protection_type__from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtectionType_, + xml_string) + + +class SecretKeyProtection(SecretKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:SecretKeyProtection element """ + + c_tag = 'SecretKeyProtection' + c_namespace = NAMESPACE + c_children = SecretKeyProtectionType_.c_children.copy() + c_attributes = SecretKeyProtectionType_.c_attributes.copy() + c_child_order = SecretKeyProtectionType_.c_child_order[:] + c_cardinality = SecretKeyProtectionType_.c_cardinality.copy() + + +def secret_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(SecretKeyProtection, xml_string) + + +class PrivateKeyProtection(PrivateKeyProtectionType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:PrivateKeyProtection element """ + + c_tag = 'PrivateKeyProtection' + c_namespace = NAMESPACE + c_children = PrivateKeyProtectionType_.c_children.copy() + c_attributes = PrivateKeyProtectionType_.c_attributes.copy() + c_child_order = PrivateKeyProtectionType_.c_child_order[:] + c_cardinality = PrivateKeyProtectionType_.c_cardinality.copy() + + +def private_key_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(PrivateKeyProtection, xml_string) + + +class TechnicalProtectionBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:TechnicalProtectionBaseType element """ + + c_tag = 'TechnicalProtectionBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}PrivateKeyProtection'] = ( + 'private_key_protection', PrivateKeyProtection) + c_cardinality['private_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}SecretKeyProtection'] = ( + 'secret_key_protection', SecretKeyProtection) + c_cardinality['secret_key_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['private_key_protection', 'secret_key_protection', 'extension']) + + def __init__(self, + private_key_protection=None, + secret_key_protection=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.private_key_protection = private_key_protection + self.secret_key_protection = secret_key_protection + self.extension = extension or [] + + +def technical_protection_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtectionBaseType_, + xml_string) + + +class TechnicalProtection(TechnicalProtectionBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:TechnicalProtection element """ + + c_tag = 'TechnicalProtection' + c_namespace = NAMESPACE + c_children = TechnicalProtectionBaseType_.c_children.copy() + c_attributes = TechnicalProtectionBaseType_.c_attributes.copy() + c_child_order = TechnicalProtectionBaseType_.c_child_order[:] + c_cardinality = TechnicalProtectionBaseType_.c_cardinality.copy() + + +def technical_protection_from_string(xml_string): + return saml2.create_class_from_xml_string(TechnicalProtection, xml_string) + + +class AuthnContextDeclarationBaseType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AuthnContextDeclarationBaseType element """ + + c_tag = 'AuthnContextDeclarationBaseType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Identification'] = ( + 'identification', Identification) + c_cardinality['identification'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}TechnicalProtection'] = ( + 'technical_protection', TechnicalProtection) + c_cardinality['technical_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}OperationalProtection'] = ( + 'operational_protection', OperationalProtection) + c_cardinality['operational_protection'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}AuthnMethod'] = ( + 'authn_method', AuthnMethod) + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}GoverningAgreements'] = ( + 'governing_agreements', GoverningAgreements) + c_cardinality['governing_agreements'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_attributes['ID'] = ('id', 'ID', False) + c_child_order.extend( + ['identification', 'technical_protection', 'operational_protection', + 'authn_method', 'governing_agreements', 'extension']) + + def __init__(self, + identification=None, + technical_protection=None, + operational_protection=None, + authn_method=None, + governing_agreements=None, + extension=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.identification = identification + self.technical_protection = technical_protection + self.operational_protection = operational_protection + self.authn_method = authn_method + self.governing_agreements = governing_agreements + self.extension = extension or [] + self.id = id + + +def authn_context_declaration_base_type__from_string(xml_string): + return saml2.create_class_from_xml_string(AuthnContextDeclarationBaseType_, + xml_string) + + +class AuthenticationContextDeclaration(AuthnContextDeclarationBaseType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:AuthenticationContextDeclaration element """ + + c_tag = 'AuthenticationContextDeclaration' + c_namespace = NAMESPACE + c_children = AuthnContextDeclarationBaseType_.c_children.copy() + c_attributes = AuthnContextDeclarationBaseType_.c_attributes.copy() + c_child_order = AuthnContextDeclarationBaseType_.c_child_order[:] + c_cardinality = AuthnContextDeclarationBaseType_.c_cardinality.copy() + + +def authentication_context_declaration_from_string(xml_string): + return saml2.create_class_from_xml_string(AuthenticationContextDeclaration, + xml_string) + + +#.................. +# ['ComplexAuthenticatorType', 'ComplexAuthenticator'] +class ComplexAuthenticatorType_(SamlBase): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ComplexAuthenticatorType element """ + + c_tag = 'ComplexAuthenticatorType' + c_namespace = NAMESPACE + c_children = SamlBase.c_children.copy() + c_attributes = SamlBase.c_attributes.copy() + c_child_order = SamlBase.c_child_order[:] + c_cardinality = SamlBase.c_cardinality.copy() + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}PreviousSession'] = ( + 'previous_session', PreviousSession) + c_cardinality['previous_session'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ResumeSession'] = ( + 'resume_session', ResumeSession) + c_cardinality['resume_session'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}DigSig'] = ( + 'dig_sig', DigSig) + c_cardinality['dig_sig'] = {"min": 0, "max": 1} + c_children['{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Password'] = ( + 'password', Password) + c_cardinality['password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}RestrictedPassword'] = ( + 'restricted_password', RestrictedPassword) + c_cardinality['restricted_password'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ZeroKnowledge'] = ( + 'zero_knowledge', ZeroKnowledge) + c_cardinality['zero_knowledge'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}SharedSecretChallengeResponse'] = ( + 'shared_secret_challenge_response', SharedSecretChallengeResponse) + c_cardinality['shared_secret_challenge_response'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}SharedSecretDynamicPlaintext'] = ( + 'shared_secret_dynamic_plaintext', SharedSecretDynamicPlaintext) + c_cardinality['shared_secret_dynamic_plaintext'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}IPAddress'] = ( + 'ip_address', IPAddress) + c_cardinality['ip_address'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}AsymmetricDecryption'] = ( + 'asymmetric_decryption', AsymmetricDecryption) + c_cardinality['asymmetric_decryption'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}AsymmetricKeyAgreement'] = ( + 'asymmetric_key_agreement', AsymmetricKeyAgreement) + c_cardinality['asymmetric_key_agreement'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}SubscriberLineNumber'] = ( + 'subscriber_line_number', SubscriberLineNumber) + c_cardinality['subscriber_line_number'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}UserSuffix'] = ( + 'user_suffix', UserSuffix) + c_cardinality['user_suffix'] = {"min": 0, "max": 1} + c_cardinality['complex_authenticator'] = {"min": 0, "max": 1} + c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}Extension'] = ( + 'extension', [Extension]) + c_cardinality['extension'] = {"min": 0} + c_child_order.extend( + ['previous_session', 'resume_session', 'dig_sig', 'password', + 'restricted_password', 'zero_knowledge', + 'shared_secret_challenge_response', 'shared_secret_dynamic_plaintext', + 'ip_address', 'asymmetric_decryption', 'asymmetric_key_agreement', + 'subscriber_line_number', 'user_suffix', 'complex_authenticator', + 'extension']) + + def __init__(self, + previous_session=None, + resume_session=None, + dig_sig=None, + password=None, + restricted_password=None, + zero_knowledge=None, + shared_secret_challenge_response=None, + shared_secret_dynamic_plaintext=None, + ip_address=None, + asymmetric_decryption=None, + asymmetric_key_agreement=None, + subscriber_line_number=None, + user_suffix=None, + complex_authenticator=None, + extension=None, + text=None, + extension_elements=None, + extension_attributes=None, + ): + SamlBase.__init__(self, + text=text, + extension_elements=extension_elements, + extension_attributes=extension_attributes, + ) + self.previous_session = previous_session + self.resume_session = resume_session + self.dig_sig = dig_sig + self.password = password + self.restricted_password = restricted_password + self.zero_knowledge = zero_knowledge + self.shared_secret_challenge_response = shared_secret_challenge_response + self.shared_secret_dynamic_plaintext = shared_secret_dynamic_plaintext + self.ip_address = ip_address + self.asymmetric_decryption = asymmetric_decryption + self.asymmetric_key_agreement = asymmetric_key_agreement + self.subscriber_line_number = subscriber_line_number + self.user_suffix = user_suffix + self.complex_authenticator = complex_authenticator + self.extension = extension or [] + + +def complex_authenticator_type__from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticatorType_, + xml_string) + + +class ComplexAuthenticator(ComplexAuthenticatorType_): + """The urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient:ComplexAuthenticator element """ + + c_tag = 'ComplexAuthenticator' + c_namespace = NAMESPACE + c_children = ComplexAuthenticatorType_.c_children.copy() + c_attributes = ComplexAuthenticatorType_.c_attributes.copy() + c_child_order = ComplexAuthenticatorType_.c_child_order[:] + c_cardinality = ComplexAuthenticatorType_.c_cardinality.copy() + + +def complex_authenticator_from_string(xml_string): + return saml2.create_class_from_xml_string(ComplexAuthenticator, xml_string) + + +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +ComplexAuthenticatorType_.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +ComplexAuthenticator.c_children[ + '{urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient}ComplexAuthenticator'] = ( + 'complex_authenticator', ComplexAuthenticator) +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +ELEMENT_FROM_STRING = { + AuthenticationContextDeclaration.c_tag: authentication_context_declaration_from_string, + Identification.c_tag: identification_from_string, + PhysicalVerification.c_tag: physical_verification_from_string, + WrittenConsent.c_tag: written_consent_from_string, + TechnicalProtection.c_tag: technical_protection_from_string, + SecretKeyProtection.c_tag: secret_key_protection_from_string, + PrivateKeyProtection.c_tag: private_key_protection_from_string, + KeyActivation.c_tag: key_activation_from_string, + KeySharing.c_tag: key_sharing_from_string, + KeyStorage.c_tag: key_storage_from_string, + SubscriberLineNumber.c_tag: subscriber_line_number_from_string, + UserSuffix.c_tag: user_suffix_from_string, + Password.c_tag: password_from_string, + ActivationPin.c_tag: activation_pin_from_string, + Token.c_tag: token_from_string, + TimeSyncToken.c_tag: time_sync_token_from_string, + Smartcard.c_tag: smartcard_from_string, + Length.c_tag: length_from_string, + ActivationLimit.c_tag: activation_limit_from_string, + Generation.c_tag: generation_from_string, + AuthnMethod.c_tag: authn_method_from_string, + PrincipalAuthenticationMechanism.c_tag: principal_authentication_mechanism_from_string, + Authenticator.c_tag: authenticator_from_string, + ComplexAuthenticator.c_tag: complex_authenticator_from_string, + PreviousSession.c_tag: previous_session_from_string, + ResumeSession.c_tag: resume_session_from_string, + ZeroKnowledge.c_tag: zero_knowledge_from_string, + SharedSecretChallengeResponse.c_tag: shared_secret_challenge_response_from_string, + SharedSecretChallengeResponseType_.c_tag: shared_secret_challenge_response_type__from_string, + DigSig.c_tag: dig_sig_from_string, + AsymmetricDecryption.c_tag: asymmetric_decryption_from_string, + AsymmetricKeyAgreement.c_tag: asymmetric_key_agreement_from_string, + IPAddress.c_tag: ip_address_from_string, + SharedSecretDynamicPlaintext.c_tag: shared_secret_dynamic_plaintext_from_string, + AuthenticatorTransportProtocol.c_tag: authenticator_transport_protocol_from_string, + HTTP.c_tag: http_from_string, + IPSec.c_tag: ip_sec_from_string, + WTLS.c_tag: wtls_from_string, + MobileNetworkNoEncryption.c_tag: mobile_network_no_encryption_from_string, + MobileNetworkRadioEncryption.c_tag: mobile_network_radio_encryption_from_string, + MobileNetworkEndToEndEncryption.c_tag: mobile_network_end_to_end_encryption_from_string, + SSL.c_tag: ssl_from_string, + PSTN.c_tag: pstn_from_string, + ISDN.c_tag: isdn_from_string, + ADSL.c_tag: adsl_from_string, + OperationalProtection.c_tag: operational_protection_from_string, + SecurityAudit.c_tag: security_audit_from_string, + SwitchAudit.c_tag: switch_audit_from_string, + DeactivationCallCenter.c_tag: deactivation_call_center_from_string, + GoverningAgreements.c_tag: governing_agreements_from_string, + GoverningAgreementRef.c_tag: governing_agreement_ref_from_string, + NymType_.c_tag: nym_type__from_string, + IdentificationType_.c_tag: identification_type__from_string, + TechnicalProtectionBaseType_.c_tag: technical_protection_base_type__from_string, + OperationalProtectionType_.c_tag: operational_protection_type__from_string, + GoverningAgreementsType_.c_tag: governing_agreements_type__from_string, + GoverningAgreementRefType_.c_tag: governing_agreement_ref_type__from_string, + ComplexAuthenticatorType_.c_tag: complex_authenticator_type__from_string, + KeyActivationType_.c_tag: key_activation_type__from_string, + KeySharingType_.c_tag: key_sharing_type__from_string, + PrivateKeyProtectionType_.c_tag: private_key_protection_type__from_string, + PasswordType_.c_tag: password_type__from_string, + RestrictedPassword.c_tag: restricted_password_from_string, + RestrictedPasswordType_.c_tag: restricted_password_type__from_string, + RestrictedLengthType_.c_tag: restricted_length_type__from_string, + ActivationPinType_.c_tag: activation_pin_type__from_string, + Alphabet.c_tag: alphabet_from_string, + AlphabetType_.c_tag: alphabet_type__from_string, + TokenType_.c_tag: token_type__from_string, + DeviceTypeType_.c_tag: device_type_type__from_string, + BooleanType_.c_tag: boolean_type__from_string, + TimeSyncTokenType_.c_tag: time_sync_token_type__from_string, + ActivationLimitType_.c_tag: activation_limit_type__from_string, + ActivationLimitDuration.c_tag: activation_limit_duration_from_string, + ActivationLimitUsages.c_tag: activation_limit_usages_from_string, + ActivationLimitSession.c_tag: activation_limit_session_from_string, + ActivationLimitDurationType_.c_tag: activation_limit_duration_type__from_string, + ActivationLimitUsagesType_.c_tag: activation_limit_usages_type__from_string, + ActivationLimitSessionType_.c_tag: activation_limit_session_type__from_string, + LengthType_.c_tag: length_type__from_string, + MediumType_.c_tag: medium_type__from_string, + KeyStorageType_.c_tag: key_storage_type__from_string, + SecretKeyProtectionType_.c_tag: secret_key_protection_type__from_string, + SecurityAuditType_.c_tag: security_audit_type__from_string, + ExtensionOnlyType_.c_tag: extension_only_type__from_string, + Extension.c_tag: extension_from_string, + ExtensionType_.c_tag: extension_type__from_string, + AuthnContextDeclarationBaseType_.c_tag: authn_context_declaration_base_type__from_string, + AuthnMethodBaseType_.c_tag: authn_method_base_type__from_string, + PrincipalAuthenticationMechanismType_.c_tag: principal_authentication_mechanism_type__from_string, + AuthenticatorBaseType_.c_tag: authenticator_base_type__from_string, + PublicKeyType_.c_tag: public_key_type__from_string, + AuthenticatorTransportProtocolType_.c_tag: authenticator_transport_protocol_type__from_string, +} + +ELEMENT_BY_TAG = { + 'AuthenticationContextDeclaration': AuthenticationContextDeclaration, + 'Identification': Identification, + 'PhysicalVerification': PhysicalVerification, + 'WrittenConsent': WrittenConsent, + 'TechnicalProtection': TechnicalProtection, + 'SecretKeyProtection': SecretKeyProtection, + 'PrivateKeyProtection': PrivateKeyProtection, + 'KeyActivation': KeyActivation, + 'KeySharing': KeySharing, + 'KeyStorage': KeyStorage, + 'SubscriberLineNumber': SubscriberLineNumber, + 'UserSuffix': UserSuffix, + 'Password': Password, + 'ActivationPin': ActivationPin, + 'Token': Token, + 'TimeSyncToken': TimeSyncToken, + 'Smartcard': Smartcard, + 'Length': Length, + 'ActivationLimit': ActivationLimit, + 'Generation': Generation, + 'AuthnMethod': AuthnMethod, + 'PrincipalAuthenticationMechanism': PrincipalAuthenticationMechanism, + 'Authenticator': Authenticator, + 'ComplexAuthenticator': ComplexAuthenticator, + 'PreviousSession': PreviousSession, + 'ResumeSession': ResumeSession, + 'ZeroKnowledge': ZeroKnowledge, + 'SharedSecretChallengeResponse': SharedSecretChallengeResponse, + 'SharedSecretChallengeResponseType': SharedSecretChallengeResponseType_, + 'DigSig': DigSig, + 'AsymmetricDecryption': AsymmetricDecryption, + 'AsymmetricKeyAgreement': AsymmetricKeyAgreement, + 'IPAddress': IPAddress, + 'SharedSecretDynamicPlaintext': SharedSecretDynamicPlaintext, + 'AuthenticatorTransportProtocol': AuthenticatorTransportProtocol, + 'HTTP': HTTP, + 'IPSec': IPSec, + 'WTLS': WTLS, + 'MobileNetworkNoEncryption': MobileNetworkNoEncryption, + 'MobileNetworkRadioEncryption': MobileNetworkRadioEncryption, + 'MobileNetworkEndToEndEncryption': MobileNetworkEndToEndEncryption, + 'SSL': SSL, + 'PSTN': PSTN, + 'ISDN': ISDN, + 'ADSL': ADSL, + 'OperationalProtection': OperationalProtection, + 'SecurityAudit': SecurityAudit, + 'SwitchAudit': SwitchAudit, + 'DeactivationCallCenter': DeactivationCallCenter, + 'GoverningAgreements': GoverningAgreements, + 'GoverningAgreementRef': GoverningAgreementRef, + 'nymType': NymType_, + 'IdentificationType': IdentificationType_, + 'TechnicalProtectionBaseType': TechnicalProtectionBaseType_, + 'OperationalProtectionType': OperationalProtectionType_, + 'GoverningAgreementsType': GoverningAgreementsType_, + 'GoverningAgreementRefType': GoverningAgreementRefType_, + 'ComplexAuthenticatorType': ComplexAuthenticatorType_, + 'KeyActivationType': KeyActivationType_, + 'KeySharingType': KeySharingType_, + 'PrivateKeyProtectionType': PrivateKeyProtectionType_, + 'PasswordType': PasswordType_, + 'RestrictedPassword': RestrictedPassword, + 'RestrictedPasswordType': RestrictedPasswordType_, + 'RestrictedLengthType': RestrictedLengthType_, + 'ActivationPinType': ActivationPinType_, + 'Alphabet': Alphabet, + 'AlphabetType': AlphabetType_, + 'TokenType': TokenType_, + 'DeviceTypeType': DeviceTypeType_, + 'booleanType': BooleanType_, + 'TimeSyncTokenType': TimeSyncTokenType_, + 'ActivationLimitType': ActivationLimitType_, + 'ActivationLimitDuration': ActivationLimitDuration, + 'ActivationLimitUsages': ActivationLimitUsages, + 'ActivationLimitSession': ActivationLimitSession, + 'ActivationLimitDurationType': ActivationLimitDurationType_, + 'ActivationLimitUsagesType': ActivationLimitUsagesType_, + 'ActivationLimitSessionType': ActivationLimitSessionType_, + 'LengthType': LengthType_, + 'mediumType': MediumType_, + 'KeyStorageType': KeyStorageType_, + 'SecretKeyProtectionType': SecretKeyProtectionType_, + 'SecurityAuditType': SecurityAuditType_, + 'ExtensionOnlyType': ExtensionOnlyType_, + 'Extension': Extension, + 'ExtensionType': ExtensionType_, + 'AuthnContextDeclarationBaseType': AuthnContextDeclarationBaseType_, + 'AuthnMethodBaseType': AuthnMethodBaseType_, + 'PrincipalAuthenticationMechanismType': PrincipalAuthenticationMechanismType_, + 'AuthenticatorBaseType': AuthenticatorBaseType_, + 'PublicKeyType': PublicKeyType_, + 'AuthenticatorTransportProtocolType': AuthenticatorTransportProtocolType_, +} + + +def factory(tag, **kwargs): + return ELEMENT_BY_TAG[tag](**kwargs) + diff --git a/src/saml2/samlp.py b/src/saml2/samlp.py index 1d7f606a..da050e78 100644 --- a/src/saml2/samlp.py +++ b/src/saml2/samlp.py @@ -60,6 +60,7 @@ class ExtensionsType_(SamlBase): c_child_order = SamlBase.c_child_order[:] c_cardinality = SamlBase.c_cardinality.copy() + def extensions_type__from_string(xml_string): return saml2.create_class_from_xml_string(ExtensionsType_, xml_string) diff --git a/tools/parse_xsd2.py b/tools/parse_xsd2.py index 6688521b..844ac99a 100755 --- a/tools/parse_xsd2.py +++ b/tools/parse_xsd2.py @@ -6,16 +6,11 @@ import getopt import imp import sys import types +import errno -__version__ = 0.4 +__version__ = 0.5 -try: - from xml.etree import cElementTree as ElementTree -except ImportError: - try: - import cElementTree as ElementTree - except ImportError: - from elementtree import ElementTree +from xml.etree import cElementTree as ElementTree INDENT = 4*" " DEBUG = False @@ -47,6 +42,7 @@ def class_pyify(ref): PROTECTED_KEYWORDS = ["import", "def", "if", "else", "return", "for", "while", "not", "try", "except", "in"] + def def_init(imports, attributes): indent = INDENT+INDENT indent3 = INDENT+INDENT+INDENT @@ -77,6 +73,7 @@ def def_init(imports, attributes): line.append("%s):" % indent) return line + def base_init(imports): line = [] indent4 = INDENT+INDENT+INDENT+INDENT @@ -104,6 +101,7 @@ def base_init(imports): line.append("%s)" % indent4) return line + def initialize(attributes): indent = INDENT+INDENT line = [] @@ -121,6 +119,7 @@ def initialize(attributes): line.append("%sself.%s=%s" % (indent, _name, _vname)) return line + def _mod_typ(prop): try: (mod, typ) = prop.type @@ -139,6 +138,7 @@ def _mod_typ(prop): return mod, typ + def _mod_cname(prop, cdict): if hasattr(prop, "scoped"): cname = prop.class_name @@ -155,6 +155,7 @@ def _mod_cname(prop, cdict): return mod, cname + def leading_uppercase(string): try: return string[0].upper()+string[1:] @@ -163,6 +164,7 @@ def leading_uppercase(string): except TypeError: return "" + def leading_lowercase(string): try: return string[0].lower()+string[1:] @@ -171,6 +173,7 @@ def leading_lowercase(string): except TypeError: return "" + def rm_duplicates(properties): keys = [] clist = [] @@ -189,12 +192,14 @@ def rm_duplicates(properties): # res.append(item) # return res + def klass_namn(obj): if obj.class_name: return obj.class_name else: return obj.name + class PyObj(object): def __init__(self, name=None, pyname=None, root=None): self.name = name @@ -622,7 +627,7 @@ class PyType(PyObj): self.namespace = namespace def text(self, target_namespace, cdict, _child=True, ignore=None, - _session=None): + _session=None): if not self.properties and not self.type \ and not self.superior: self.done = True @@ -715,6 +720,8 @@ class PyAttribute(PyObj): self.namespace = namespace self.base = None self.type = typ + self.fixed = False + self.default = None def text(self, _target_namespace, cdict, _child=True): if isinstance(self.type, PyObj): @@ -752,6 +759,7 @@ class PyGroup(object): self.root = root self.properties = [] self.done = False + self.ref = [] def text(self, _target_namespace, _dict, _child, _ignore): return [], [] @@ -837,6 +845,9 @@ def _namespace_and_tag(obj, param, top): except ValueError: namespace = "" tag = param + # except AttributeError: + # namespace = "" + # tag = obj.name return namespace, tag @@ -852,6 +863,7 @@ class Simple(object): self.use = None self.ref = None self.scoped = False + self.itemType = None for attribute, value in elem.attrib.iteritems(): self.__setattr__(attribute, value) @@ -995,7 +1007,11 @@ class MaxExclusive(Simple): class List(Simple): pass - + +class Include(Simple): + pass + + # ----------------------------------------------------------------------------- def sequence(elem): @@ -1218,7 +1234,7 @@ class Element(Complex): objekt.type = typ objekt.value_type = {"base": typ} - except AttributeError, exc: + except AttributeError: # neither type nor reference, definitely local if hasattr(self, "parts"): if len(self.parts) == 1: @@ -1252,6 +1268,7 @@ class Element(Complex): return objekt + class SimpleType(Complex): def repr(self, top=None, _sup=None, _argv=None, _child=True, parent=""): if self.py_class: @@ -1284,6 +1301,7 @@ class SimpleType(Complex): self.py_class = obj return obj + class Sequence(Complex): def collect(self, top, sup, argv=None, parent=""): argv_copy = sd_copy(argv) @@ -1295,15 +1313,23 @@ class Sequence(Complex): print "#Sequence: %s" % argv return Complex.collect(self, top, sup, argv_copy, parent) + class SimpleContent(Complex): pass + class ComplexContent(Complex): pass + class Key(Complex): pass + +class Redefine(Complex): + pass + + class Extension(Complex): def collect(self, top, sup, argv=None, parent=""): if self._own or self._inherited: @@ -1330,8 +1356,8 @@ class Extension(Complex): #print "#EXT..-", ia self._inherited = iattr except (AttributeError, ValueError): - pass - + base = None + self._extend(top, sup, argv, parent, base) return self._own, self._inherited @@ -1525,6 +1551,7 @@ def pyify_0(name): res += "_" return res + def pyify(name): # AssertionIDRef res = [] @@ -1532,7 +1559,7 @@ def pyify(name): upc = [] pre = "" for char in name: - if char >= "A" and char <= "Z": + if "A" <= char <= "Z": upc.append(char) elif char == "-": upc.append("_") @@ -1558,6 +1585,7 @@ def pyify(name): return "".join(res) + def get_type_def( typ, defs): for cdef in defs: try: @@ -1599,6 +1627,7 @@ def sort_elements(els): return res, els + def output(elem, target_namespace, eldict, ignore=None): done = 0 @@ -1631,6 +1660,7 @@ def output(elem, target_namespace, eldict, ignore=None): return done + def intro(): print """#!/usr/bin/env python @@ -1644,6 +1674,7 @@ from saml2 import SamlBase #NAMESPACE = 'http://www.w3.org/2000/09/xmldsig#' + def block_items(objekt, block, eldict): if objekt not in block: if isinstance(objekt.type, PyType): @@ -1666,6 +1697,8 @@ def find_parent(elm, eldict): return find_parent(sup, eldict) elif elm.ref: sup = eldict[elm.ref] + if sup.name == elm.name: + return elm return find_parent(sup, eldict) else: if elm.superior: @@ -1676,6 +1709,7 @@ def find_parent(elm, eldict): return elm + class Schema(Complex): def __init__(self, elem, impo, add, modul, defs): @@ -1942,6 +1976,8 @@ _MAP = { "selector": Selector, "field": Field, "key": Key, + "include": Include, + "redefine": Redefine } ELEMENTFUNCTION = {} @@ -1961,7 +1997,6 @@ def evaluate(typ, elem): NS_MAP = "xmlns_map" def parse_nsmap(fil): - events = "start", "start-ns", "end-ns" root = None @@ -2015,10 +2050,99 @@ def get_mod(name, path=None): raise sys.modules[name] = mod_a return mod_a - + + +def recursive_add_xmlns_map(_sch, base): + for _part in _sch.parts: + _part.xmlns_map.update(base.xmlns_map) + if isinstance(_part, Complex): + recursive_add_xmlns_map(_part, base) + +def find_and_replace(base, mods): + base.xmlns_map = mods.xmlns_map + recursive_add_xmlns_map(base, mods) + rm = [] + for part in mods.parts: + try: + _name = part.name + except AttributeError: + continue + for _part in base.parts: + try: + if _name == _part.name: + rm.append(_part) + except AttributeError: + continue + for part in rm: + base.parts.remove(part) + base.parts.extend(mods.parts) + return base + +def read_schema(doc, add, defs, impo, modul, ignore, sdir): + for path in sdir: + fil = "%s%s" % (path, doc) + try: + fp = open(fil) + fp.close() + break + except IOError as e: + if e.errno == errno.EACCES: + continue + else: + raise Exception("Could not find schema file") + + tree = parse_nsmap(fil) + + known = NAMESPACE_BASE[:] + known.append(XML_NAMESPACE) + for key, namespace in tree._root.attrib["xmlns_map"].items(): + if namespace in known: + continue + else: + try: + modul[key] = modul[namespace] + impo[namespace][1] = key + except KeyError: + if namespace == tree._root.attrib["targetNamespace"]: + continue + elif namespace in ignore: + continue + else: + raise Exception("Undefined namespace: %s" % namespace) + + _schema = Schema(tree._root, impo, add, modul, defs) + _included_parts = [] + _remove_parts = [] + _replace = [] + for part in _schema.parts: + if isinstance(part, Include): + _sch = read_schema(part.schemaLocation, add, defs, impo, modul, + ignore, sdir) + # Add namespace information + recursive_add_xmlns_map(_sch, _schema) + _included_parts.extend(_sch.parts) + _remove_parts.append(part) + elif isinstance(part, Redefine): + # This is the schema that is going to be redefined + _redef = read_schema(part.schemaLocation, add, defs, impo, modul, + ignore, sdir) + # so find and replace + # Use the schema to be redefined as starting point + _replacement = find_and_replace(_redef, part) + _replace.append((part, _replacement.parts)) + + for part in _remove_parts: + _schema.parts.remove(part) + _schema.parts.extend(_included_parts) + if _replace: + for vad, med in _replace: + _schema.parts.remove(vad) + _schema.parts.extend(med) + return _schema + def main(argv): try: - opts, args = getopt.getopt(argv, "a:d:hi:I:", + opts, args = getopt.getopt(argv, "a:d:hi:I:s:", ["add=", "help", "import=", "defs="]) except getopt.GetoptError, err: # print help information and exit: @@ -2031,6 +2155,7 @@ def main(argv): impo = {} modul = {} ignore = [] + sdir = ["./"] for opt, arg in opts: if opt in ("-a", "--add"): @@ -2040,6 +2165,8 @@ def main(argv): elif opt in ("-h", "--help"): usage() sys.exit() + elif opt in ("-s", "--schemadir"): + sdir.append(arg) elif opt in ("-i", "--import"): mod = get_mod(arg, ['.']) modul[mod.NAMESPACE] = mod @@ -2053,28 +2180,8 @@ def main(argv): print "No XSD-file specified" usage() sys.exit(2) - - tree = parse_nsmap(args[0]) - - known = NAMESPACE_BASE[:] - known.append(XML_NAMESPACE) - for key, namespace in tree._root.attrib["xmlns_map"].items(): - if namespace in known: - continue - else: - try: - modul[key] = modul[namespace] - impo[namespace][1] = key - except KeyError: - if namespace == tree._root.attrib["targetNamespace"]: - continue - elif namespace in ignore: - continue - else: - raise Exception("Undefined namespace: %s" % namespace) - - schema = Schema(tree._root, impo, add, modul, defs) + schema = read_schema(args[0], add, defs, impo, modul, ignore, sdir) #print schema.__dict__ schema.out() |