diff --git a/external-schemata/.xsdata.xml b/external-schemata/.xsdata.xml new file mode 100644 index 00000000..f2b8d86c --- /dev/null +++ b/external-schemata/.xsdata.xml @@ -0,0 +1,37 @@ + + + + generated + dataclasses + filenames + + Blank + allGlobals + true + false + false + false + false + false + + + + + + + + + + + + + + + + + + + + + + diff --git a/external-schemata/CODEGEN.md b/external-schemata/CODEGEN.md new file mode 100644 index 00000000..33e886bd --- /dev/null +++ b/external-schemata/CODEGEN.md @@ -0,0 +1,10 @@ +Code generation from XSD data files is handled by `xsdata`. +The version of `xsdata` used to generate these files should be kept in +sync with the version in `pyproject.toml` to ensure compatibility, +and to keep the cumulative maintenance burden for `xsdata` upgrades low. + +Generated APIs are not part of pyHanko's public API for the purposes +of semver, and hence care should be exercised not to expose generated +types in public API signatures. + +Always generate code by running `genxml.sh` from the project's root directory. \ No newline at end of file diff --git a/external-schemata/genxml.sh b/external-schemata/genxml.sh new file mode 100755 index 00000000..8563b60e --- /dev/null +++ b/external-schemata/genxml.sh @@ -0,0 +1,9 @@ +#!/bin/bash +xsdata generate \ + --config ./external-schemata/.xsdata.xml \ + -p pyhanko.generated \ + --recursive \ + ./external-schemata/xsd/ + +isort --profile black --line-length 80 pyhanko/generated +black -S --line-length 80 pyhanko/generated \ No newline at end of file diff --git a/external-schemata/xsd/etsi/ts_11910202.xsd b/external-schemata/xsd/etsi/ts_11910202.xsd new file mode 100644 index 00000000..3439db71 --- /dev/null +++ b/external-schemata/xsd/etsi/ts_11910202.xsd @@ -0,0 +1,624 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/external-schemata/xsd/etsi/ts_119612.xsd b/external-schemata/xsd/etsi/ts_119612.xsd new file mode 100644 index 00000000..ad755a1e --- /dev/null +++ b/external-schemata/xsd/etsi/ts_119612.xsd @@ -0,0 +1,457 @@ + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.1.4 Language support + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.1.4 Language support + + + + + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.5 Scheme operator address + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.5.1 Scheme operator postal address + + + + + + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.5.2 Scheme operator electronic address + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.17 Scheme extensions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specified in TS 119 612 v2.1.1 clause 5.1.4 Language support + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.18 Trust Service Provider List + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3 Scheme information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.3 TSL type + +Specified in TS 119 612 v2.1.1 clause 5.3.4 Scheme operator name + +Specified in TS 119 612 v2.1.1 clause 5.3.6 Scheme name + +Specified in TS 119 612 v2.1.1 clause 5.3.7 Scheme information URI + + + +Specified in TS 119 612 v2.1.1 clause 5.3.9 Scheme type/community/rules + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.10 Scheme territory + + +Specified in TS 119 612 v2.1.1 clause 5.3.11 TSL policy/legal notice + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.15 Next update + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.13 Pointers to other TSLs + + + + + + + + + + + + + + + + + +pecified in TS 119 612 v2.1.1 clause 5.3.13 Pointers to other TSLs item b) from Format + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.13 Pointers to other TSLs item c) from Format + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.3.16 Distribution points + + +Specified in TS 119 612 v2.1.1 clause 5.3.18 Trust Service Provider List + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.4 TSP information + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.4.6 TSP Services (list of services) + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.5 Service information + + + + + + + + + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.5.4 Service current status + + + + +Specified in TS 119 612 v2.1.1 clause 5.5.7 Service supply points + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.5.1 Service type identifier + + +Specified in TS 119 612 v2.1.1 clause 5.5.3 Service digital identity + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.5.10 Service history + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.6 Service history instance + + + + + + + + + + + + + + + + + + + + +Specified in TS 119 612 v2.1.1 clause 5.5.9.4 expiredCertsRevocationInfo Extension + + +Specified in TS 119 612 v2.1.1 clause 5.5.9.1 additionalServiceInformation Extension + + + + + + + + + diff --git a/external-schemata/xsd/etsi/xades.xsd b/external-schemata/xsd/etsi/xades.xsd new file mode 100644 index 00000000..4197354a --- /dev/null +++ b/external-schemata/xsd/etsi/xades.xsd @@ -0,0 +1,466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/external-schemata/xsd/w3c/xmldsig_core.xsd b/external-schemata/xsd/w3c/xmldsig_core.xsd new file mode 100644 index 00000000..78195e01 --- /dev/null +++ b/external-schemata/xsd/w3c/xmldsig_core.xsd @@ -0,0 +1,318 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pyhanko/generated/__init__.py b/pyhanko/generated/__init__.py new file mode 100644 index 00000000..a11ed9ee --- /dev/null +++ b/pyhanko/generated/__init__.py @@ -0,0 +1,5 @@ +from .xml import Langvalue + +__all__ = [ + "Langvalue", +] diff --git a/pyhanko/generated/etsi/__init__.py b/pyhanko/generated/etsi/__init__.py new file mode 100644 index 00000000..85fac53d --- /dev/null +++ b/pyhanko/generated/etsi/__init__.py @@ -0,0 +1,437 @@ +from .ts_119612 import ( + AdditionalInformation, + AdditionalInformationType, + AdditionalServiceInformation, + AdditionalServiceInformationType, + AddressType, +) +from .ts_119612 import AnyType as Ts119612AnyType +from .ts_119612 import ( + AttributedNonEmptyURIType, + DigitalIdentityListType, + DigitalIdentityType, + DistributionPoints, + ElectronicAddress, + ElectronicAddressType, + ExpiredCertsRevocationInfo, + Extension, + ExtensionsListType, + ExtensionType, + InternationalNamesType, + MultiLangNormStringType, + MultiLangStringType, + NextUpdate, + NextUpdateType, + NonEmptyMultiLangURIListType, + NonEmptyMultiLangURIType, + NonEmptyURIListType, + OtherTSLPointer, + OtherTSLPointersType, + OtherTSLPointerType, + PointersToOtherTSL, + PolicyOrLegalNotice, + PolicyOrLegalnoticeType, + PostalAddress, + PostalAddresses, + PostalAddressListType, + PostalAddressType, + SchemeInformation, + SchemeInformationURI, + SchemeName, + SchemeOperatorName, + SchemeTerritory, + SchemeTypeCommunityRules, + ServiceDigitalIdentities, + ServiceDigitalIdentity, + ServiceDigitalIdentityListType, + ServiceHistory, + ServiceHistoryInstance, + ServiceHistoryInstanceType, + ServiceHistoryType, + ServiceInformation, + ServiceStatus, + ServiceSupplyPoints, + ServiceSupplyPointsType, + ServiceTypeIdentifier, + TrustServiceProvider, + TrustServiceProviderList, + TrustServiceProviderListType, + TrustServiceStatusList, + TrustStatusListType, + TSLSchemeInformationType, + TSLType, + TSPInformation, + TSPInformationType, + TSPService, + TSPServiceInformationType, + TSPServices, + TSPServicesListType, + TSPServiceType, + TSPType, +) +from .ts_11910202 import ( + AdditionalValidationReportDataType, + AttributeBaseType, + CertificateChainType, + ConstraintStatusType, + CryptoInformationType, + IndividualValidationConstraintReportType, + NsPrefixMappingType, + POEProvisioningType, + POEType, + RevocationStatusInformationType, + SACertIDListType, + SACertIDType, + SACommitmentTypeIndicationType, + SAContactInfoType, + SACounterSignatureType, + SACRLIDType, + SADataObjectFormatType, + SADSSType, + SAFilterType, + SAMessageDigestType, + SANameType, + SAOCSPIDType, + SAOneSignerRoleType, + SAOneSignerRoleTypeEndorsementType, + SAReasonType, + SARevIDListType, + SASignatureProductionPlaceType, + SASignerRoleType, + SASigningTimeType, + SASigPolicyIdentifierType, + SASubFilterType, + SATimestampType, + SAVRIType, + SignatureAttributesType, + SignatureIdentifierType, + SignatureQualityType, + SignatureReference, + SignatureReferenceType, + SignatureValidationPolicyType, + SignatureValidationProcessType, + SignatureValidationReportType, + SignatureValidatorType, + SignerInformationType, + SignersDocumentType, + TypedDataType, + ValidationConstraintsEvaluationReportType, + ValidationObjectListType, + ValidationObjectRepresentationType, + ValidationObjectType, + ValidationReport, + ValidationReportDataType, + ValidationReportType, + ValidationStatusType, + ValidationTimeInfoType, + VOReferenceType, + XAdESSignaturePtr, + XAdESSignaturePtrType, +) +from .xades import SPURI, AllDataObjectsTimeStamp, Anytype +from .xades import AnyType as XadesAnyType +from .xades import ( + ArchiveTimeStamp, + AttrAuthoritiesCertValues, + AttributeCertificateRefs, + AttributeRevocationRefs, + AttributeRevocationValues, + CertIDListType, + CertIDType, + CertificateValues, + CertificateValuesType, + CertifiedRolesListType, + ClaimedRolesListType, + CommitmentTypeIndication, + CommitmentTypeIndicationType, + CommitmentTypeQualifiersListType, + CompleteCertificateRefs, + CompleteCertificateRefsType, + CompleteRevocationRefs, + CompleteRevocationRefsType, + CounterSignature, + CounterSignatureType, + CRLIdentifierType, + CRLRefsType, + CRLRefType, + CRLValuesType, + DataObjectFormat, + DataObjectFormatType, + DigestAlgAndValueType, + DocumentationReferencesType, + EncapsulatedPKIData, + EncapsulatedPKIDataType, + GenericTimeStampType, + IdentifierType, + Include, + IncludeType, + IndividualDataObjectsTimeStamp, + IntegerListType, + NoticeReferenceType, + ObjectIdentifier, + ObjectIdentifierType, + OCSPIdentifierType, + OCSPRefsType, + OCSPRefType, + OCSPValuesType, + OtherCertStatusRefsType, + OtherCertStatusValuesType, + OtherTimeStamp, + OtherTimeStampType, + QualifierType, + QualifyingProperties, + QualifyingPropertiesReference, + QualifyingPropertiesReferenceType, + QualifyingPropertiesType, + ReferenceInfo, + ReferenceInfoType, + RefsOnlyTimeStamp, + ResponderIDType, + RevocationValues, + RevocationValuesType, + SigAndRefsTimeStamp, + SignaturePolicyIdentifier, + SignaturePolicyIdentifierType, + SignaturePolicyIdType, + SignatureProductionPlace, + SignatureProductionPlaceType, + SignatureTimeStamp, + SignedDataObjectProperties, + SignedDataObjectPropertiesType, + SignedProperties, + SignedPropertiesType, + SignedSignatureProperties, + SignedSignaturePropertiesType, + SignerRole, + SignerRoleType, + SigningCertificate, + SigningTime, + SigPolicyQualifiersListType, + SPUserNotice, + SPUserNoticeType, + UnsignedDataObjectProperties, + UnsignedDataObjectPropertiesType, + UnsignedProperties, + UnsignedPropertiesType, + UnsignedSignatureProperties, + UnsignedSignaturePropertiesType, + XAdESTimeStamp, + XAdESTimeStampType, +) + +__all__ = [ + "AdditionalValidationReportDataType", + "AttributeBaseType", + "CertificateChainType", + "ConstraintStatusType", + "CryptoInformationType", + "IndividualValidationConstraintReportType", + "NsPrefixMappingType", + "POEProvisioningType", + "POEType", + "RevocationStatusInformationType", + "SACRLIDType", + "SACertIDListType", + "SACertIDType", + "SACommitmentTypeIndicationType", + "SAContactInfoType", + "SACounterSignatureType", + "SADSSType", + "SADataObjectFormatType", + "SAFilterType", + "SAMessageDigestType", + "SANameType", + "SAOCSPIDType", + "SAOneSignerRoleType", + "SAOneSignerRoleTypeEndorsementType", + "SAReasonType", + "SARevIDListType", + "SASigPolicyIdentifierType", + "SASignatureProductionPlaceType", + "SASignerRoleType", + "SASigningTimeType", + "SASubFilterType", + "SATimestampType", + "SAVRIType", + "SignatureAttributesType", + "SignatureIdentifierType", + "SignatureQualityType", + "SignatureReference", + "SignatureReferenceType", + "SignatureValidationPolicyType", + "SignatureValidationProcessType", + "SignatureValidationReportType", + "SignatureValidatorType", + "SignerInformationType", + "SignersDocumentType", + "TypedDataType", + "VOReferenceType", + "ValidationConstraintsEvaluationReportType", + "ValidationObjectListType", + "ValidationObjectRepresentationType", + "ValidationObjectType", + "ValidationReport", + "ValidationReportDataType", + "ValidationReportType", + "ValidationStatusType", + "ValidationTimeInfoType", + "XAdESSignaturePtr", + "XAdESSignaturePtrType", + "AdditionalInformation", + "AdditionalInformationType", + "AdditionalServiceInformation", + "AdditionalServiceInformationType", + "AddressType", + "Ts119612AnyType", + "AttributedNonEmptyURIType", + "DigitalIdentityListType", + "DigitalIdentityType", + "DistributionPoints", + "ElectronicAddress", + "ElectronicAddressType", + "ExpiredCertsRevocationInfo", + "Extension", + "ExtensionType", + "ExtensionsListType", + "InternationalNamesType", + "MultiLangNormStringType", + "MultiLangStringType", + "NextUpdate", + "NextUpdateType", + "NonEmptyMultiLangURIListType", + "NonEmptyMultiLangURIType", + "NonEmptyURIListType", + "OtherTSLPointer", + "OtherTSLPointerType", + "OtherTSLPointersType", + "PointersToOtherTSL", + "PolicyOrLegalNotice", + "PolicyOrLegalnoticeType", + "PostalAddress", + "PostalAddressListType", + "PostalAddressType", + "PostalAddresses", + "SchemeInformation", + "SchemeInformationURI", + "SchemeName", + "SchemeOperatorName", + "SchemeTerritory", + "SchemeTypeCommunityRules", + "ServiceDigitalIdentities", + "ServiceDigitalIdentity", + "ServiceDigitalIdentityListType", + "ServiceHistory", + "ServiceHistoryInstance", + "ServiceHistoryInstanceType", + "ServiceHistoryType", + "ServiceInformation", + "ServiceStatus", + "ServiceSupplyPoints", + "ServiceSupplyPointsType", + "ServiceTypeIdentifier", + "TSLSchemeInformationType", + "TSLType", + "TSPInformation", + "TSPInformationType", + "TSPService", + "TSPServiceInformationType", + "TSPServiceType", + "TSPServices", + "TSPServicesListType", + "TSPType", + "TrustServiceProvider", + "TrustServiceProviderList", + "TrustServiceProviderListType", + "TrustServiceStatusList", + "TrustStatusListType", + "AllDataObjectsTimeStamp", + "Anytype", + "XadesAnyType", + "ArchiveTimeStamp", + "AttrAuthoritiesCertValues", + "AttributeCertificateRefs", + "AttributeRevocationRefs", + "AttributeRevocationValues", + "CRLIdentifierType", + "CRLRefType", + "CRLRefsType", + "CRLValuesType", + "CertIDListType", + "CertIDType", + "CertificateValues", + "CertificateValuesType", + "CertifiedRolesListType", + "ClaimedRolesListType", + "CommitmentTypeIndication", + "CommitmentTypeIndicationType", + "CommitmentTypeQualifiersListType", + "CompleteCertificateRefs", + "CompleteCertificateRefsType", + "CompleteRevocationRefs", + "CompleteRevocationRefsType", + "CounterSignature", + "CounterSignatureType", + "DataObjectFormat", + "DataObjectFormatType", + "DigestAlgAndValueType", + "DocumentationReferencesType", + "EncapsulatedPKIData", + "EncapsulatedPKIDataType", + "GenericTimeStampType", + "IdentifierType", + "Include", + "IncludeType", + "IndividualDataObjectsTimeStamp", + "IntegerListType", + "NoticeReferenceType", + "OCSPIdentifierType", + "OCSPRefType", + "OCSPRefsType", + "OCSPValuesType", + "ObjectIdentifier", + "ObjectIdentifierType", + "OtherCertStatusRefsType", + "OtherCertStatusValuesType", + "OtherTimeStamp", + "OtherTimeStampType", + "QualifierType", + "QualifyingProperties", + "QualifyingPropertiesReference", + "QualifyingPropertiesReferenceType", + "QualifyingPropertiesType", + "ReferenceInfo", + "ReferenceInfoType", + "RefsOnlyTimeStamp", + "ResponderIDType", + "RevocationValues", + "RevocationValuesType", + "SPURI", + "SPUserNotice", + "SPUserNoticeType", + "SigAndRefsTimeStamp", + "SigPolicyQualifiersListType", + "SignaturePolicyIdType", + "SignaturePolicyIdentifier", + "SignaturePolicyIdentifierType", + "SignatureProductionPlace", + "SignatureProductionPlaceType", + "SignatureTimeStamp", + "SignedDataObjectProperties", + "SignedDataObjectPropertiesType", + "SignedProperties", + "SignedPropertiesType", + "SignedSignatureProperties", + "SignedSignaturePropertiesType", + "SignerRole", + "SignerRoleType", + "SigningCertificate", + "SigningTime", + "UnsignedDataObjectProperties", + "UnsignedDataObjectPropertiesType", + "UnsignedProperties", + "UnsignedPropertiesType", + "UnsignedSignatureProperties", + "UnsignedSignaturePropertiesType", + "XAdESTimeStamp", + "XAdESTimeStampType", +] diff --git a/pyhanko/generated/etsi/ts_11910202.py b/pyhanko/generated/etsi/ts_11910202.py new file mode 100644 index 00000000..381de626 --- /dev/null +++ b/pyhanko/generated/etsi/ts_11910202.py @@ -0,0 +1,1779 @@ +from dataclasses import dataclass, field +from enum import Enum +from typing import Optional, Tuple + +from xsdata.models.datatype import XmlDateTime + +from ..w3c.xmldsig_core import DigestMethod, Signature, SignatureValue +from .ts_119612 import DigitalIdentityType, TSPInformationType +from .xades import DigestAlgAndValueType, SignaturePolicyIdentifierType + +__NAMESPACE__ = "http://uri.etsi.org/19102/v1.2.1#" + + +@dataclass(frozen=True) +class ConstraintStatusType: + status: Optional[str] = field( + default=None, + metadata={ + "name": "Status", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + overridden_by: Optional[str] = field( + default=None, + metadata={ + "name": "OverriddenBy", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class NsPrefixMappingType: + namespace_uri: Optional[str] = field( + default=None, + metadata={ + "name": "NamespaceURI", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + namespace_prefix: Optional[str] = field( + default=None, + metadata={ + "name": "NamespacePrefix", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SAFilterType: + filter: Optional[str] = field( + default=None, + metadata={ + "name": "Filter", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SAOCSPIDType: + produced_at: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "ProducedAt", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + responder_idby_name: Optional[str] = field( + default=None, + metadata={ + "name": "ResponderIDByName", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + responder_idby_key: Optional[bytes] = field( + default=None, + metadata={ + "name": "ResponderIDByKey", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "format": "base64", + }, + ) + + +class SAOneSignerRoleTypeEndorsementType(Enum): + CERTIFIED = "certified" + CLAIMED = "claimed" + SIGNED = "signed" + + +@dataclass(frozen=True) +class SignatureQualityType: + signature_quality_information: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "SignatureQualityInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class SignatureValidationProcessType: + signature_validation_process_id: Optional[str] = field( + default=None, + metadata={ + "name": "SignatureValidationProcessID", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_validation_service_policy: Optional[str] = field( + default=None, + metadata={ + "name": "SignatureValidationServicePolicy", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_validation_practice_statement: Optional[str] = field( + default=None, + metadata={ + "name": "SignatureValidationPracticeStatement", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class TypedDataType: + type_value: Optional[str] = field( + default=None, + metadata={ + "name": "Type", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + value: Optional[object] = field( + default=None, + metadata={ + "name": "Value", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class VOReferenceType: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + voreference: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "VOReference", + "type": "Attribute", + "required": True, + "tokens": True, + }, + ) + + +@dataclass(frozen=True) +class AdditionalValidationReportDataType: + report_data: Tuple[TypedDataType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ReportData", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class AttributeBaseType: + attribute_object: Tuple[VOReferenceType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttributeObject", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signed: Optional[bool] = field( + default=None, + metadata={ + "name": "Signed", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class CertificateChainType: + signing_certificate: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "SigningCertificate", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + intermediate_certificate: Tuple[VOReferenceType, ...] = field( + default_factory=tuple, + metadata={ + "name": "IntermediateCertificate", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + trust_anchor: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "TrustAnchor", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class CryptoInformationType: + validation_object_id: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "ValidationObjectId", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + algorithm: Optional[str] = field( + default=None, + metadata={ + "name": "Algorithm", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + algorithm_parameters: Optional[TypedDataType] = field( + default=None, + metadata={ + "name": "AlgorithmParameters", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + secure_algorithm: Optional[bool] = field( + default=None, + metadata={ + "name": "SecureAlgorithm", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + not_after: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "NotAfter", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class POEType: + poetime: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "POETime", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + type_of_proof: Optional[str] = field( + default=None, + metadata={ + "name": "TypeOfProof", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + poeobject: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "POEObject", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class RevocationStatusInformationType: + validation_object_id: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "ValidationObjectId", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + revocation_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "RevocationTime", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + revocation_reason: Optional[str] = field( + default=None, + metadata={ + "name": "RevocationReason", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + revocation_object: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "RevocationObject", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class SACRLIDType: + digest_method: Optional[DigestMethod] = field( + default=None, + metadata={ + "name": "DigestMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + digest_value: Optional[bytes] = field( + default=None, + metadata={ + "name": "DigestValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class SACertIDType: + x509_issuer_serial: Optional[bytes] = field( + default=None, + metadata={ + "name": "X509IssuerSerial", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "format": "base64", + }, + ) + digest_method: Optional[DigestMethod] = field( + default=None, + metadata={ + "name": "DigestMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + digest_value: Optional[bytes] = field( + default=None, + metadata={ + "name": "DigestValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class SAOneSignerRoleType: + role: Optional[str] = field( + default=None, + metadata={ + "name": "Role", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + endorsement_type: Optional[SAOneSignerRoleTypeEndorsementType] = field( + default=None, + metadata={ + "name": "EndorsementType", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SignatureIdentifierType: + digest_alg_and_value: Optional[DigestAlgAndValueType] = field( + default=None, + metadata={ + "name": "DigestAlgAndValue", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_value: Optional[SignatureValue] = field( + default=None, + metadata={ + "name": "SignatureValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + hash_only: Optional[bool] = field( + default=None, + metadata={ + "name": "HashOnly", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + doc_hash_only: Optional[bool] = field( + default=None, + metadata={ + "name": "DocHashOnly", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + daidentifier: Optional[str] = field( + default=None, + metadata={ + "name": "DAIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SignatureValidationPolicyType: + signature_policy_identifier: Optional[ + SignaturePolicyIdentifierType + ] = field( + default=None, + metadata={ + "name": "SignaturePolicyIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + policy_name: Optional[str] = field( + default=None, + metadata={ + "name": "PolicyName", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + formal_policy_uri: Optional[str] = field( + default=None, + metadata={ + "name": "FormalPolicyURI", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + readable_policy_uri: Optional[str] = field( + default=None, + metadata={ + "name": "ReadablePolicyURI", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + formal_policy_object: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "FormalPolicyObject", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SignatureValidatorType: + digital_id: Tuple[DigitalIdentityType, ...] = field( + default_factory=tuple, + metadata={ + "name": "DigitalId", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + }, + ) + tspinformation: Optional[TSPInformationType] = field( + default=None, + metadata={ + "name": "TSPInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class SignerInformationType: + signer_certificate: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "SignerCertificate", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + signer: Optional[str] = field( + default=None, + metadata={ + "name": "Signer", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + pseudonym: Optional[bool] = field( + default=None, + metadata={ + "name": "Pseudonym", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SignersDocumentType: + digest_alg_and_value: Optional[DigestAlgAndValueType] = field( + default=None, + metadata={ + "name": "DigestAlgAndValue", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + signers_document_representation: Tuple[VOReferenceType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SignersDocumentRepresentation", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + "max_occurs": 2, + "sequence": 1, + }, + ) + signers_document_ref: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "SignersDocumentRef", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class ValidationObjectRepresentationType: + direct: Optional[object] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + base64: Optional[bytes] = field( + default=None, + metadata={ + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "format": "base64", + }, + ) + digest_alg_and_value: Optional[DigestAlgAndValueType] = field( + default=None, + metadata={ + "name": "DigestAlgAndValue", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class XAdESSignaturePtrType: + ns_prefix_mapping: Tuple[NsPrefixMappingType, ...] = field( + default_factory=tuple, + metadata={ + "name": "NsPrefixMapping", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + which_document: Optional[str] = field( + default=None, + metadata={ + "name": "WhichDocument", + "type": "Attribute", + }, + ) + xpath: Optional[str] = field( + default=None, + metadata={ + "name": "XPath", + "type": "Attribute", + }, + ) + schema_refs: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "SchemaRefs", + "type": "Attribute", + "tokens": True, + }, + ) + + +@dataclass(frozen=True) +class SACertIDListType(AttributeBaseType): + cert_id: Tuple[SACertIDType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CertID", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SACommitmentTypeIndicationType(AttributeBaseType): + commitment_type_identifier: Optional[str] = field( + default=None, + metadata={ + "name": "CommitmentTypeIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SAContactInfoType(AttributeBaseType): + contact_info_element: Optional[str] = field( + default=None, + metadata={ + "name": "ContactInfoElement", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SADSSType(AttributeBaseType): + certs: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "Certs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + crls: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "CRLs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + ocsps: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "OCSPs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SADataObjectFormatType(AttributeBaseType): + content_type: Optional[str] = field( + default=None, + metadata={ + "name": "ContentType", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + mime_type: Optional[str] = field( + default=None, + metadata={ + "name": "MimeType", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SAMessageDigestType(AttributeBaseType): + digest: Optional[bytes] = field( + default=None, + metadata={ + "name": "Digest", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class SANameType(AttributeBaseType): + name_element: Optional[str] = field( + default=None, + metadata={ + "name": "NameElement", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SAReasonType(AttributeBaseType): + reason_element: Optional[str] = field( + default=None, + metadata={ + "name": "ReasonElement", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SARevIDListType(AttributeBaseType): + crlid: Tuple[SACRLIDType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CRLID", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + ocspid: Tuple[SAOCSPIDType, ...] = field( + default_factory=tuple, + metadata={ + "name": "OCSPID", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SASigPolicyIdentifierType(AttributeBaseType): + sig_policy_id: Optional[str] = field( + default=None, + metadata={ + "name": "SigPolicyId", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SASignatureProductionPlaceType(AttributeBaseType): + address_string: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "AddressString", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class SASignerRoleType(AttributeBaseType): + role_details: Tuple[SAOneSignerRoleType, ...] = field( + default_factory=tuple, + metadata={ + "name": "RoleDetails", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class SASigningTimeType(AttributeBaseType): + time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "Time", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SASubFilterType(AttributeBaseType): + sub_filter_element: Optional[str] = field( + default=None, + metadata={ + "name": "SubFilterElement", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SATimestampType(AttributeBaseType): + time_stamp_value: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "TimeStampValue", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class ValidationReportDataType: + trust_anchor: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "TrustAnchor", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + certificate_chain: Optional[CertificateChainType] = field( + default=None, + metadata={ + "name": "CertificateChain", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + related_validation_object: Tuple[VOReferenceType, ...] = field( + default_factory=tuple, + metadata={ + "name": "RelatedValidationObject", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + revocation_status_information: Optional[ + RevocationStatusInformationType + ] = field( + default=None, + metadata={ + "name": "RevocationStatusInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + crypto_information: Optional[CryptoInformationType] = field( + default=None, + metadata={ + "name": "CryptoInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + additional_validation_report_data: Optional[ + AdditionalValidationReportDataType + ] = field( + default=None, + metadata={ + "name": "AdditionalValidationReportData", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class ValidationTimeInfoType: + validation_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "ValidationTime", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + best_signature_time: Optional[POEType] = field( + default=None, + metadata={ + "name": "BestSignatureTime", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class XAdESSignaturePtr(XAdESSignaturePtrType): + class Meta: + namespace = "http://uri.etsi.org/19102/v1.2.1#" + + +@dataclass(frozen=True) +class SAVRIType(AttributeBaseType): + certs: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "Certs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + crls: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "CRLs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + ocsps: Optional[VOReferenceType] = field( + default=None, + metadata={ + "name": "OCSPs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + tu: Optional[str] = field( + default=None, + metadata={ + "name": "TU", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + ts: Optional[SATimestampType] = field( + default=None, + metadata={ + "name": "TS", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SignatureReferenceType: + canonicalization_method: Optional[str] = field( + default=None, + metadata={ + "name": "CanonicalizationMethod", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + digest_method: Optional[str] = field( + default=None, + metadata={ + "name": "DigestMethod", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + digest_value: Optional[bytes] = field( + default=None, + metadata={ + "name": "DigestValue", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "format": "base64", + }, + ) + xad_essignature_ptr: Optional[XAdESSignaturePtr] = field( + default=None, + metadata={ + "name": "XAdESSignaturePtr", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + pad_esfield_name: Optional[str] = field( + default=None, + metadata={ + "name": "PAdESFieldName", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class ValidationStatusType: + main_indication: Optional[str] = field( + default=None, + metadata={ + "name": "MainIndication", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + sub_indication: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "SubIndication", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + associated_validation_report_data: Tuple[ + ValidationReportDataType, ... + ] = field( + default_factory=tuple, + metadata={ + "name": "AssociatedValidationReportData", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class IndividualValidationConstraintReportType: + validation_constraint_identifier: Optional[str] = field( + default=None, + metadata={ + "name": "ValidationConstraintIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + validation_constraint_parameter: Tuple[TypedDataType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ValidationConstraintParameter", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + constraint_status: Optional[ConstraintStatusType] = field( + default=None, + metadata={ + "name": "ConstraintStatus", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + validation_status: Optional[ValidationStatusType] = field( + default=None, + metadata={ + "name": "ValidationStatus", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + indications: Optional[object] = field( + default=None, + metadata={ + "name": "Indications", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class POEProvisioningType: + poetime: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "POETime", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + validation_object: Tuple[VOReferenceType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ValidationObject", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_reference: Tuple[SignatureReferenceType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SignatureReference", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SACounterSignatureType(AttributeBaseType): + counter_signature: Optional[SignatureReferenceType] = field( + default=None, + metadata={ + "name": "CounterSignature", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SignatureReference(SignatureReferenceType): + class Meta: + namespace = "http://uri.etsi.org/19102/v1.2.1#" + + +@dataclass(frozen=True) +class SignatureAttributesType: + signing_time: Tuple[SASigningTimeType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SigningTime", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signing_certificate: Tuple[SACertIDListType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SigningCertificate", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + data_object_format: Tuple[SADataObjectFormatType, ...] = field( + default_factory=tuple, + metadata={ + "name": "DataObjectFormat", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + commitment_type_indication: Tuple[ + SACommitmentTypeIndicationType, ... + ] = field( + default_factory=tuple, + metadata={ + "name": "CommitmentTypeIndication", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + all_data_objects_time_stamp: Tuple[SATimestampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AllDataObjectsTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + individual_data_objects_time_stamp: Tuple[SATimestampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "IndividualDataObjectsTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + sig_policy_identifier: Tuple[SASigPolicyIdentifierType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SigPolicyIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_production_place: Tuple[ + SASignatureProductionPlaceType, ... + ] = field( + default_factory=tuple, + metadata={ + "name": "SignatureProductionPlace", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signer_role: Tuple[SASignerRoleType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SignerRole", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + counter_signature: Tuple[SACounterSignatureType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CounterSignature", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_time_stamp: Tuple[SATimestampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SignatureTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + complete_certificate_refs: Tuple[SACertIDListType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CompleteCertificateRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + complete_revocation_refs: Tuple[SARevIDListType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CompleteRevocationRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + attribute_certificate_refs: Tuple[SACertIDListType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttributeCertificateRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + attribute_revocation_refs: Tuple[SARevIDListType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttributeRevocationRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + sig_and_refs_time_stamp: Tuple[SATimestampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SigAndRefsTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + refs_only_time_stamp: Tuple[SATimestampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "RefsOnlyTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + certificate_values: Tuple[AttributeBaseType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CertificateValues", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + revocation_values: Tuple[AttributeBaseType, ...] = field( + default_factory=tuple, + metadata={ + "name": "RevocationValues", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + attr_authorities_cert_values: Tuple[AttributeBaseType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttrAuthoritiesCertValues", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + attribute_revocation_values: Tuple[AttributeBaseType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttributeRevocationValues", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + time_stamp_validation_data: Tuple[AttributeBaseType, ...] = field( + default_factory=tuple, + metadata={ + "name": "TimeStampValidationData", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + archive_time_stamp: Tuple[SATimestampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ArchiveTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + renewed_digests: Tuple[Tuple[int, ...], ...] = field( + default_factory=tuple, + metadata={ + "name": "RenewedDigests", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "tokens": True, + }, + ) + message_digest: Tuple[SAMessageDigestType, ...] = field( + default_factory=tuple, + metadata={ + "name": "MessageDigest", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + dss: Tuple[SADSSType, ...] = field( + default_factory=tuple, + metadata={ + "name": "DSS", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + vri: Tuple[SAVRIType, ...] = field( + default_factory=tuple, + metadata={ + "name": "VRI", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + doc_time_stamp: Tuple[SATimestampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "DocTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + reason: Tuple[SAReasonType, ...] = field( + default_factory=tuple, + metadata={ + "name": "Reason", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + name: Tuple[SANameType, ...] = field( + default_factory=tuple, + metadata={ + "name": "Name", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + contact_info: Tuple[SAContactInfoType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ContactInfo", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + sub_filter: Tuple[SASubFilterType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SubFilter", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + byte_range: Tuple[Tuple[int, ...], ...] = field( + default_factory=tuple, + metadata={ + "name": "ByteRange", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "tokens": True, + }, + ) + filter: Tuple[SAFilterType, ...] = field( + default_factory=tuple, + metadata={ + "name": "Filter", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class ValidationConstraintsEvaluationReportType: + signature_validation_policy: Optional[ + SignatureValidationPolicyType + ] = field( + default=None, + metadata={ + "name": "SignatureValidationPolicy", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + validation_constraint: Tuple[ + IndividualValidationConstraintReportType, ... + ] = field( + default_factory=tuple, + metadata={ + "name": "ValidationConstraint", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + + +@dataclass(frozen=True) +class SignatureValidationReportType: + signature_identifier: Optional[SignatureIdentifierType] = field( + default=None, + metadata={ + "name": "SignatureIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + validation_constraints_evaluation_report: Optional[ + ValidationConstraintsEvaluationReportType + ] = field( + default=None, + metadata={ + "name": "ValidationConstraintsEvaluationReport", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + validation_time_info: Optional[ValidationTimeInfoType] = field( + default=None, + metadata={ + "name": "ValidationTimeInfo", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signers_document: Optional[SignersDocumentType] = field( + default=None, + metadata={ + "name": "SignersDocument", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_attributes: Optional[SignatureAttributesType] = field( + default=None, + metadata={ + "name": "SignatureAttributes", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signer_information: Optional[SignerInformationType] = field( + default=None, + metadata={ + "name": "SignerInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_quality: Optional[SignatureQualityType] = field( + default=None, + metadata={ + "name": "SignatureQuality", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_validation_process: Optional[ + SignatureValidationProcessType + ] = field( + default=None, + metadata={ + "name": "SignatureValidationProcess", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_validation_status: Optional[ValidationStatusType] = field( + default=None, + metadata={ + "name": "SignatureValidationStatus", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + any_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass(frozen=True) +class ValidationObjectType: + object_type: Optional[str] = field( + default=None, + metadata={ + "name": "ObjectType", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + validation_object_representation: Optional[ + ValidationObjectRepresentationType + ] = field( + default=None, + metadata={ + "name": "ValidationObjectRepresentation", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "required": True, + }, + ) + poe: Optional[POEType] = field( + default=None, + metadata={ + "name": "POE", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + poeprovisioning: Optional[POEProvisioningType] = field( + default=None, + metadata={ + "name": "POEProvisioning", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + validation_report: Optional[SignatureValidationReportType] = field( + default=None, + metadata={ + "name": "ValidationReport", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class ValidationObjectListType: + validation_object: Tuple[ValidationObjectType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ValidationObject", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class ValidationReportType: + signature_validation_report: Tuple[ + SignatureValidationReportType, ... + ] = field( + default_factory=tuple, + metadata={ + "name": "SignatureValidationReport", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + "min_occurs": 1, + }, + ) + signature_validation_objects: Optional[ValidationObjectListType] = field( + default=None, + metadata={ + "name": "SignatureValidationObjects", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature_validator: Optional[SignatureValidatorType] = field( + default=None, + metadata={ + "name": "SignatureValidator", + "type": "Element", + "namespace": "http://uri.etsi.org/19102/v1.2.1#", + }, + ) + signature: Optional[Signature] = field( + default=None, + metadata={ + "name": "Signature", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + + +@dataclass(frozen=True) +class ValidationReport(ValidationReportType): + class Meta: + namespace = "http://uri.etsi.org/19102/v1.2.1#" diff --git a/pyhanko/generated/etsi/ts_119612.py b/pyhanko/generated/etsi/ts_119612.py new file mode 100644 index 00000000..4513017a --- /dev/null +++ b/pyhanko/generated/etsi/ts_119612.py @@ -0,0 +1,1182 @@ +from dataclasses import dataclass, field +from typing import Optional, Tuple, Union + +from xsdata.models.datatype import XmlDateTime + +from ..w3c.xmldsig_core import KeyValue, Signature +from ..xml import Langvalue + +__NAMESPACE__ = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class AnyType: + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass(frozen=True) +class AttributedNonEmptyURIType: + value: str = field( + default="", + metadata={ + "required": True, + "min_length": 1, + }, + ) + type_value: Optional[str] = field( + default=None, + metadata={ + "name": "type", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class ExpiredCertsRevocationInfo: + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + value: Optional[XmlDateTime] = field( + default=None, + metadata={ + "required": True, + }, + ) + + +@dataclass(frozen=True) +class NextUpdateType: + date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "dateTime", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class NonEmptyURIListType: + uri: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "URI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + "min_length": 1, + }, + ) + + +@dataclass(frozen=True) +class SchemeTerritory: + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + + +@dataclass(frozen=True) +class ServiceStatus: + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + value: str = field( + default="", + metadata={ + "required": True, + "min_length": 1, + }, + ) + + +@dataclass(frozen=True) +class ServiceTypeIdentifier: + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + value: str = field( + default="", + metadata={ + "required": True, + "min_length": 1, + }, + ) + + +@dataclass(frozen=True) +class TSLType: + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + value: str = field( + default="", + metadata={ + "required": True, + "min_length": 1, + }, + ) + + +@dataclass(frozen=True) +class DigitalIdentityType: + x509_certificate: Optional[bytes] = field( + default=None, + metadata={ + "name": "X509Certificate", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "format": "base64", + }, + ) + x509_subject_name: Optional[str] = field( + default=None, + metadata={ + "name": "X509SubjectName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + key_value: Optional[KeyValue] = field( + default=None, + metadata={ + "name": "KeyValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + x509_ski: Optional[bytes] = field( + default=None, + metadata={ + "name": "X509SKI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "format": "base64", + }, + ) + other: Optional[AnyType] = field( + default=None, + metadata={ + "name": "Other", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class DistributionPoints(NonEmptyURIListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ExtensionType(AnyType): + critical: Optional[bool] = field( + default=None, + metadata={ + "name": "Critical", + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class MultiLangNormStringType: + value: str = field( + default="", + metadata={ + "required": True, + "min_length": 1, + }, + ) + lang: Optional[Union[str, Langvalue]] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "http://www.w3.org/XML/1998/namespace", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class MultiLangStringType: + value: str = field( + default="", + metadata={ + "required": True, + "min_length": 1, + }, + ) + lang: Optional[Union[str, Langvalue]] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "http://www.w3.org/XML/1998/namespace", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class NextUpdate(NextUpdateType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class NonEmptyMultiLangURIType: + value: str = field( + default="", + metadata={ + "required": True, + "min_length": 1, + }, + ) + lang: Optional[Union[str, Langvalue]] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "http://www.w3.org/XML/1998/namespace", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class PostalAddressType: + street_address: Optional[str] = field( + default=None, + metadata={ + "name": "StreetAddress", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + locality: Optional[str] = field( + default=None, + metadata={ + "name": "Locality", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + state_or_province: Optional[str] = field( + default=None, + metadata={ + "name": "StateOrProvince", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_length": 1, + }, + ) + postal_code: Optional[str] = field( + default=None, + metadata={ + "name": "PostalCode", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_length": 1, + }, + ) + country_name: Optional[str] = field( + default=None, + metadata={ + "name": "CountryName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + lang: Optional[Union[str, Langvalue]] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "http://www.w3.org/XML/1998/namespace", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class ServiceSupplyPointsType: + service_supply_point: Tuple[AttributedNonEmptyURIType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ServiceSupplyPoint", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class AdditionalInformationType: + textual_information: Tuple[MultiLangStringType, ...] = field( + default_factory=tuple, + metadata={ + "name": "TextualInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + other_information: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "OtherInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class AdditionalServiceInformationType: + uri: Optional[NonEmptyMultiLangURIType] = field( + default=None, + metadata={ + "name": "URI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + information_value: Optional[str] = field( + default=None, + metadata={ + "name": "InformationValue", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + other_information: Optional[AnyType] = field( + default=None, + metadata={ + "name": "OtherInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class DigitalIdentityListType: + digital_id: Tuple[DigitalIdentityType, ...] = field( + default_factory=tuple, + metadata={ + "name": "DigitalId", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class ElectronicAddressType: + uri: Tuple[NonEmptyMultiLangURIType, ...] = field( + default_factory=tuple, + metadata={ + "name": "URI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class Extension(ExtensionType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class InternationalNamesType: + name: Tuple[MultiLangNormStringType, ...] = field( + default_factory=tuple, + metadata={ + "name": "Name", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class NonEmptyMultiLangURIListType: + uri: Tuple[NonEmptyMultiLangURIType, ...] = field( + default_factory=tuple, + metadata={ + "name": "URI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class PolicyOrLegalnoticeType: + tslpolicy: Tuple[NonEmptyMultiLangURIType, ...] = field( + default_factory=tuple, + metadata={ + "name": "TSLPolicy", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + tsllegal_notice: Tuple[MultiLangStringType, ...] = field( + default_factory=tuple, + metadata={ + "name": "TSLLegalNotice", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class PostalAddress(PostalAddressType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ServiceSupplyPoints(ServiceSupplyPointsType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class AdditionalInformation(AdditionalInformationType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class AdditionalServiceInformation(AdditionalServiceInformationType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ElectronicAddress(ElectronicAddressType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ExtensionsListType: + extension: Tuple[Extension, ...] = field( + default_factory=tuple, + metadata={ + "name": "Extension", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class PolicyOrLegalNotice(PolicyOrLegalnoticeType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class PostalAddressListType: + postal_address: Tuple[PostalAddress, ...] = field( + default_factory=tuple, + metadata={ + "name": "PostalAddress", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class SchemeInformationURI(NonEmptyMultiLangURIListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class SchemeName(InternationalNamesType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class SchemeOperatorName(InternationalNamesType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class SchemeTypeCommunityRules(NonEmptyMultiLangURIListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ServiceDigitalIdentity(DigitalIdentityListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class PostalAddresses(PostalAddressListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ServiceDigitalIdentityListType: + service_digital_identity: Tuple[ServiceDigitalIdentity, ...] = field( + default_factory=tuple, + metadata={ + "name": "ServiceDigitalIdentity", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class ServiceHistoryInstanceType: + service_type_identifier: Optional[str] = field( + default=None, + metadata={ + "name": "ServiceTypeIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + service_name: Optional[InternationalNamesType] = field( + default=None, + metadata={ + "name": "ServiceName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + service_digital_identity: Optional[ServiceDigitalIdentity] = field( + default=None, + metadata={ + "name": "ServiceDigitalIdentity", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + service_status: Optional[str] = field( + default=None, + metadata={ + "name": "ServiceStatus", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + status_starting_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "StatusStartingTime", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + service_information_extensions: Optional[ExtensionsListType] = field( + default=None, + metadata={ + "name": "ServiceInformationExtensions", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class TSPServiceInformationType: + service_type_identifier: Optional[str] = field( + default=None, + metadata={ + "name": "ServiceTypeIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + service_name: Optional[InternationalNamesType] = field( + default=None, + metadata={ + "name": "ServiceName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + service_digital_identity: Optional[ServiceDigitalIdentity] = field( + default=None, + metadata={ + "name": "ServiceDigitalIdentity", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + service_status: Optional[str] = field( + default=None, + metadata={ + "name": "ServiceStatus", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + status_starting_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "StatusStartingTime", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + scheme_service_definition_uri: Optional[ + NonEmptyMultiLangURIListType + ] = field( + default=None, + metadata={ + "name": "SchemeServiceDefinitionURI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + service_supply_points: Optional[ServiceSupplyPoints] = field( + default=None, + metadata={ + "name": "ServiceSupplyPoints", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + tspservice_definition_uri: Optional[NonEmptyMultiLangURIListType] = field( + default=None, + metadata={ + "name": "TSPServiceDefinitionURI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + service_information_extensions: Optional[ExtensionsListType] = field( + default=None, + metadata={ + "name": "ServiceInformationExtensions", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class AddressType: + postal_addresses: Optional[PostalAddresses] = field( + default=None, + metadata={ + "name": "PostalAddresses", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + electronic_address: Optional[ElectronicAddress] = field( + default=None, + metadata={ + "name": "ElectronicAddress", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class ServiceDigitalIdentities(ServiceDigitalIdentityListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ServiceHistoryInstance(ServiceHistoryInstanceType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ServiceInformation(TSPServiceInformationType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class OtherTSLPointerType: + service_digital_identities: Optional[ServiceDigitalIdentities] = field( + default=None, + metadata={ + "name": "ServiceDigitalIdentities", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + tsllocation: Optional[str] = field( + default=None, + metadata={ + "name": "TSLLocation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + additional_information: Optional[AdditionalInformation] = field( + default=None, + metadata={ + "name": "AdditionalInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class ServiceHistoryType: + service_history_instance: Tuple[ServiceHistoryInstance, ...] = field( + default_factory=tuple, + metadata={ + "name": "ServiceHistoryInstance", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class TSPInformationType: + tspname: Optional[InternationalNamesType] = field( + default=None, + metadata={ + "name": "TSPName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + tsptrade_name: Optional[InternationalNamesType] = field( + default=None, + metadata={ + "name": "TSPTradeName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + tspaddress: Optional[AddressType] = field( + default=None, + metadata={ + "name": "TSPAddress", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + tspinformation_uri: Optional[NonEmptyMultiLangURIListType] = field( + default=None, + metadata={ + "name": "TSPInformationURI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + tspinformation_extensions: Optional[ExtensionsListType] = field( + default=None, + metadata={ + "name": "TSPInformationExtensions", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class OtherTSLPointer(OtherTSLPointerType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class ServiceHistory(ServiceHistoryType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class TSPInformation(TSPInformationType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class OtherTSLPointersType: + other_tslpointer: Tuple[OtherTSLPointer, ...] = field( + default_factory=tuple, + metadata={ + "name": "OtherTSLPointer", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class TSPServiceType: + service_information: Optional[ServiceInformation] = field( + default=None, + metadata={ + "name": "ServiceInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + service_history: Optional[ServiceHistory] = field( + default=None, + metadata={ + "name": "ServiceHistory", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class PointersToOtherTSL(OtherTSLPointersType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class TSPService(TSPServiceType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class TSLSchemeInformationType: + tslversion_identifier: Optional[int] = field( + default=None, + metadata={ + "name": "TSLVersionIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + tslsequence_number: Optional[int] = field( + default=None, + metadata={ + "name": "TSLSequenceNumber", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + tsltype: Optional[str] = field( + default=None, + metadata={ + "name": "TSLType", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + scheme_operator_name: Optional[SchemeOperatorName] = field( + default=None, + metadata={ + "name": "SchemeOperatorName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + scheme_operator_address: Optional[AddressType] = field( + default=None, + metadata={ + "name": "SchemeOperatorAddress", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + scheme_name: Optional[SchemeName] = field( + default=None, + metadata={ + "name": "SchemeName", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + scheme_information_uri: Optional[SchemeInformationURI] = field( + default=None, + metadata={ + "name": "SchemeInformationURI", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + status_determination_approach: Optional[str] = field( + default=None, + metadata={ + "name": "StatusDeterminationApproach", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + "min_length": 1, + }, + ) + scheme_type_community_rules: Optional[SchemeTypeCommunityRules] = field( + default=None, + metadata={ + "name": "SchemeTypeCommunityRules", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + scheme_territory: Optional[str] = field( + default=None, + metadata={ + "name": "SchemeTerritory", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + policy_or_legal_notice: Optional[PolicyOrLegalNotice] = field( + default=None, + metadata={ + "name": "PolicyOrLegalNotice", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + historical_information_period: Optional[int] = field( + default=None, + metadata={ + "name": "HistoricalInformationPeriod", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + pointers_to_other_tsl: Optional[PointersToOtherTSL] = field( + default=None, + metadata={ + "name": "PointersToOtherTSL", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + list_issue_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "ListIssueDateTime", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + next_update: Optional[NextUpdate] = field( + default=None, + metadata={ + "name": "NextUpdate", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + distribution_points: Optional[DistributionPoints] = field( + default=None, + metadata={ + "name": "DistributionPoints", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + scheme_extensions: Optional[ExtensionsListType] = field( + default=None, + metadata={ + "name": "SchemeExtensions", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + + +@dataclass(frozen=True) +class TSPServicesListType: + tspservice: Tuple[TSPService, ...] = field( + default_factory=tuple, + metadata={ + "name": "TSPService", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class SchemeInformation(TSLSchemeInformationType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class TSPServices(TSPServicesListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class TSPType: + tspinformation: Optional[TSPInformation] = field( + default=None, + metadata={ + "name": "TSPInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + tspservices: Optional[TSPServices] = field( + default=None, + metadata={ + "name": "TSPServices", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class TrustServiceProvider(TSPType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class TrustServiceProviderListType: + trust_service_provider: Tuple[TrustServiceProvider, ...] = field( + default_factory=tuple, + metadata={ + "name": "TrustServiceProvider", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class TrustServiceProviderList(TrustServiceProviderListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" + + +@dataclass(frozen=True) +class TrustStatusListType: + scheme_information: Optional[SchemeInformation] = field( + default=None, + metadata={ + "name": "SchemeInformation", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + "required": True, + }, + ) + trust_service_provider_list: Optional[TrustServiceProviderList] = field( + default=None, + metadata={ + "name": "TrustServiceProviderList", + "type": "Element", + "namespace": "http://uri.etsi.org/02231/v2#", + }, + ) + signature: Optional[Signature] = field( + default=None, + metadata={ + "name": "Signature", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + tsltag: Optional[str] = field( + default=None, + metadata={ + "name": "TSLTag", + "type": "Attribute", + "required": True, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class TrustServiceStatusList(TrustStatusListType): + class Meta: + namespace = "http://uri.etsi.org/02231/v2#" diff --git a/pyhanko/generated/etsi/xades.py b/pyhanko/generated/etsi/xades.py new file mode 100644 index 00000000..15b7de70 --- /dev/null +++ b/pyhanko/generated/etsi/xades.py @@ -0,0 +1,1557 @@ +from dataclasses import dataclass, field +from enum import Enum +from typing import Dict, Optional, Tuple + +from xsdata.models.datatype import XmlDateTime + +from ..w3c.xmldsig_core import ( + CanonicalizationMethod, + DigestMethod, + Signature, + Transforms, + X509IssuerSerialType, +) + +__NAMESPACE__ = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class AnyType: + any_attributes: Dict[str, str] = field( + default_factory=dict, + metadata={ + "type": "Attributes", + "namespace": "##any", + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass(frozen=True) +class CRLIdentifierType: + issuer: Optional[str] = field( + default=None, + metadata={ + "name": "Issuer", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + issue_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "IssueTime", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + number: Optional[int] = field( + default=None, + metadata={ + "name": "Number", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class DocumentationReferencesType: + documentation_reference: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "DocumentationReference", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class EncapsulatedPKIDataType: + value: Optional[bytes] = field( + default=None, + metadata={ + "required": True, + "format": "base64", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + encoding: Optional[str] = field( + default=None, + metadata={ + "name": "Encoding", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class IncludeType: + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + "required": True, + }, + ) + referenced_data: Optional[bool] = field( + default=None, + metadata={ + "name": "referencedData", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class IntegerListType: + int_value: Tuple[int, ...] = field( + default_factory=tuple, + metadata={ + "name": "int", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +class QualifierType(Enum): + OIDAS_URI = "OIDAsURI" + OIDAS_URN = "OIDAsURN" + + +@dataclass(frozen=True) +class QualifyingPropertiesReferenceType: + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + "required": True, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class ResponderIDType: + by_name: Optional[str] = field( + default=None, + metadata={ + "name": "ByName", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + by_key: Optional[bytes] = field( + default=None, + metadata={ + "name": "ByKey", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class SPURI: + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + + +@dataclass(frozen=True) +class SignatureProductionPlaceType: + city: Optional[str] = field( + default=None, + metadata={ + "name": "City", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + state_or_province: Optional[str] = field( + default=None, + metadata={ + "name": "StateOrProvince", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + postal_code: Optional[str] = field( + default=None, + metadata={ + "name": "PostalCode", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + country_name: Optional[str] = field( + default=None, + metadata={ + "name": "CountryName", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class SigningTime: + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + value: Optional[XmlDateTime] = field( + default=None, + metadata={ + "required": True, + }, + ) + + +@dataclass(frozen=True) +class Anytype(AnyType): + class Meta: + name = "Any" + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CRLValuesType: + encapsulated_crlvalue: Tuple[EncapsulatedPKIDataType, ...] = field( + default_factory=tuple, + metadata={ + "name": "EncapsulatedCRLValue", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class CertificateValuesType: + encapsulated_x509_certificate: Tuple[EncapsulatedPKIDataType, ...] = field( + default_factory=tuple, + metadata={ + "name": "EncapsulatedX509Certificate", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + other_certificate: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "OtherCertificate", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class CertifiedRolesListType: + certified_role: Tuple[EncapsulatedPKIDataType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CertifiedRole", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class ClaimedRolesListType: + claimed_role: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ClaimedRole", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class CommitmentTypeQualifiersListType: + commitment_type_qualifier: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CommitmentTypeQualifier", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class CounterSignatureType: + signature: Optional[Signature] = field( + default=None, + metadata={ + "name": "Signature", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class DigestAlgAndValueType: + digest_method: Optional[DigestMethod] = field( + default=None, + metadata={ + "name": "DigestMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + digest_value: Optional[bytes] = field( + default=None, + metadata={ + "name": "DigestValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class EncapsulatedPKIData(EncapsulatedPKIDataType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class IdentifierType: + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + qualifier: Optional[QualifierType] = field( + default=None, + metadata={ + "name": "Qualifier", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class Include(IncludeType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class NoticeReferenceType: + organization: Optional[str] = field( + default=None, + metadata={ + "name": "Organization", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + notice_numbers: Optional[IntegerListType] = field( + default=None, + metadata={ + "name": "NoticeNumbers", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class OCSPIdentifierType: + responder_id: Optional[ResponderIDType] = field( + default=None, + metadata={ + "name": "ResponderID", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + produced_at: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "ProducedAt", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class OCSPValuesType: + encapsulated_ocspvalue: Tuple[EncapsulatedPKIDataType, ...] = field( + default_factory=tuple, + metadata={ + "name": "EncapsulatedOCSPValue", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class OtherCertStatusRefsType: + other_ref: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "OtherRef", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class OtherCertStatusValuesType: + other_value: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "OtherValue", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class QualifyingPropertiesReference(QualifyingPropertiesReferenceType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class ReferenceInfoType: + digest_method: Optional[DigestMethod] = field( + default=None, + metadata={ + "name": "DigestMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + digest_value: Optional[bytes] = field( + default=None, + metadata={ + "name": "DigestValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SigPolicyQualifiersListType: + sig_policy_qualifier: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SigPolicyQualifier", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class SignatureProductionPlace(SignatureProductionPlaceType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class UnsignedDataObjectPropertiesType: + unsigned_data_object_property: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "UnsignedDataObjectProperty", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class AttrAuthoritiesCertValues(CertificateValuesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CRLRefType: + digest_alg_and_value: Optional[DigestAlgAndValueType] = field( + default=None, + metadata={ + "name": "DigestAlgAndValue", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + crlidentifier: Optional[CRLIdentifierType] = field( + default=None, + metadata={ + "name": "CRLIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class CertIDType: + cert_digest: Optional[DigestAlgAndValueType] = field( + default=None, + metadata={ + "name": "CertDigest", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + issuer_serial: Optional[X509IssuerSerialType] = field( + default=None, + metadata={ + "name": "IssuerSerial", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class CertificateValues(CertificateValuesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CounterSignature(CounterSignatureType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class OCSPRefType: + ocspidentifier: Optional[OCSPIdentifierType] = field( + default=None, + metadata={ + "name": "OCSPIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + digest_alg_and_value: Optional[DigestAlgAndValueType] = field( + default=None, + metadata={ + "name": "DigestAlgAndValue", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class ObjectIdentifierType: + identifier: Optional[IdentifierType] = field( + default=None, + metadata={ + "name": "Identifier", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + description: Optional[str] = field( + default=None, + metadata={ + "name": "Description", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + documentation_references: Optional[DocumentationReferencesType] = field( + default=None, + metadata={ + "name": "DocumentationReferences", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class ReferenceInfo(ReferenceInfoType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class RevocationValuesType: + crlvalues: Optional[CRLValuesType] = field( + default=None, + metadata={ + "name": "CRLValues", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + ocspvalues: Optional[OCSPValuesType] = field( + default=None, + metadata={ + "name": "OCSPValues", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + other_values: Optional[OtherCertStatusValuesType] = field( + default=None, + metadata={ + "name": "OtherValues", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SPUserNoticeType: + notice_ref: Optional[NoticeReferenceType] = field( + default=None, + metadata={ + "name": "NoticeRef", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + explicit_text: Optional[str] = field( + default=None, + metadata={ + "name": "ExplicitText", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class SignerRoleType: + claimed_roles: Optional[ClaimedRolesListType] = field( + default=None, + metadata={ + "name": "ClaimedRoles", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + certified_roles: Optional[CertifiedRolesListType] = field( + default=None, + metadata={ + "name": "CertifiedRoles", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class UnsignedDataObjectProperties(UnsignedDataObjectPropertiesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class AttributeRevocationValues(RevocationValuesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CRLRefsType: + crlref: Tuple[CRLRefType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CRLRef", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class CertIDListType: + cert: Tuple[CertIDType, ...] = field( + default_factory=tuple, + metadata={ + "name": "Cert", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class CommitmentTypeIndicationType: + commitment_type_id: Optional[ObjectIdentifierType] = field( + default=None, + metadata={ + "name": "CommitmentTypeId", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + object_reference: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "ObjectReference", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + all_signed_data_objects: Optional[object] = field( + default=None, + metadata={ + "name": "AllSignedDataObjects", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + commitment_type_qualifiers: Optional[ + CommitmentTypeQualifiersListType + ] = field( + default=None, + metadata={ + "name": "CommitmentTypeQualifiers", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class DataObjectFormatType: + description: Optional[str] = field( + default=None, + metadata={ + "name": "Description", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + object_identifier: Optional[ObjectIdentifierType] = field( + default=None, + metadata={ + "name": "ObjectIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + mime_type: Optional[str] = field( + default=None, + metadata={ + "name": "MimeType", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + encoding: Optional[str] = field( + default=None, + metadata={ + "name": "Encoding", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + object_reference: Optional[str] = field( + default=None, + metadata={ + "name": "ObjectReference", + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class GenericTimeStampType: + include: Tuple[Include, ...] = field( + default_factory=tuple, + metadata={ + "name": "Include", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + reference_info: Tuple[ReferenceInfo, ...] = field( + default_factory=tuple, + metadata={ + "name": "ReferenceInfo", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + canonicalization_method: Optional[CanonicalizationMethod] = field( + default=None, + metadata={ + "name": "CanonicalizationMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + encapsulated_time_stamp: Tuple[EncapsulatedPKIDataType, ...] = field( + default_factory=tuple, + metadata={ + "name": "EncapsulatedTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + xmltime_stamp: Tuple[AnyType, ...] = field( + default_factory=tuple, + metadata={ + "name": "XMLTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class OCSPRefsType: + ocspref: Tuple[OCSPRefType, ...] = field( + default_factory=tuple, + metadata={ + "name": "OCSPRef", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class ObjectIdentifier(ObjectIdentifierType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class RevocationValues(RevocationValuesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SPUserNotice(SPUserNoticeType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SignaturePolicyIdType: + sig_policy_id: Optional[ObjectIdentifierType] = field( + default=None, + metadata={ + "name": "SigPolicyId", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + transforms: Optional[Transforms] = field( + default=None, + metadata={ + "name": "Transforms", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + sig_policy_hash: Optional[DigestAlgAndValueType] = field( + default=None, + metadata={ + "name": "SigPolicyHash", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + sig_policy_qualifiers: Optional[SigPolicyQualifiersListType] = field( + default=None, + metadata={ + "name": "SigPolicyQualifiers", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class SignerRole(SignerRoleType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CommitmentTypeIndication(CommitmentTypeIndicationType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CompleteCertificateRefsType: + cert_refs: Optional[CertIDListType] = field( + default=None, + metadata={ + "name": "CertRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "required": True, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class CompleteRevocationRefsType: + crlrefs: Optional[CRLRefsType] = field( + default=None, + metadata={ + "name": "CRLRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + ocsprefs: Optional[OCSPRefsType] = field( + default=None, + metadata={ + "name": "OCSPRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + other_refs: Optional[OtherCertStatusRefsType] = field( + default=None, + metadata={ + "name": "OtherRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class DataObjectFormat(DataObjectFormatType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class OtherTimeStampType(GenericTimeStampType): + reference_info: Tuple[ReferenceInfo, ...] = field( + default_factory=tuple, + metadata={ + "name": "ReferenceInfo", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class SignaturePolicyIdentifierType: + signature_policy_id: Optional[SignaturePolicyIdType] = field( + default=None, + metadata={ + "name": "SignaturePolicyId", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + signature_policy_implied: Optional[object] = field( + default=None, + metadata={ + "name": "SignaturePolicyImplied", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + + +@dataclass(frozen=True) +class SigningCertificate(CertIDListType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class XAdESTimeStampType(GenericTimeStampType): + pass + + +@dataclass(frozen=True) +class AllDataObjectsTimeStamp(XAdESTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class ArchiveTimeStamp(XAdESTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class AttributeCertificateRefs(CompleteCertificateRefsType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class AttributeRevocationRefs(CompleteRevocationRefsType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CompleteCertificateRefs(CompleteCertificateRefsType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class CompleteRevocationRefs(CompleteRevocationRefsType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class IndividualDataObjectsTimeStamp(XAdESTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class OtherTimeStamp(OtherTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class RefsOnlyTimeStamp(XAdESTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SigAndRefsTimeStamp(XAdESTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SignaturePolicyIdentifier(SignaturePolicyIdentifierType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SignatureTimeStamp(XAdESTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SignedDataObjectPropertiesType: + data_object_format: Tuple[DataObjectFormatType, ...] = field( + default_factory=tuple, + metadata={ + "name": "DataObjectFormat", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + commitment_type_indication: Tuple[ + CommitmentTypeIndicationType, ... + ] = field( + default_factory=tuple, + metadata={ + "name": "CommitmentTypeIndication", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + all_data_objects_time_stamp: Tuple[XAdESTimeStampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AllDataObjectsTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + individual_data_objects_time_stamp: Tuple[XAdESTimeStampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "IndividualDataObjectsTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SignedSignaturePropertiesType: + signing_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "SigningTime", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + signing_certificate: Optional[CertIDListType] = field( + default=None, + metadata={ + "name": "SigningCertificate", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + signature_policy_identifier: Optional[ + SignaturePolicyIdentifierType + ] = field( + default=None, + metadata={ + "name": "SignaturePolicyIdentifier", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + signature_production_place: Optional[SignatureProductionPlaceType] = field( + default=None, + metadata={ + "name": "SignatureProductionPlace", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + signer_role: Optional[SignerRoleType] = field( + default=None, + metadata={ + "name": "SignerRole", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class UnsignedSignaturePropertiesType: + counter_signature: Tuple[CounterSignatureType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CounterSignature", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + signature_time_stamp: Tuple[XAdESTimeStampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SignatureTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + complete_certificate_refs: Tuple[CompleteCertificateRefsType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CompleteCertificateRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + complete_revocation_refs: Tuple[CompleteRevocationRefsType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CompleteRevocationRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + attribute_certificate_refs: Tuple[CompleteCertificateRefsType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttributeCertificateRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + attribute_revocation_refs: Tuple[CompleteRevocationRefsType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttributeRevocationRefs", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + sig_and_refs_time_stamp: Tuple[XAdESTimeStampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "SigAndRefsTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + refs_only_time_stamp: Tuple[XAdESTimeStampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "RefsOnlyTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + certificate_values: Tuple[CertificateValuesType, ...] = field( + default_factory=tuple, + metadata={ + "name": "CertificateValues", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + revocation_values: Tuple[RevocationValuesType, ...] = field( + default_factory=tuple, + metadata={ + "name": "RevocationValues", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + attr_authorities_cert_values: Tuple[CertificateValuesType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttrAuthoritiesCertValues", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + attribute_revocation_values: Tuple[RevocationValuesType, ...] = field( + default_factory=tuple, + metadata={ + "name": "AttributeRevocationValues", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + archive_time_stamp: Tuple[XAdESTimeStampType, ...] = field( + default_factory=tuple, + metadata={ + "name": "ArchiveTimeStamp", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class XAdESTimeStamp(XAdESTimeStampType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SignedDataObjectProperties(SignedDataObjectPropertiesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class SignedPropertiesType: + signed_signature_properties: Optional[ + SignedSignaturePropertiesType + ] = field( + default=None, + metadata={ + "name": "SignedSignatureProperties", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + signed_data_object_properties: Optional[ + SignedDataObjectPropertiesType + ] = field( + default=None, + metadata={ + "name": "SignedDataObjectProperties", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SignedSignatureProperties(SignedSignaturePropertiesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class UnsignedPropertiesType: + unsigned_signature_properties: Optional[ + UnsignedSignaturePropertiesType + ] = field( + default=None, + metadata={ + "name": "UnsignedSignatureProperties", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + unsigned_data_object_properties: Optional[ + UnsignedDataObjectPropertiesType + ] = field( + default=None, + metadata={ + "name": "UnsignedDataObjectProperties", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class UnsignedSignatureProperties(UnsignedSignaturePropertiesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class QualifyingPropertiesType: + signed_properties: Optional[SignedPropertiesType] = field( + default=None, + metadata={ + "name": "SignedProperties", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + unsigned_properties: Optional[UnsignedPropertiesType] = field( + default=None, + metadata={ + "name": "UnsignedProperties", + "type": "Element", + "namespace": "http://uri.etsi.org/01903/v1.3.2#", + }, + ) + target: Optional[str] = field( + default=None, + metadata={ + "name": "Target", + "type": "Attribute", + "required": True, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SignedProperties(SignedPropertiesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class UnsignedProperties(UnsignedPropertiesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" + + +@dataclass(frozen=True) +class QualifyingProperties(QualifyingPropertiesType): + class Meta: + namespace = "http://uri.etsi.org/01903/v1.3.2#" diff --git a/pyhanko/generated/w3c/__init__.py b/pyhanko/generated/w3c/__init__.py new file mode 100644 index 00000000..565e7e2c --- /dev/null +++ b/pyhanko/generated/w3c/__init__.py @@ -0,0 +1,97 @@ +from .xmldsig_core import ( + CanonicalizationMethod, + CanonicalizationMethodType, + DigestMethod, + DigestMethodType, + DigestValue, + DSAKeyValue, + DSAKeyValueType, + KeyInfo, + KeyInfoType, + KeyName, + KeyValue, + KeyValueType, + Manifest, + ManifestType, + MgmtData, + Object, + ObjectType, + PGPData, + PGPDataType, + Reference, + ReferenceType, + RetrievalMethod, + RetrievalMethodType, + RSAKeyValue, + RSAKeyValueType, + Signature, + SignatureMethod, + SignatureMethodType, + SignatureProperties, + SignaturePropertiesType, + SignatureProperty, + SignaturePropertyType, + SignatureType, + SignatureValue, + SignatureValueType, + SignedInfo, + SignedInfoType, + SPKIData, + SPKIDataType, + Transform, + Transforms, + TransformsType, + TransformType, + X509Data, + X509DataType, + X509IssuerSerialType, +) + +__all__ = [ + "CanonicalizationMethod", + "CanonicalizationMethodType", + "DSAKeyValue", + "DSAKeyValueType", + "DigestMethod", + "DigestMethodType", + "DigestValue", + "KeyInfo", + "KeyInfoType", + "KeyName", + "KeyValue", + "KeyValueType", + "Manifest", + "ManifestType", + "MgmtData", + "Object", + "ObjectType", + "PGPData", + "PGPDataType", + "RSAKeyValue", + "RSAKeyValueType", + "Reference", + "ReferenceType", + "RetrievalMethod", + "RetrievalMethodType", + "SPKIData", + "SPKIDataType", + "Signature", + "SignatureMethod", + "SignatureMethodType", + "SignatureProperties", + "SignaturePropertiesType", + "SignatureProperty", + "SignaturePropertyType", + "SignatureType", + "SignatureValue", + "SignatureValueType", + "SignedInfo", + "SignedInfoType", + "Transform", + "TransformType", + "Transforms", + "TransformsType", + "X509Data", + "X509DataType", + "X509IssuerSerialType", +] diff --git a/pyhanko/generated/w3c/xmldsig_core.py b/pyhanko/generated/w3c/xmldsig_core.py new file mode 100644 index 00000000..d401aa81 --- /dev/null +++ b/pyhanko/generated/w3c/xmldsig_core.py @@ -0,0 +1,864 @@ +from dataclasses import dataclass, field +from typing import Optional, Tuple + +__NAMESPACE__ = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class CanonicalizationMethodType: + algorithm: Optional[str] = field( + default=None, + metadata={ + "name": "Algorithm", + "type": "Attribute", + "required": True, + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass(frozen=True) +class DSAKeyValueType: + p: Optional[bytes] = field( + default=None, + metadata={ + "name": "P", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + q: Optional[bytes] = field( + default=None, + metadata={ + "name": "Q", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + g: Optional[bytes] = field( + default=None, + metadata={ + "name": "G", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + y: Optional[bytes] = field( + default=None, + metadata={ + "name": "Y", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + j: Optional[bytes] = field( + default=None, + metadata={ + "name": "J", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + seed: Optional[bytes] = field( + default=None, + metadata={ + "name": "Seed", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + pgen_counter: Optional[bytes] = field( + default=None, + metadata={ + "name": "PgenCounter", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class DigestMethodType: + algorithm: Optional[str] = field( + default=None, + metadata={ + "name": "Algorithm", + "type": "Attribute", + "required": True, + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass(frozen=True) +class DigestValue: + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + value: Optional[bytes] = field( + default=None, + metadata={ + "required": True, + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class KeyName: + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + + +@dataclass(frozen=True) +class MgmtData: + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + + +@dataclass(frozen=True) +class ObjectType: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + mime_type: Optional[str] = field( + default=None, + metadata={ + "name": "MimeType", + "type": "Attribute", + }, + ) + encoding: Optional[str] = field( + default=None, + metadata={ + "name": "Encoding", + "type": "Attribute", + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass(frozen=True) +class PGPDataType: + pgpkey_id: Optional[bytes] = field( + default=None, + metadata={ + "name": "PGPKeyID", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + pgpkey_packet: Tuple[bytes, ...] = field( + default_factory=tuple, + metadata={ + "name": "PGPKeyPacket", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "max_occurs": 2, + "format": "base64", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + }, + ) + + +@dataclass(frozen=True) +class RSAKeyValueType: + modulus: Optional[bytes] = field( + default=None, + metadata={ + "name": "Modulus", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + exponent: Optional[bytes] = field( + default=None, + metadata={ + "name": "Exponent", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + + +@dataclass(frozen=True) +class SPKIDataType: + spkisexp: Tuple[bytes, ...] = field( + default_factory=tuple, + metadata={ + "name": "SPKISexp", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + "sequence": 1, + "format": "base64", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + "sequence": 1, + }, + ) + + +@dataclass(frozen=True) +class SignatureMethodType: + algorithm: Optional[str] = field( + default=None, + metadata={ + "name": "Algorithm", + "type": "Attribute", + "required": True, + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "HMACOutputLength", + "type": int, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass(frozen=True) +class SignaturePropertyType: + target: Optional[str] = field( + default=None, + metadata={ + "name": "Target", + "type": "Attribute", + "required": True, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + }, + ) + + +@dataclass(frozen=True) +class SignatureValueType: + value: Optional[bytes] = field( + default=None, + metadata={ + "required": True, + "format": "base64", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class TransformType: + algorithm: Optional[str] = field( + default=None, + metadata={ + "name": "Algorithm", + "type": "Attribute", + "required": True, + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "XPath", + "type": str, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass(frozen=True) +class X509IssuerSerialType: + x509_issuer_name: Optional[str] = field( + default=None, + metadata={ + "name": "X509IssuerName", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + x509_serial_number: Optional[int] = field( + default=None, + metadata={ + "name": "X509SerialNumber", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + + +@dataclass(frozen=True) +class CanonicalizationMethod(CanonicalizationMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class DSAKeyValue(DSAKeyValueType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class DigestMethod(DigestMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class Object(ObjectType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class PGPData(PGPDataType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class RSAKeyValue(RSAKeyValueType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class SPKIData(SPKIDataType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class SignatureMethod(SignatureMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class SignatureProperty(SignaturePropertyType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class SignatureValue(SignatureValueType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class Transform(TransformType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class X509DataType: + x509_issuer_serial: Tuple[X509IssuerSerialType, ...] = field( + default_factory=tuple, + metadata={ + "name": "X509IssuerSerial", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + }, + ) + x509_ski: Tuple[bytes, ...] = field( + default_factory=tuple, + metadata={ + "name": "X509SKI", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + "format": "base64", + }, + ) + x509_subject_name: Tuple[str, ...] = field( + default_factory=tuple, + metadata={ + "name": "X509SubjectName", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + }, + ) + x509_certificate: Tuple[bytes, ...] = field( + default_factory=tuple, + metadata={ + "name": "X509Certificate", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + "format": "base64", + }, + ) + x509_crl: Tuple[bytes, ...] = field( + default_factory=tuple, + metadata={ + "name": "X509CRL", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "sequence": 1, + "format": "base64", + }, + ) + other_element: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##other", + "sequence": 1, + }, + ) + + +@dataclass(frozen=True) +class KeyValueType: + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "DSAKeyValue", + "type": DSAKeyValue, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "RSAKeyValue", + "type": RSAKeyValue, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass(frozen=True) +class SignaturePropertiesType: + signature_property: Tuple[SignatureProperty, ...] = field( + default_factory=tuple, + metadata={ + "name": "SignatureProperty", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class TransformsType: + transform: Tuple[Transform, ...] = field( + default_factory=tuple, + metadata={ + "name": "Transform", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + + +@dataclass(frozen=True) +class X509Data(X509DataType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class KeyValue(KeyValueType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class SignatureProperties(SignaturePropertiesType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class Transforms(TransformsType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class ReferenceType: + transforms: Optional[Transforms] = field( + default=None, + metadata={ + "name": "Transforms", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + digest_method: Optional[DigestMethod] = field( + default=None, + metadata={ + "name": "DigestMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + digest_value: Optional[bytes] = field( + default=None, + metadata={ + "name": "DigestValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + "format": "base64", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + }, + ) + type_value: Optional[str] = field( + default=None, + metadata={ + "name": "Type", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class RetrievalMethodType: + transforms: Optional[Transforms] = field( + default=None, + metadata={ + "name": "Transforms", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + uri: Optional[str] = field( + default=None, + metadata={ + "name": "URI", + "type": "Attribute", + }, + ) + type_value: Optional[str] = field( + default=None, + metadata={ + "name": "Type", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class Reference(ReferenceType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class RetrievalMethod(RetrievalMethodType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class KeyInfoType: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + content: Tuple[object, ...] = field( + default_factory=tuple, + metadata={ + "type": "Wildcard", + "namespace": "##any", + "mixed": True, + "choices": ( + { + "name": "KeyName", + "type": str, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "KeyValue", + "type": KeyValue, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "RetrievalMethod", + "type": RetrievalMethod, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "X509Data", + "type": X509Data, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "PGPData", + "type": PGPData, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "SPKIData", + "type": SPKIData, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + { + "name": "MgmtData", + "type": str, + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ), + }, + ) + + +@dataclass(frozen=True) +class ManifestType: + reference: Tuple[Reference, ...] = field( + default_factory=tuple, + metadata={ + "name": "Reference", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class SignedInfoType: + canonicalization_method: Optional[CanonicalizationMethod] = field( + default=None, + metadata={ + "name": "CanonicalizationMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + signature_method: Optional[SignatureMethod] = field( + default=None, + metadata={ + "name": "SignatureMethod", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + reference: Tuple[Reference, ...] = field( + default_factory=tuple, + metadata={ + "name": "Reference", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "min_occurs": 1, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class KeyInfo(KeyInfoType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class Manifest(ManifestType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class SignedInfo(SignedInfoType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" + + +@dataclass(frozen=True) +class SignatureType: + signed_info: Optional[SignedInfo] = field( + default=None, + metadata={ + "name": "SignedInfo", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + signature_value: Optional[SignatureValue] = field( + default=None, + metadata={ + "name": "SignatureValue", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + "required": True, + }, + ) + key_info: Optional[KeyInfo] = field( + default=None, + metadata={ + "name": "KeyInfo", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + object_value: Tuple[Object, ...] = field( + default_factory=tuple, + metadata={ + "name": "Object", + "type": "Element", + "namespace": "http://www.w3.org/2000/09/xmldsig#", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Attribute", + }, + ) + + +@dataclass(frozen=True) +class Signature(SignatureType): + class Meta: + namespace = "http://www.w3.org/2000/09/xmldsig#" diff --git a/pyhanko/generated/xml.py b/pyhanko/generated/xml.py new file mode 100644 index 00000000..e8dde4e3 --- /dev/null +++ b/pyhanko/generated/xml.py @@ -0,0 +1,7 @@ +from enum import Enum + +__NAMESPACE__ = "http://www.w3.org/XML/1998/namespace" + + +class Langvalue(Enum): + VALUE = "" diff --git a/pyproject.toml b/pyproject.toml index cf49894b..d1483248 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,6 +74,7 @@ image-support = [ ] pkcs11 = ["python-pkcs11~=0.7.0"] async-http = ["aiohttp~=3.8.0"] +etsi = ["xsdata~=23.8"] testing-basic = [ "pytest>=6.1.1", "requests-mock>=1.8.0", @@ -96,7 +97,7 @@ live-test = [ "pytest-cov>=4.0,<4.2", ] mypy = [ - "pyHanko[pkcs11,xmp,opentype,image-support,async-http,extra-pubkey-algs]", + "pyHanko[pkcs11,xmp,opentype,image-support,async-http,extra-pubkey-algs,etsi]", "types-requests", "types-python-dateutil", "types-PyYAML",