diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/.classpath | 38 | ||||
-rw-r--r-- | common/build.xml | 4 | ||||
-rw-r--r-- | common/res/resources/schemas/ECDSAKeyValue.ancient.xsd | 122 | ||||
-rw-r--r-- | common/res/resources/schemas/ECDSAKeyValue.wrong.xsd | 122 | ||||
-rw-r--r-- | common/res/resources/schemas/ECDSAKeyValue.xsd | 2 | ||||
-rw-r--r-- | common/src/at/gv/egovernment/moa/util/Constants.java | 16 |
6 files changed, 282 insertions, 22 deletions
diff --git a/common/.classpath b/common/.classpath index 614f844f4..6534e6c4e 100644 --- a/common/.classpath +++ b/common/.classpath @@ -1,22 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" path="src"/> - <classpathentry kind="src" path="res"/> - <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/> - <classpathentry kind="lib" path="lib/commons-logging-1.0.2/commons-logging-api.jar"/> - <classpathentry kind="lib" path="lib/jaxen-1.0/jaxen-core.jar"/> - <classpathentry kind="lib" path="lib/xerces-j-2.0.2/xmlParserAPIs.jar"/> - <classpathentry kind="lib" path="lib/jaxp-1.2_01/dom.jar"/> - <classpathentry kind="lib" path="lib/xalan-j-2.2/xalan.jar"/> - <classpathentry kind="lib" path="lib/jaxen-1.0/jaxen-dom.jar"/> - <classpathentry kind="lib" path="lib/jaxp-1.2_01/jaxp-api.jar"/> - <classpathentry kind="lib" path="lib/jaxen-1.0/saxpath.jar"/> - <classpathentry kind="lib" path="lib/xerces-j-2.0.2/xercesImpl.jar"/> - <classpathentry kind="lib" path="lib/junit-3.8.1/junit.jar"/> - <classpathentry kind="lib" path="lib/iaik-jce-3.01/iaik_jce_full.jar"/> - <classpathentry kind="lib" path="lib/iaik-ecc/iaik_ecc.jar"/> - <classpathentry kind="lib" path="lib/jsse-1.0.3_03/jcert.jar"/> - <classpathentry kind="lib" path="lib/jsse-1.0.3_03/jnet.jar"/> - <classpathentry kind="lib" path="lib/jsse-1.0.3_03/jsse.jar"/> - <classpathentry kind="output" path="bin"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="res"/> + <classpathentry sourcepath="JRE_SRC" kind="var" path="JRE_LIB"/> + <classpathentry kind="lib" path="lib/commons-logging-1.0.2/commons-logging-api.jar"/> + <classpathentry kind="lib" path="lib/jaxen-1.0/jaxen-core.jar"/> + <classpathentry kind="lib" path="lib/jaxp-1.2_01/dom.jar"/> + <classpathentry kind="lib" path="lib/jaxen-1.0/jaxen-dom.jar"/> + <classpathentry kind="lib" path="lib/jaxp-1.2_01/jaxp-api.jar"/> + <classpathentry kind="lib" path="lib/jaxen-1.0/saxpath.jar"/> + <classpathentry kind="lib" path="lib/junit-3.8.1/junit.jar"/> + <classpathentry kind="lib" path="lib/iaik-jce-3.01/iaik_jce_full.jar"/> + <classpathentry kind="lib" path="lib/iaik-ecc/iaik_ecc.jar"/> + <classpathentry kind="lib" path="lib/jsse-1.0.3_03/jcert.jar"/> + <classpathentry kind="lib" path="lib/jsse-1.0.3_03/jnet.jar"/> + <classpathentry kind="lib" path="lib/jsse-1.0.3_03/jsse.jar"/> + <classpathentry kind="lib" path="lib/xalan-j-2.5.1/xalan.jar"/> + <classpathentry kind="lib" path="lib/xerces-j-2.4.0/xercesImpl.jar"/> + <classpathentry kind="lib" path="lib/xerces-j-2.4.0/xmlParserAPIs.jar"/> + <classpathentry kind="output" path="bin"/> </classpath> diff --git a/common/build.xml b/common/build.xml index 20ac141ad..c118f86de 100644 --- a/common/build.xml +++ b/common/build.xml @@ -16,8 +16,8 @@ <property name="lib" value="lib"/> <property name="lib.jaxp" value="${lib}/jaxp-1.2_01"/> <property name="lib.jaxen" value="${lib}/jaxen-1.0"/> - <property name="lib.xerces" value="${lib}/xerces-j-2.0.2"/> - <property name="lib.xalan" value="${lib}/xalan-j-2.2"/> + <property name="lib.xerces" value="${lib}/xerces-j-2.4.0"/> + <property name="lib.xalan" value="${lib}/xalan-j-2.5.1"/> <property name="lib.iaik-jce" value="${lib}/iaik-jce-3.01"/> <property name="lib.jsse" value="${lib}/jsse-1.0.3_03"/> <property name="lib.junit" value="${lib}/junit-3.8.1"/> diff --git a/common/res/resources/schemas/ECDSAKeyValue.ancient.xsd b/common/res/resources/schemas/ECDSAKeyValue.ancient.xsd new file mode 100644 index 000000000..833d327f2 --- /dev/null +++ b/common/res/resources/schemas/ECDSAKeyValue.ancient.xsd @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema targetNamespace="http://www.buergerkarte.at/namespaces/ecdsa/200206030#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ecdsa="http://www.buergerkarte.at/namespaces/ecdsa/200206030#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.3"> + <!--ECDSA key value root element--> + <xs:element name="ECDSAKeyValue" type="ecdsa:ECDSAKeyValueType"/> + <xs:complexType name="ECDSAKeyValueType"> + <xs:sequence> + <xs:element name="DomainParameters" type="ecdsa:DomainParamsType" minOccurs="0"/> + <xs:element name="PublicKey" type="ecdsa:ECPointType"/> + </xs:sequence> + </xs:complexType> + <!--EC domain parameters--> + <xs:complexType name="DomainParamsType"> + <xs:choice> + <xs:element name="ExplicitParams" type="ecdsa:ExplicitParamsType"/> + <xs:element name="NamedCurve"> + <xs:complexType> + <xs:attribute name="URN" type="xs:anyURI" use="required"/> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:complexType> + <xs:complexType name="FieldParamsType" abstract="true"/> + <xs:complexType name="PrimeFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldParamsType"> + <xs:sequence> + <xs:element name="P" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="CharTwoFieldParamsType" abstract="true"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldParamsType"> + <xs:sequence> + <xs:element name="M" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="OddCharExtensionFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldParamsType"> + <xs:sequence> + <xs:element name="M" type="xs:positiveInteger"/> + <xs:element name="W" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="TnBFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:CharTwoFieldParamsType"> + <xs:sequence> + <xs:element name="K" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PnBFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:CharTwoFieldParamsType"> + <xs:sequence> + <xs:element name="K1" type="xs:positiveInteger"/> + <xs:element name="K2" type="xs:positiveInteger"/> + <xs:element name="K3" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ExplicitParamsType"> + <xs:sequence> + <xs:element name="FieldParams" type="ecdsa:FieldParamsType"/> + <xs:element name="CurveParams" type="ecdsa:CurveParamsType"/> + <xs:element name="BasePointParams" type="ecdsa:BasePointParamsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="CurveParamsType"> + <xs:sequence> + <xs:element name="A" type="ecdsa:FieldElemType"/> + <xs:element name="B" type="ecdsa:FieldElemType"/> + <xs:element name="Seed" type="xs:hexBinary" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="BasePointParamsType"> + <xs:sequence> + <xs:element name="BasePoint" type="ecdsa:ECPointType"/> + <xs:element name="Order" type="xs:positiveInteger"/> + <xs:element name="Cofactor" type="xs:positiveInteger" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <!--EC point--> + <xs:complexType name="ECPointType"> + <xs:sequence minOccurs="0"> + <xs:element name="X" type="ecdsa:FieldElemType"/> + <xs:element name="Y" type="ecdsa:FieldElemType"/> + </xs:sequence> + </xs:complexType> + <!--Field element--> + <xs:complexType name="FieldElemType" abstract="true"/> + <xs:complexType name="PrimeFieldElemType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldElemType"> + <xs:attribute name="Value" type="xs:nonNegativeInteger" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="CharTwoFieldElemType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldElemType"> + <xs:attribute name="Value" type="xs:hexBinary" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="OddCharExtensionFieldElemType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldElemType"> + <xs:attribute name="Value" type="xs:nonNegativeInteger" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:schema> diff --git a/common/res/resources/schemas/ECDSAKeyValue.wrong.xsd b/common/res/resources/schemas/ECDSAKeyValue.wrong.xsd new file mode 100644 index 000000000..db83c9df5 --- /dev/null +++ b/common/res/resources/schemas/ECDSAKeyValue.wrong.xsd @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema targetNamespace="http://www.w3.org/2004/01/xmldsig-more#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ecdsa="http://www.w3.org/2004/01/xmldsig-more#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.3"> + <!--ECDSA key value root element--> + <xs:element name="ECDSAKeyValue" type="ecdsa:ECDSAKeyValueType"/> + <xs:complexType name="ECDSAKeyValueType"> + <xs:sequence> + <xs:element name="DomainParameters" type="ecdsa:DomainParamsType" minOccurs="0"/> + <xs:element name="PublicKey" type="ecdsa:ECPointType"/> + </xs:sequence> + </xs:complexType> + <!--EC domain parameters--> + <xs:complexType name="DomainParamsType"> + <xs:choice> + <xs:element name="ExplicitParams" type="ecdsa:ExplicitParamsType"/> + <xs:element name="NamedCurve"> + <xs:complexType> + <xs:attribute name="URN" type="xs:anyURI" use="required"/> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:complexType> + <xs:complexType name="FieldParamsType" abstract="true"/> + <xs:complexType name="PrimeFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldParamsType"> + <xs:sequence> + <xs:element name="P" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="CharTwoFieldParamsType" abstract="true"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldParamsType"> + <xs:sequence> + <xs:element name="M" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="OddCharExtensionFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldParamsType"> + <xs:sequence> + <xs:element name="M" type="xs:positiveInteger"/> + <xs:element name="W" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="TnBFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:CharTwoFieldParamsType"> + <xs:sequence> + <xs:element name="K" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PnBFieldParamsType"> + <xs:complexContent> + <xs:extension base="ecdsa:CharTwoFieldParamsType"> + <xs:sequence> + <xs:element name="K1" type="xs:positiveInteger"/> + <xs:element name="K2" type="xs:positiveInteger"/> + <xs:element name="K3" type="xs:positiveInteger"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ExplicitParamsType"> + <xs:sequence> + <xs:element name="FieldParams" type="ecdsa:FieldParamsType"/> + <xs:element name="CurveParams" type="ecdsa:CurveParamsType"/> + <xs:element name="BasePointParams" type="ecdsa:BasePointParamsType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="CurveParamsType"> + <xs:sequence> + <xs:element name="A" type="ecdsa:FieldElemType"/> + <xs:element name="B" type="ecdsa:FieldElemType"/> + <xs:element name="Seed" type="xs:hexBinary" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="BasePointParamsType"> + <xs:sequence> + <xs:element name="BasePoint" type="ecdsa:ECPointType"/> + <xs:element name="Order" type="xs:positiveInteger"/> + <xs:element name="Cofactor" type="xs:positiveInteger" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <!--EC point--> + <xs:complexType name="ECPointType"> + <xs:sequence minOccurs="0"> + <xs:element name="X" type="ecdsa:FieldElemType"/> + <xs:element name="Y" type="ecdsa:FieldElemType"/> + </xs:sequence> + </xs:complexType> + <!--Field element--> + <xs:complexType name="FieldElemType" abstract="true"/> + <xs:complexType name="PrimeFieldElemType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldElemType"> + <xs:attribute name="Value" type="xs:nonNegativeInteger" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="CharTwoFieldElemType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldElemType"> + <xs:attribute name="Value" type="xs:hexBinary" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="OddCharExtensionFieldElemType"> + <xs:complexContent> + <xs:extension base="ecdsa:FieldElemType"> + <xs:attribute name="Value" type="xs:nonNegativeInteger" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> +</xs:schema> diff --git a/common/res/resources/schemas/ECDSAKeyValue.xsd b/common/res/resources/schemas/ECDSAKeyValue.xsd index 833d327f2..7a01b23d1 100644 --- a/common/res/resources/schemas/ECDSAKeyValue.xsd +++ b/common/res/resources/schemas/ECDSAKeyValue.xsd @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<xs:schema targetNamespace="http://www.buergerkarte.at/namespaces/ecdsa/200206030#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ecdsa="http://www.buergerkarte.at/namespaces/ecdsa/200206030#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.3"> +<xs:schema targetNamespace="http://www.w3.org/2001/04/xmldsig-more#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ecdsa="http://www.w3.org/2001/04/xmldsig-more#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.3"> <!--ECDSA key value root element--> <xs:element name="ECDSAKeyValue" type="ecdsa:ECDSAKeyValueType"/> <xs:complexType name="ECDSAKeyValueType"> diff --git a/common/src/at/gv/egovernment/moa/util/Constants.java b/common/src/at/gv/egovernment/moa/util/Constants.java index e63dbf015..0d8f19064 100644 --- a/common/src/at/gv/egovernment/moa/util/Constants.java +++ b/common/src/at/gv/egovernment/moa/util/Constants.java @@ -67,7 +67,15 @@ public interface Constants { /** URI of the ECDSA XML namespace */ public static final String ECDSA_NS_URI = + "http://www.w3.org/2001/04/xmldsig-more#"; + + /** Ancient URI for the ECDSA XML namespace **/ + public static final String ECDSA_NS_URI_ANCIENT = "http://www.buergerkarte.at/namespaces/ecdsa/200206030#"; + + /** Wrong URI for the ECDSA XML namespace, used by the ZMR **/ + public static final String ECDSA_NS_URI_WRONG = // TODO Entfernen, sobald ZMR umgestellt hat + "http://www.w3.org/2004/01/xmldsig-more#"; /** Prefix used for ECDSA namespace */ public static final String ECDSA_PREFIX = "ecdsa"; @@ -76,6 +84,14 @@ public interface Constants { public static final String ECDSA_SCHEMA_LOCATION = SCHEMA_ROOT + "ECDSAKeyValue.xsd"; + /** Local location of ECDSA XML schema definition (ancient version) */ + public static final String ECDSA_SCHEMA_LOCATION_ANCIENT = + SCHEMA_ROOT + "ECDSAKeyValue.ancient.xsd"; + + /** Local location of ECDSA XML schema definition (wrong ZMR version) */ + public static final String ECDSA_SCHEMA_LOCATION_WRONG = + SCHEMA_ROOT + "ECDSAKeyValue.wrong.xsd"; + /** URI of the PersonData XML namespace. */ public static final String PD_NS_URI = "http://reference.e-government.gv.at/namespace/persondata/20020228#"; |