diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-03-10 15:35:48 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-03-10 15:35:48 +0100 | 
| commit | 576f5ea5cfaf2ea174f198dc5df238c1ca0c331a (patch) | |
| tree | fce79f2d8e76501337cc5e921838576220d64c87 | |
| parent | e8773689b175e5617fe116ac0e3d9978351ac4a8 (diff) | |
| download | moa-id-spss-576f5ea5cfaf2ea174f198dc5df238c1ca0c331a.tar.gz moa-id-spss-576f5ea5cfaf2ea174f198dc5df238c1ca0c331a.tar.bz2 moa-id-spss-576f5ea5cfaf2ea174f198dc5df238c1ca0c331a.zip | |
MOA-ID, which use MOA-Sig (includes new IAIK-MOA, with iaik_xect, iaik_eccelerate, and new iaik_PKI module
30 files changed, 396 insertions, 835 deletions
| diff --git a/id/moa-spss-container/pom.xml b/id/moa-spss-container/pom.xml index 7f13593a8..60653e90c 100644 --- a/id/moa-spss-container/pom.xml +++ b/id/moa-spss-container/pom.xml @@ -15,6 +15,18 @@  		<repositoryPath>${basedir}/../../../repository</repositoryPath>  	</properties> +      <repositories> +        <repository> +            <id>MOA</id> +            <name>MOA Dependencies</name> +            <!--releases> +                <enabled>false</enabled> +                </releases--> +            <layout>default</layout> +            <url>file://${repositoryPath}</url> +        </repository> +    </repositories> +      <dependencies>    	        <!-- we need Axis 1.1 here, 1.0 is included in SPSS -->  		<dependency> @@ -22,10 +34,6 @@  			<artifactId>moa-spss-lib</artifactId>  			<exclusions>  				<exclusion> -					<artifactId>iaik_pki_module</artifactId> -					<groupId>iaik</groupId> -				</exclusion> -				<exclusion>  					<groupId>commons-logging</groupId>  					<artifactId>commons-logging</artifactId>  				</exclusion> @@ -36,15 +44,81 @@  			</exclusions>  		</dependency> -		<dependency> +		<!-- MOA-SPSS 2.x --> +<!-- 		<dependency>  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_ixsil</artifactId> +		</dependency>  +		<dependency> +			<groupId>iaik.prod</groupId> +			<artifactId>iaik_ecc</artifactId> +			<scope>compile</scope> +		</dependency>  +		<dependency> +            <groupId>iaik.prod</groupId> +            <artifactId>iaik_ecc</artifactId>    +            <scope>provided</scope> +        </dependency> --> +		 +		 +		<!-- MOA-SPSS 3.x  --> +		<dependency> +			<groupId>MOA.spss.server</groupId> +			<artifactId>moa-spss-common</artifactId> +			<version>${moa-spss-version}</version> +		</dependency>	 +		<dependency> +			<groupId>iaik.prod</groupId> +			<artifactId>iaik_cpades</artifactId> +			<version>2.2_tmp</version>  		</dependency>  		<dependency>  			<groupId>iaik.prod</groupId> -			<artifactId>iaik_X509TrustManager</artifactId> +			<artifactId>iaik_eccelerate</artifactId> +			<version>2.0</version> +		</dependency>			 +		<dependency> +			<groupId>iaik.prod</groupId> +			<artifactId>iaik_eccelerate_cms</artifactId> +			<version>2.15</version> +		</dependency>		 +<!-- 		<dependency> +			<groupId>iaik</groupId> +			<artifactId>iaik_pki</artifactId> +			<version>1.1</version> +		</dependency>		 --> +		<dependency> +			<groupId>iaik</groupId> +			<artifactId>iaik_pki_module</artifactId> +			<version>0.12</version>  		</dependency> -		 +		<dependency> +			<groupId>iaik</groupId> +			<artifactId>iaik_sigval</artifactId> +			<version>1.0-RC1</version> +		</dependency> +		<dependency>  +			<groupId>iaik</groupId> +			<artifactId>iaik_sigvallib</artifactId> +			<version>1.0-RC1</version> +		</dependency> +		<dependency> +			<groupId>iaik</groupId> +			<artifactId>iaik_tsp</artifactId> +			<version>2.3</version> +		</dependency> +		<dependency> +			<groupId>iaik</groupId> +			<artifactId>iaik_xades</artifactId> +			<version>1.0-RC1</version> +		</dependency> +		<dependency> +			<groupId>iaik</groupId> +			<artifactId>iaik_xsect</artifactId> +			<version>1.18-RC1</version> +		</dependency> +				 +				  		<dependency>  			<groupId>axis</groupId>  			<artifactId>axis</artifactId> @@ -118,20 +192,13 @@  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_moa</artifactId>  		</dependency> -		<dependency> -			<groupId>iaik.prod</groupId> -			<artifactId>iaik_ixsil</artifactId> -		</dependency> +  		<dependency>  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_jce_full</artifactId>  			<scope>compile</scope>  		</dependency> -		<dependency> -			<groupId>iaik.prod</groupId> -			<artifactId>iaik_ecc</artifactId> -			<scope>compile</scope> -		</dependency> +  		<dependency>  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_cms</artifactId> @@ -204,12 +271,7 @@              <!-- should be in the ext directory of the jre -->              <scope>provided</scope>          </dependency> -        <dependency> -            <groupId>iaik.prod</groupId> -            <artifactId>iaik_ecc</artifactId> -            <!-- should be in the ext directory of the jre --> -            <scope>provided</scope> -        </dependency> +  		<dependency>  			<groupId>iaik</groupId> @@ -227,6 +289,14 @@  					<artifactId>iaik_jce_eval_signed</artifactId>  					<groupId>iaik</groupId>  				</exclusion> +				<exclusion> +					<artifactId>iaik_ecc</artifactId> +					<groupId>iaik.prod</groupId> +				</exclusion> +				<exclusion> +					<artifactId>iaik_xsect_eval</artifactId> +					<groupId>iaik</groupId> +				</exclusion>  			</exclusions>  		</dependency> diff --git a/id/server/auth-edu/pom.xml b/id/server/auth-edu/pom.xml index 0812745b6..004cfb964 100644 --- a/id/server/auth-edu/pom.xml +++ b/id/server/auth-edu/pom.xml @@ -95,10 +95,6 @@    		<artifactId>moa-spss-container</artifactId>    		<exclusions>  					<exclusion> -						<artifactId>iaik_pki_module</artifactId> -						<groupId>iaik</groupId> -					</exclusion> -					<exclusion>  						<groupId>commons-logging</groupId>  						<artifactId>commons-logging</artifactId>  					</exclusion> @@ -195,12 +191,12 @@  			<!-- should be in the ext directory of the jre -->  			<scope>provided</scope>  		</dependency> -		<dependency> +<!-- 		<dependency>  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_ecc</artifactId> -			<!-- should be in the ext directory of the jre --> +			should be in the ext directory of the jre  			<scope>provided</scope> -		</dependency> +		</dependency> -->  		<dependency>  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_Pkcs11Provider</artifactId> diff --git a/id/server/auth-final/pom.xml b/id/server/auth-final/pom.xml index a0f20ba1f..4f564c00f 100644 --- a/id/server/auth-final/pom.xml +++ b/id/server/auth-final/pom.xml @@ -79,10 +79,6 @@    		<artifactId>moa-spss-container</artifactId>    		<exclusions>  					<exclusion> -						<artifactId>iaik_pki_module</artifactId> -						<groupId>iaik</groupId> -					</exclusion> -					<exclusion>  						<groupId>commons-logging</groupId>  						<artifactId>commons-logging</artifactId>  					</exclusion> @@ -179,12 +175,12 @@  			<!-- should be in the ext directory of the jre -->  			<scope>provided</scope>  		</dependency> -		<dependency> +<!-- 		<dependency>  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_ecc</artifactId> -			<!-- should be in the ext directory of the jre --> +			should be in the ext directory of the jre  			<scope>provided</scope> -		</dependency> +		</dependency> -->  		<dependency>  			<groupId>iaik.prod</groupId>  			<artifactId>iaik_Pkcs11Provider</artifactId> diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index 9975fee54..50dda0554 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -305,6 +305,13 @@  			<scope>test</scope>
  		</dependency>
 + 		<dependency>
 +			<groupId>iaik.prod</groupId>
 +			<artifactId>iaik_ixsil</artifactId>
 +			<version>1.2.2.5</version>
 +			<scope>test</scope>
 +		</dependency> 
 +
  		<dependency>
  			<groupId>com.h2database</groupId>
  			<artifactId>h2</artifactId>
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java index 458f9afe6..4acce2813 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java @@ -40,14 +40,14 @@ import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;  import at.gv.egovernment.moa.id.util.Random;  import at.gv.egovernment.moa.id.util.SSLUtils;  import at.gv.egovernment.moa.logging.Logger; -import at.gv.egovernment.moa.logging.LoggingContext; -import at.gv.egovernment.moa.logging.LoggingContextManager;  import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;  import at.gv.egovernment.moa.spss.server.iaik.config.IaikConfigurator;  import at.gv.egovernment.moa.util.Constants;  import at.gv.egovernment.moa.util.MiscUtil; +import at.gv.egovernment.moaspss.logging.LoggingContext; +import at.gv.egovernment.moaspss.logging.LoggingContextManager;  import iaik.pki.PKIException; -import iaik.security.ecc.provider.ECCProvider; +import iaik.security.ec.provider.ECCelerate;  import iaik.security.provider.IAIK;  /** @@ -104,7 +104,7 @@ public class MOAIDAuthInitializer {          Logger.info("Loading Java security providers.");          IAIK.addAsProvider();                 -        ECCProvider.addAsProvider(); +        ECCelerate.addAsProvider();          // Initializes SSLSocketFactory store          SSLUtils.initialize(); @@ -146,7 +146,7 @@ public class MOAIDAuthInitializer {          //ECCProvider.addAsProvider();          Security.insertProviderAt(IAIK.getInstance(), 0); -        Security.addProvider(new ECCProvider()); +        Security.addProvider(new ECCelerate());          if (Logger.isDebugEnabled()) {          	Logger.debug("Loaded Security Provider:"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPMetadataBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPMetadataBuilder.java index 3418ffb69..84285a318 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPMetadataBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPMetadataBuilder.java @@ -24,8 +24,6 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.builder;  import java.io.IOException;  import java.io.StringWriter; -import java.security.PrivateKey; -import java.security.interfaces.RSAPrivateKey;  import java.util.List;  import javax.xml.parsers.DocumentBuilder; @@ -66,7 +64,6 @@ import org.opensaml.xml.security.credential.UsageType;  import org.opensaml.xml.security.keyinfo.KeyInfoGenerator;  import org.opensaml.xml.security.x509.X509KeyInfoGeneratorFactory;  import org.opensaml.xml.signature.Signature; -import org.opensaml.xml.signature.SignatureConstants;  import org.opensaml.xml.signature.SignatureException;  import org.opensaml.xml.signature.Signer;  import org.springframework.stereotype.Service; @@ -74,6 +71,7 @@ import org.w3c.dom.Document;  import at.gv.egovernment.moa.id.config.ConfigurationException;  import at.gv.egovernment.moa.id.protocols.pvp2x.config.IPVPMetadataBuilderConfiguration; +import at.gv.egovernment.moa.id.protocols.pvp2x.signer.AbstractCredentialProvider;  import at.gv.egovernment.moa.id.protocols.pvp2x.signer.CredentialsNotAvailableException;  import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils;  import at.gv.egovernment.moa.logging.Logger; @@ -153,7 +151,7 @@ public class PVPMetadataBuilder {  		//set metadata signature parameters  		Credential metadataSignCred = config.getMetadataSigningCredentials();		 -		Signature signature = getIDPSignature(metadataSignCred); +		Signature signature = AbstractCredentialProvider.getIDPSignature(metadataSignCred);  		SecurityHelper.prepareSignatureParams(signature, metadataSignCred, null, null); @@ -434,27 +432,5 @@ public class PVPMetadataBuilder {  		return idpSSODescriptor;  	} -	 -	private Signature getIDPSignature(Credential credentials) {		 -		PrivateKey privatekey = credentials.getPrivateKey();		 -		Signature signer = SAML2Utils.createSAMLObject(Signature.class); -		if (privatekey instanceof RSAPrivateKey) { -			signer.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256); -			 -		} else if (privatekey instanceof iaik.security.ecc.ecdsa.ECPrivateKey) { -			signer.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_ECDSA_SHA1); - -		} else { -			Logger.warn("Could NOT evaluate the Private-Key type from " + credentials.getEntityId() + " credential."); -			 -			 -		} - -		signer.setCanonicalizationAlgorithm(SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);		 -		signer.setSigningCredential(credentials); -		return signer; -		 -	} -	  } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/signer/AbstractCredentialProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/signer/AbstractCredentialProvider.java index 4c9a1e59f..9102606a2 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/signer/AbstractCredentialProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/signer/AbstractCredentialProvider.java @@ -24,6 +24,7 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.signer;  import java.security.KeyStore;  import java.security.PrivateKey; +import java.security.interfaces.ECPrivateKey;  import java.security.interfaces.RSAPrivateKey;  import org.opensaml.xml.security.credential.Credential; @@ -197,7 +198,7 @@ public abstract class AbstractCredentialProvider {  		if (privatekey instanceof RSAPrivateKey) {  			signer.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256); -		} else if (privatekey instanceof iaik.security.ecc.ecdsa.ECPrivateKey) { +		} else if (privatekey instanceof ECPrivateKey) {  			signer.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_ECDSA_SHA1);  		} else { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ECDSAKeyValueConverter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ECDSAKeyValueConverter.java index 2c0a82708..f37ae0b0b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ECDSAKeyValueConverter.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ECDSAKeyValueConverter.java @@ -20,48 +20,15 @@   * The "NOTICE" text file is part of the distribution. Any derivative works   * that you distribute must include a readable copy of the "NOTICE" text file.   ******************************************************************************/ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -  package at.gv.egovernment.moa.id.util; -import iaik.security.ecc.ecdsa.ECDSAParameter; -import iaik.security.ecc.ecdsa.ECPublicKey; -import iaik.security.ecc.math.ecgroup.AffineCoordinate; -import iaik.security.ecc.math.ecgroup.Coordinate; -import iaik.security.ecc.math.ecgroup.CoordinateTypes; -import iaik.security.ecc.math.ecgroup.ECGroupFactory; -import iaik.security.ecc.math.ecgroup.ECPoint; -import iaik.security.ecc.math.ecgroup.EllipticCurve; -import iaik.security.ecc.math.field.Field; -import iaik.security.ecc.math.field.FieldElement; -import iaik.security.ecc.math.field.PrimeField; -import iaik.security.ecc.parameter.ECCParameterFactory; -import iaik.security.ecc.spec.ECCParameterSpec; -  import java.math.BigInteger;  import java.security.PublicKey; +import java.security.spec.ECField; +import java.security.spec.ECFieldF2m; +import java.security.spec.ECFieldFp; +import java.security.spec.ECPoint;  import java.util.HashMap;  import java.util.Iterator;  import java.util.Vector; @@ -72,6 +39,15 @@ import org.w3c.dom.NamedNodeMap;  import org.w3c.dom.Node;  import org.w3c.dom.NodeList; +import at.gv.egovernment.moa.logging.Logger; +import iaik.security.ec.common.ECParameterSpec; +import iaik.security.ec.common.ECPublicKey; +import iaik.security.ec.common.ECStandardizedParameterFactory; +import iaik.security.ec.common.EllipticCurve; +import iaik.security.ec.math.field.Field; +import iaik.security.ec.math.field.FieldElement; +import iaik.security.ec.math.field.PrimeField; +  public class ECDSAKeyValueConverter  {  @@ -94,15 +70,13 @@ public class ECDSAKeyValueConverter      if (domainParams == null) throw new Exception("Domain parameters must not be implicit.");      Element namedCurve = getChildElement(domainParams, ecdsaNS, "NamedCurve", 1); -    ECCParameterSpec eccParameterSpec; +    ECParameterSpec eccParameterSpec;      if (namedCurve != null)      {        // URL curveNameURN = new URL(namedCurve.getAttributeNS(null, "URN"));        String curveNameOID = namedCurve.getAttributeNS(null, "URN").substring(8); -      ECCParameterFactory eccParamFactory = ECCParameterFactory.getInstance(); -      // eccParameterSpec = eccParamFactory.getParameterByOID(curveNameURN.getPath().substring(4)); -      eccParameterSpec = eccParamFactory.getParameterByOID(curveNameOID); +      eccParameterSpec = ECStandardizedParameterFactory.getParametersByOID(curveNameOID);      }      else      { @@ -167,14 +141,21 @@ public class ECDSAKeyValueConverter        String cofactorStr = getChildElementText(basePointParams, ecdsaNS, "Cofactor", 1);        BigInteger cofactor = (cofactorStr != null) ? new BigInteger(cofactorStr, 10) : null; +      BigInteger a = new BigInteger(aStr, 10); +      BigInteger b = new BigInteger(bStr, 10); +      BigInteger basePointX = new BigInteger(basePointXStr, 10); +      BigInteger basePointY = new BigInteger(basePointYStr, 10); +              if (fieldParamsType == FIELD_TYPE_PRIME) -      { -        BigInteger a = new BigInteger(aStr, 10); -        BigInteger b = new BigInteger(bStr, 10); -        BigInteger basePointX = new BigInteger(basePointXStr, 10); -        BigInteger basePointY = new BigInteger(basePointYStr, 10); -        eccParameterSpec = new ECCParameterSpec(p, cofactor, order, seed, null, a, b, basePointX, -          basePointY, null); +      {         +        ECField javaECField = new ECFieldFp(p); +		java.security.spec.EllipticCurve curve =  +        		new java.security.spec.EllipticCurve(javaECField, a, b, seed.toByteArray()); +		java.security.spec.ECPoint javaECbasePoint =  +				new java.security.spec.ECPoint(basePointX, basePointY);		 +		java.security.spec.ECParameterSpec javaECSpec =  +        		new java.security.spec.ECParameterSpec(curve, javaECbasePoint, order, cofactor.intValue());         +        eccParameterSpec = ECParameterSpec.getParameterSpec(javaECSpec);        }        else        { @@ -193,9 +174,19 @@ public class ECDSAKeyValueConverter            irreducible[k1/32] += 1 << k1 % 32;            irreducible[0] += 1;          } -        eccParameterSpec = new ECCParameterSpec(irreducible, cofactor, order, octetString2IntArray(aStr), -          octetString2IntArray(bStr), octetString2IntArray(basePointXStr), -          octetString2IntArray(basePointYStr), null); +         +        ECField javaECField = new ECFieldF2m(m, irreducible); +		java.security.spec.EllipticCurve curve =  +        		new java.security.spec.EllipticCurve(javaECField, a, b, seed.toByteArray()); +		java.security.spec.ECPoint javaECbasePoint =  +				new java.security.spec.ECPoint(basePointX, basePointY);		 +		java.security.spec.ECParameterSpec javaECSpec =  +        		new java.security.spec.ECParameterSpec(curve, javaECbasePoint, order, cofactor.intValue());         +        eccParameterSpec = ECParameterSpec.getParameterSpec(javaECSpec); +                 +//        eccParameterSpec = new ECCParameterSpec(irreducible, cofactor, order, octetString2IntArray(aStr), +//          octetString2IntArray(bStr), octetString2IntArray(basePointXStr), +//          octetString2IntArray(basePointYStr), null);        }      } @@ -206,10 +197,14 @@ public class ECDSAKeyValueConverter      Element publicKeyYElem = getChildElement(publicKeyElem, ecdsaNS, "Y", 1);      String publicKeyYStr = publicKeyYElem.getAttributeNS(null, "Value"); -    ECDSAParameter ecdsaParams = new ECDSAParameter(eccParameterSpec, CoordinateTypes.PROJECTIVE_COORDINATES); -    ECGroupFactory ecGroupFactory = ECGroupFactory.getInstance(); -    EllipticCurve eCurve = ecGroupFactory.getCurve(eccParameterSpec.getA(), -        eccParameterSpec.getB(), eccParameterSpec.getR(), CoordinateTypes.PROJECTIVE_COORDINATES); +    //ECParameterSpec ecdsaParams = new ECParameterSpec(eccParameterSpec, CoordinateTypes.PROJECTIVE_COORDINATES); +    //ECGroupFactory ecGroupFactory = ECGroupFactory.getInstance(); +         +    EllipticCurve eCurve = eccParameterSpec.getCurve(); +     +//    EllipticCurve eCurve = ecGroupFactory.getCurve(eccParameterSpec.getA(), +//        eccParameterSpec.getB(), eccParameterSpec.getR(), CoordinateTypes.PROJECTIVE_COORDINATES);     +          Field field = eCurve.getField();      // Detect type of public key field elements @@ -239,10 +234,19 @@ public class ECDSAKeyValueConverter      }  //    ProjectiveCoordinate publicKeyPointCoordinate = new ProjectiveCoordinate(publicKeyPointX,  //      publicKeyPointY, field.getONEelement()); -    Coordinate publicKeyPointCoordinate = new AffineCoordinate(publicKeyPointX, -        publicKeyPointY).toProjective(); -    ECPoint publicKeyPoint = eCurve.newPoint(publicKeyPointCoordinate); -    ECPublicKey publicKey = new ECPublicKey(ecdsaParams, publicKeyPoint); +//    Coordinate publicKeyPointCoordinate = new AffineCoordinate(publicKeyPointX, +//        publicKeyPointY).toProjective(); +     +    ECPoint publicKeyPointECPoint =  new ECPoint(publicKeyPointX.toBigInteger(), +    		publicKeyPointY.toBigInteger()); +     +    if (!eCurve.containsPoint(publicKeyPointECPoint)) { +    	Logger.error("IDL ECC parameter extraction FAILED! Public-Key ECPoint is not on the curve!"); +    	throw new Exception("IDL ECC parameter extraction FAILED! Public-Key ECPoint is not on the curve!"); +    	 +    } +    	 +    ECPublicKey publicKey = new ECPublicKey(eccParameterSpec, publicKeyPointECPoint);      return publicKey;    } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/SSLUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/SSLUtils.java index af3424881..d3fba8854 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/SSLUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/SSLUtils.java @@ -46,9 +46,6 @@  package at.gv.egovernment.moa.id.util; -import iaik.pki.PKIException; -import iaik.security.provider.IAIK; -  import java.io.BufferedInputStream;  import java.io.BufferedReader;  import java.io.IOException; @@ -71,6 +68,8 @@ import at.gv.egovernment.moa.id.config.ConfigurationProvider;  import at.gv.egovernment.moa.id.config.ConnectionParameter;  import at.gv.egovernment.moa.id.config.ConnectionParameterInterface;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory; +import iaik.pki.PKIException; +import iaik.security.provider.IAIK;  /** @@ -126,8 +125,7 @@ public class SSLUtils {     	   //INFO: MOA-ID 2.x always use defaultChainingMode   	    try {	     -	    	SSLSocketFactory ssf =   -	    			at.gv.egovernment.moa.id.commons.utils.ssl.SSLUtils.getSSLSocketFactory( +	    	SSLSocketFactory ssf = at.gv.egovernment.moa.id.commons.utils.ssl.SSLUtils.getSSLSocketFactory(  	    					connParam.getUrl(),   	    					conf.getCertstoreDirectory(),   	    					trustStoreURL,  diff --git a/id/server/moa-id-commons/pom.xml b/id/server/moa-id-commons/pom.xml index bbaba6a50..0b411f55f 100644 --- a/id/server/moa-id-commons/pom.xml +++ b/id/server/moa-id-commons/pom.xml @@ -70,11 +70,22 @@              <artifactId>iaik_moa</artifactId>          </dependency> +    		<dependency> +    			<groupId>MOA.spss.server</groupId> +					<artifactId>moa-spss-common</artifactId> +					<version>${moa-spss-version}</version> +    		</dependency> +              <dependency>  					<groupId>iaik.prod</groupId>  					<artifactId>iaik_X509TrustManager</artifactId>  				</dependency> -     +				<dependency> +					<groupId>iaik</groupId> +					<artifactId>iaik_pki_module</artifactId> +					<version>0.12</version> +				</dependency> +                  <dependency>              <groupId>joda-time</groupId>              <artifactId>joda-time</artifactId> diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/MOAHttpProtocolSocketFactory.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/MOAHttpProtocolSocketFactory.java index 2ade63c1c..142e9a23a 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/MOAHttpProtocolSocketFactory.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/MOAHttpProtocolSocketFactory.java @@ -22,15 +22,12 @@   */  package at.gv.egovernment.moa.id.commons.utils; -import iaik.pki.PKIException; -  import java.io.IOException;  import java.net.InetAddress;  import java.net.Socket;  import java.net.UnknownHostException;  import java.security.GeneralSecurityException; -import javax.net.ssl.SSLContext;  import javax.net.ssl.SSLSocketFactory;  import org.apache.commons.httpclient.ConnectTimeoutException; @@ -39,7 +36,7 @@ import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;  import at.gv.egovernment.moa.id.commons.ex.MOAHttpProtocolSocketFactoryException;  import at.gv.egovernment.moa.id.commons.utils.ssl.SSLConfigurationException; -import at.gv.egovernment.moa.id.commons.utils.ssl.SSLUtils; +import iaik.pki.PKIException;  /**   * @author tlenz @@ -62,7 +59,7 @@ public class MOAHttpProtocolSocketFactory implements SecureProtocolSocketFactory  		super();  		try { -			this.sslfactory = SSLUtils.getSSLSocketFactory( +			this.sslfactory = at.gv.egovernment.moa.id.commons.utils.ssl.SSLUtils.getSSLSocketFactory(  					url,   					certStoreRootDirParam,   					trustStoreURL,  diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/CertStoreConfigurationImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/CertStoreConfigurationImpl.java index 00e750f58..dcbec6bf6 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/CertStoreConfigurationImpl.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/CertStoreConfigurationImpl.java @@ -46,13 +46,17 @@  package at.gv.egovernment.moa.id.commons.utils.ssl; +import java.io.File; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +  import at.gv.egovernment.moa.logging.Logger;  import iaik.pki.store.certstore.CertStoreConfiguration;  import iaik.pki.store.certstore.CertStoreParameters;  import iaik.pki.store.certstore.CertStoreTypes;  import iaik.pki.store.certstore.directory.DirectoryCertStoreParameters; - -import java.io.File; +import iaik.pki.store.certstore.directory.VirtualCertStore;  /**   * Implementation of interface needed to initialize an IAIK JSSE <code>TrustManager</code> @@ -153,4 +157,16 @@ public class CertStoreConfigurationImpl extends ObservableImpl          return CertStoreTypes.DIRECTORY;      } +	/* (non-Javadoc) +	 * @see iaik.pki.store.certstore.directory.DirectoryCertStoreParameters#getVirtualStores() +	 */ +	@Override +	public Set getVirtualStores() { +		//TODO: only for Testing and not complete !!!Ask Harald !!!! +		 +		Map<String, VirtualCertStore> vCertStore = new HashMap<String, VirtualCertStore>();		 +		return vCertStore.keySet(); +		 +	} +  } diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/MOAIDTrustManager.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/MOAIDTrustManager.java index eaef3f1d4..bcd38c638 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/MOAIDTrustManager.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/MOAIDTrustManager.java @@ -57,9 +57,8 @@ import java.util.ArrayList;  import java.util.List;  import at.gv.egovernment.moa.logging.Logger; -import at.gv.egovernment.moa.logging.LoggingContext; -import at.gv.egovernment.moa.logging.LoggingContextManager; - +import at.gv.egovernment.moaspss.logging.LoggingContext; +import at.gv.egovernment.moaspss.logging.LoggingContextManager;  import iaik.pki.jsse.IAIKX509TrustManager;  /** @@ -95,14 +94,14 @@ public class MOAIDTrustManager extends IAIKX509TrustManager {     * Fixes a bug occuring in the case MOA-SP is called by API.     * In this case, IAIKX509TrustManager uses the LogginConfig of MOA-SP.     * This method must be called before a MOAIDTrustManager is constructed, -   * from every thread. -   */ +   * from every thread.  +   */     public static void initializeLoggingContext() {        if (LoggingContextManager.getInstance().getLoggingContext() == null)      LoggingContextManager.getInstance().setLoggingContext(        new LoggingContext(Thread.currentThread().getName()));    } - +     /**     * Builds an Array of accepted server certificates from an URL, diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIConfigurationImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIConfigurationImpl.java index 5d8c7a54e..3eb4707c8 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIConfigurationImpl.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIConfigurationImpl.java @@ -60,6 +60,10 @@ import iaik.pki.store.revocation.archive.ArchiveConfiguration;   * @version $Id$   */  public class PKIConfigurationImpl implements PKIConfiguration { +	 +	private static final int TIMEOUT_READ = 60; //[sec] +	private static final int TIMEOUT_CONNECTION = 60; //[sec] +	    /** The configuration for the CertStore */    private CertStoreConfiguration certStoreConfiguration;    /** The configuration for the RevocationChecks */ @@ -108,11 +112,19 @@ public class PKIConfigurationImpl implements PKIConfiguration {    }  /* (non-Javadoc) - * @see iaik.pki.PKIConfiguration#getTimeout() + * @see iaik.pki.PKIConfiguration#getConnectTimeout()   */ -  public int getTimeout() { -	// TODO Auto-generated method stub -	return 0; +@Override +public int getConnectTimeout() { +	return TIMEOUT_CONNECTION * 1000; +} + +/* (non-Javadoc) + * @see iaik.pki.PKIConfiguration#getReadTimeout() + */ +@Override +public int getReadTimeout() { +	return TIMEOUT_READ * 1000;  }  } diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIProfileImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIProfileImpl.java index 59994a257..a34fa9b8b 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIProfileImpl.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/PKIProfileImpl.java @@ -96,13 +96,6 @@ public class PKIProfileImpl extends ObservableImpl    }    /** -   * @see iaik.pki.PKIProfile#autoAddCertificates() -   */ -  public boolean autoAddCertificates() { -    return true; -  } - -  /**     * @see iaik.pki.PKIProfile#getRevocationProfile()     */    public RevocationProfile getRevocationProfile() { @@ -227,4 +220,22 @@ public class PKIProfileImpl extends ObservableImpl    public void setId(String id) {      this.id = id;    } + +/* (non-Javadoc) + * @see iaik.pki.PKIProfile#autoAddCertificates() + */ +@Override +public int autoAddCertificates() { +	//TODO: ask harald!!!!! +	return 1; +} + +/* (non-Javadoc) + * @see iaik.pki.PKIProfile#getIndirectRevocationTrustStoreProfile() + */ +@Override +public TrustStoreProfile getIndirectRevocationTrustStoreProfile() { +	//TODO: ask harald!!!!! +	return null; +}  } diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/RevocationConfigurationImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/RevocationConfigurationImpl.java index b5e0543db..40d081ea4 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/RevocationConfigurationImpl.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/RevocationConfigurationImpl.java @@ -46,13 +46,16 @@  package at.gv.egovernment.moa.id.commons.utils.ssl; -import iaik.pki.revocation.RevocationConfiguration; -  import java.security.cert.X509Certificate;  import java.util.Collections;  import java.util.Date; +import java.util.HashMap; +import java.util.Map;  import java.util.Set; +import iaik.pki.revocation.RevocationConfiguration; +import iaik.pki.revocation.dbcrl.config.DBCrlConfig; +  /**   * Implementation of interface needed to initialize an IAIK JSSE <code>TrustManager</code>   * @author Paul Ivancsics @@ -81,4 +84,41 @@ public class RevocationConfigurationImpl extends ObservableImpl implements Revoc       return null;    } +/* (non-Javadoc) + * @see iaik.pki.revocation.RevocationConfiguration#getKeepRevocationInfo() + */ +@Override +public boolean getKeepRevocationInfo() { +	return false; +} + +/* (non-Javadoc) + * @see iaik.pki.revocation.RevocationConfiguration#getPositiveOCSPResponders() + */ +@Override +public Set getPositiveOCSPResponders() { +	 +	//TODO: !!!!! ASK Harald !!!!! +	Map<String, String> test = new HashMap<String, String>(); +	test.put("ALL", "ALL"); +	return test.keySet(); +} + +/* (non-Javadoc) + * @see iaik.pki.revocation.RevocationConfiguration#skipIndirectCRLCheckForAlternativeDistributionPoints() + */ +@Override +public boolean skipIndirectCRLCheckForAlternativeDistributionPoints() { +	//TODO: !!!!! ASK Harald !!!!! +	return false; +} + +/* (non-Javadoc) + * @see iaik.pki.revocation.RevocationConfiguration#getDataBaseCRLConfig() + */ +@Override +public DBCrlConfig getDataBaseCRLConfig() { +	return null; +} +  } diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java index 68437a04d..503e0bfc4 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java @@ -46,25 +46,28 @@  package at.gv.egovernment.moa.id.commons.utils.ssl; -import iaik.pki.PKIConfiguration; -import iaik.pki.PKIException; -import iaik.pki.PKIFactory; -import iaik.pki.PKIProfile; -import iaik.pki.jsse.IAIKX509TrustManager; -import iaik.security.provider.IAIK; -  import java.io.IOException;  import java.security.GeneralSecurityException; +import java.security.KeyStore;  import java.security.Security;  import java.util.HashMap;  import java.util.Map;  import javax.net.ssl.KeyManager; +import javax.net.ssl.KeyManagerFactory;  import javax.net.ssl.SSLContext;  import javax.net.ssl.SSLSocketFactory;  import javax.net.ssl.TrustManager;  import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.KeyStoreUtils; +import iaik.pki.PKIConfiguration; +import iaik.pki.PKIException; +import iaik.pki.PKIFactory; +import iaik.pki.PKIProfile; +import iaik.pki.jsse.IAIKX509TrustManager; +//import iaik.pki.jsse.IAIKX509TrustManager; +import iaik.security.provider.IAIK;  /** @@ -136,7 +139,7 @@ public class SSLUtils {      		 acceptedServerCertURL,      		 checkRevocation); -    KeyManager[] kms = at.gv.egovernment.moa.util.SSLUtils.getKeyManagers( +    KeyManager[] kms = getKeyManagers(        clientKeyStoreType, clientKeyStoreURL, clientKeyStorePassword);      SSLContext ctx = SSLContext.getInstance("TLS");      ctx.init(kms, tms, null);     @@ -154,6 +157,68 @@ public class SSLUtils {    }    /** +   * Loads the client key store from file and gets the  +   * <code>KeyManager</code>s from a default <code>KeyManagerFactory</code>, +	 * initialized from the given client key store. +   * @param clientKeyStoreType key store type of <code>clientKeyStore</code> +   * @param clientKeyStoreURL URL of key store containing keys to be used for +   * 				 client authentication; if <code>null</code>, the default key store will be utilized +   * @param clientKeyStorePassword password used to check the integrity of the client key store;  +   * 				 if <code>null</code>, it will not be checked +	 * @return <code>KeyManager</code>s to be used for creating an  +	 * 				  <code>SSLSocketFactory</code> utilizing the given client key store +   * @throws IOException thrown while reading from the key store file +   * @throws GeneralSecurityException thrown while initializing the  +   * 					default <code>KeyManagerFactory</code> +   */ +  public static KeyManager[] getKeyManagers ( +		String clientKeyStoreType, +		String clientKeyStoreURL, +  	String clientKeyStorePassword) +	  throws IOException, GeneralSecurityException { +   +  	if (clientKeyStoreURL == null) +  		return null; +  		 +	  // Set up the KeyStore to use. We need to load the file into +	  // a KeyStore instance. +	  KeyStore clientKeyStore = KeyStoreUtils.loadKeyStore( +	  	clientKeyStoreType, clientKeyStoreURL, clientKeyStorePassword); +		return getKeyManagers(clientKeyStore, clientKeyStorePassword); +	}   +  /** +   * Gets the <code>KeyManager</code>s from a default <code>KeyManagerFactory</code>, +	 * initialized from the given client key store. +   * @param clientKeyStore client key store +   * @param clientKeyStorePassword if provided, it will be used to check  +   * 				 the integrity of the client key store; if omitted, it will not be checked +	 * @return <code>KeyManager</code>s to be used for creating an  +	 * 				  <code>SSLSocketFactory</code> utilizing the given client key store +   * @throws GeneralSecurityException thrown while initializing the  +   * 					default <code>KeyManagerFactory</code> +   */ +	public static KeyManager[] getKeyManagers ( +		KeyStore clientKeyStore, +  	String clientKeyStorePassword) +	  throws GeneralSecurityException { +   +  	if (clientKeyStore == null) +  		return null; +  		 +	  // Now we initialize the default KeyManagerFactory with this KeyStore +	  String alg=KeyManagerFactory.getDefaultAlgorithm(); +	  KeyManagerFactory kmFact=KeyManagerFactory.getInstance(alg); +  	char[] password = null; +  	if (clientKeyStorePassword != null) +  		password = clientKeyStorePassword.toCharArray(); +	  kmFact.init(clientKeyStore, password); +	 +	  // And now get the KeyManagers +	  KeyManager[] kms=kmFact.getKeyManagers(); +	  return kms; +	}   +   +  /**     * Initializes an <code>IAIKX509TrustManager</code> for a given trust store,     * using configuration data.     *  diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LogMsg.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LogMsg.java deleted file mode 100644 index 51667f010..000000000 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LogMsg.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ - - -package at.gv.egovernment.moa.logging; - -/** - * A unified message type to log messages from inside the MOA subsystem. - *  - * @author Patrick Peck - * @version $Id$ - */ -public class LogMsg { -  /** The message to log. */ -  private Object message; - -  /** -   * Create a <code>LogMsg</code> object. -   *  -   * @param message The actual message to log. May be <code>null</code>.  -   */ -  public LogMsg(Object message) { -    this.message = message; -  } - -  /** -   * Convert this log message to a <code>String</code>. -   *  -   * @return The <code>String</code> representation of this log message.  -   */ -  public String toString() { -    StringBuffer msg = new StringBuffer(); -    LoggingContext ctx = -      LoggingContextManager.getInstance().getLoggingContext(); -    String tid = ctx != null ? ctx.getTransactionID() : null; -    String nodeId = ctx != null ? ctx.getNodeID() : null; -     -    msg.append("TID="); -    msg.append(tid != null ? tid : "<null>"); -    msg.append(" NID="); -    msg.append(nodeId != null ? nodeId : "<null>"); -    msg.append(" MSG="); -    msg.append(message != null ? message.toString() : "<null>"); - -    return msg.toString(); -  } -} diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LoggingContext.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LoggingContext.java deleted file mode 100644 index db4b93a0b..000000000 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LoggingContext.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ - - -package at.gv.egovernment.moa.logging; - -/** - * Encapsulates contextual information (i.e. per request information) for - * logging purposes. - *  - * @author Patrick Peck - * @version $Id$ - */ -public class LoggingContext { -  /** The name of the node ID system property. */ -  public static final String NODE_ID_PROPERTY = "moa.node-id"; -   -  /** The current transaction ID. */ -  private String transactionID; -  /** The node ID. */ -  private String nodeID; -   -  /** -   * Create a new <code>LoggingContext</code>. -   *  -   * @param transactionID The transaction ID. May be <code>null</code>. -   */ -  public LoggingContext(String transactionID) { -    this.transactionID = transactionID; -    this.nodeID = System.getProperty(NODE_ID_PROPERTY); -  } -   -  /** -   * Return the transaction ID. -   *  -   * @return The transaction ID. -   */ -  public String getTransactionID() { -    return transactionID; -  } -   -  /** -   * Return the node ID. -   *  -   * @return The node ID. -   */ -  public String getNodeID() { -    return nodeID; -  } -} diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LoggingContextManager.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LoggingContextManager.java deleted file mode 100644 index f0d7b4c07..000000000 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/logging/LoggingContextManager.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ - - -package at.gv.egovernment.moa.logging; - -/** - * Provides each thread with a single instance of <code>LoggingContext</code>. - *  - * @author Patrick Peck - * @version $Id$ - */ -public class LoggingContextManager { -  /** The single instance of this class. */ -  private static LoggingContextManager instance = null; -   -  /** The <code>LoggingContext</code> for each thread. */ -  private ThreadLocal context; -   -  /** -   * Get the single instance of the <code>LoggingContextManager</code> class. -   *  -   * @return LoggingContextManager The single instance. -   */ -  public static synchronized LoggingContextManager getInstance() { -    if (instance == null) { -      instance = new LoggingContextManager(); -    } -    return instance; -  } -   -  /** -   * Creates a new <code>LoggingContextManager</code>. -   *  -   * Protected to disallow direct instantiation. -   */ -  protected LoggingContextManager() { -    context = new ThreadLocal(); -  } -   -  /** -   * Set the <code>LoggingContext</code> context for the current thread. -   *  -   * @param ctx The <code>LoggingContext</code> for the current thread. -   */ -  public void setLoggingContext(LoggingContext ctx) { -    context.set(ctx); -  } -   -  /** -   * Return the <code>LoggingContext</code> for the current thread. -   *  -   * @return LoggingContext The <code>LoggingContext</code> for the current -   * thread, or <code>null</code> if none has been set. -   */ -  public LoggingContext getLoggingContext() { -    return (LoggingContext) context.get(); -  } - -} diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAEntityResolver.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAEntityResolver.java index 8f3ffd4c6..b1a3f8446 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAEntityResolver.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAEntityResolver.java @@ -31,7 +31,6 @@ import org.apache.xerces.util.URI.MalformedURIException;  import org.xml.sax.EntityResolver;  import org.xml.sax.InputSource; -import at.gv.egovernment.moa.logging.LogMsg;  import at.gv.egovernment.moa.logging.Logger;  /** @@ -72,7 +71,7 @@ public class MOAEntityResolver implements EntityResolver {      if (Logger.isDebugEnabled()) {        Logger.debug( -        new LogMsg("resolveEntity: p=" + publicId + " s=" + systemId)); +        new at.gv.egovernment.moaspss.logging.LogMsg("resolveEntity: p=" + publicId + " s=" + systemId));      }      if (publicId != null) { diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAErrorHandler.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAErrorHandler.java index 3769b264d..ea71a677f 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAErrorHandler.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/MOAErrorHandler.java @@ -28,8 +28,8 @@ import org.apache.xml.utils.DefaultErrorHandler;  import org.xml.sax.SAXException;  import org.xml.sax.SAXParseException; -import at.gv.egovernment.moa.logging.LogMsg;  import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moaspss.logging.LogMsg;  /**   * An <code>ErrorHandler</code> that logs a message and throws a diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/SSLUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/SSLUtils.java deleted file mode 100644 index c2c67ec58..000000000 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/util/SSLUtils.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ - - -package at.gv.egovernment.moa.util; - -import java.io.IOException; -import java.io.InputStream; -import java.security.GeneralSecurityException; -import java.security.KeyStore; - -import javax.net.ssl.KeyManager; -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; - -/** - * Utility for connecting to server applications via SSL. - *  - * @author Paul Ivancsics - * @version $Id$ - */ -public class SSLUtils { -	 -	/** -	 * Creates an <code>SSLSocketFactory</code> which utilizes the given trust store. -	 *  -   * @param trustStoreType key store type of trust store -   * @param trustStoreInputStream input stream for reading JKS trust store containing -   * 				 trusted server certificates; if <code>null</code>, the default -   * 				 trust store will be utilized -   * @param trustStorePassword if provided, it will be used to check  -   * 				 the integrity of the trust store; if omitted, it will not be checked -   * @return <code>SSLSocketFactory</code> to be used by an <code>HttpsURLConnection</code> -   * @throws IOException thrown while reading from the input stream -   * @throws GeneralSecurityException thrown while creating the socket factory -	 */ -  public static SSLSocketFactory getSSLSocketFactory( -  	String trustStoreType, -  	InputStream trustStoreInputStream, -  	String trustStorePassword) - 	  throws IOException, GeneralSecurityException { -  		 -	  TrustManager[] tms = getTrustManagers(trustStoreType, trustStoreInputStream, trustStorePassword); -		SSLContext ctx = SSLContext.getInstance("TLS"); -		ctx.init(null, tms, null); - -    SSLSocketFactory sf = ctx.getSocketFactory(); -  	return sf; -  } -	/** -	 * Creates an <code>SSLSocketFactory</code> which utilizes the -	 * given trust store and keystore. -	 *  -   * @param trustStore trust store containing trusted server certificates;  -   * 				 if <code>null</code>, the default trust store will be utilized -   * @param clientKeyStoreType key store type of <code>clientKeyStore</code> -   * @param clientKeyStoreURL URL of key store containing keys to be used for -   * 				 client authentication; if <code>null</code>, the default key store will be utilized -   * @param clientKeyStorePassword if provided, it will be used to check  -   * 				 the integrity of the client key store; if omitted, it will not be checked -   * @return <code>SSLSocketFactory</code> to be used by an <code>HttpsURLConnection</code> -   * @throws IOException thrown while reading key store file -   * @throws GeneralSecurityException thrown while creating the socket factory -	 */ -  public static SSLSocketFactory getSSLSocketFactory( -  	KeyStore trustStore, -  	String clientKeyStoreType, -  	String clientKeyStoreURL, -  	String clientKeyStorePassword) - 	  throws IOException, GeneralSecurityException { -  		 -		SSLContext ctx = getSSLContext( -			trustStore, clientKeyStoreType, clientKeyStoreURL, clientKeyStorePassword); -    SSLSocketFactory sf = ctx.getSocketFactory(); -  	return sf; -  } -	/** -	 * Creates an <code>SSLContext</code> initialized for the -	 * given trust store and keystore. -	 *  -   * @param trustStore trust store containing trusted server certificates;  -   * 				 if <code>null</code>, the default trust store will be utilized -   * @param clientKeyStoreType key store type of <code>clientKeyStore</code> -   * @param clientKeyStoreURL URL of key store containing keys to be used for -   * 				 client authentication; if <code>null</code>, the default key store will be utilized -   * @param clientKeyStorePassword if provided, it will be used to check  -   * 				 the integrity of the client key store; if omitted, it will not be checked -   * @return <code>SSLContext</code> to be used for creating an <code>SSLSocketFactory</code> -   * @throws IOException thrown while reading key store file -   * @throws GeneralSecurityException thrown while creating the SSL context -	 */ -  public static SSLContext getSSLContext( -  	KeyStore trustStore, -  	String clientKeyStoreType, -  	String clientKeyStoreURL, -  	String clientKeyStorePassword) - 	  throws IOException, GeneralSecurityException { -  		 - 	  TrustManager[] tms = getTrustManagers(trustStore); -		KeyManager[] kms = getKeyManagers(clientKeyStoreType, clientKeyStoreURL, clientKeyStorePassword); -		SSLContext ctx = SSLContext.getInstance("TLS"); -		ctx.init(kms, tms, null); -		return ctx; -  } -  /** -   * Loads the trust store from an input stream and gets the  -   * <code>TrustManager</code>s from a default <code>TrustManagerFactory</code>, -	 * initialized from the given trust store. -   * @param trustStoreType key store type of trust store -   * @param trustStoreInputStream input stream for reading JKS trust store containing -   * 				 trusted server certificates; if <code>null</code>, the default -   * 				 trust store will be utilized -   * @param trustStorePassword if provided, it will be used to check  -   * 				 the integrity of the trust store; if omitted, it will not be checked -	 * @return <code>TrustManager</code>s to be used for creating an  -	 * 				  <code>SSLSocketFactory</code> utilizing the given trust store -   * @throws IOException thrown while reading from the input stream -   * @throws GeneralSecurityException thrown while initializing the  -   * 					default <code>TrustManagerFactory</code> -   */ -	protected static TrustManager[] getTrustManagers( -		String trustStoreType, -		InputStream trustStoreInputStream, -  	String trustStorePassword) -	  throws IOException, GeneralSecurityException { -	  	 -	  if (trustStoreInputStream == null) -	  	return null; - -	  // Set up the TrustStore to use. We need to load the file into -	  // a KeyStore instance. -		KeyStore trustStore = KeyStoreUtils.loadKeyStore(trustStoreType, trustStoreInputStream, trustStorePassword); -		return getTrustManagers(trustStore); -	} -	/** -	 * Gets the <code>TrustManager</code>s from a default <code>TrustManagerFactory</code>, -	 * initialized from the given trust store. -	 *  -	 * @param trustStore the trust store to use -	 * @return <code>TrustManager</code>s to be used for creating an  -	 * 				  <code>SSLSocketFactory</code> utilizing the given trust store -   * @throws GeneralSecurityException thrown while initializing the  -   * 					default <code>TrustManagerFactory</code> -	 */ -	protected static TrustManager[] getTrustManagers(KeyStore trustStore) -	  throws GeneralSecurityException { -	  	 -	  if (trustStore == null) -	  	return null; - -	  // Initialize the default TrustManagerFactory with this KeyStore -	  String alg=TrustManagerFactory.getDefaultAlgorithm(); -	  TrustManagerFactory tmFact=TrustManagerFactory.getInstance(alg); -	  tmFact.init(trustStore); -	 -	  // And now get the TrustManagers -	  TrustManager[] tms=tmFact.getTrustManagers(); -	  return tms; -	} -  /** -   * Loads the client key store from file and gets the  -   * <code>KeyManager</code>s from a default <code>KeyManagerFactory</code>, -	 * initialized from the given client key store. -   * @param clientKeyStoreType key store type of <code>clientKeyStore</code> -   * @param clientKeyStoreURL URL of key store containing keys to be used for -   * 				 client authentication; if <code>null</code>, the default key store will be utilized -   * @param clientKeyStorePassword password used to check the integrity of the client key store;  -   * 				 if <code>null</code>, it will not be checked -	 * @return <code>KeyManager</code>s to be used for creating an  -	 * 				  <code>SSLSocketFactory</code> utilizing the given client key store -   * @throws IOException thrown while reading from the key store file -   * @throws GeneralSecurityException thrown while initializing the  -   * 					default <code>KeyManagerFactory</code> -   */ -  public static KeyManager[] getKeyManagers ( -		String clientKeyStoreType, -		String clientKeyStoreURL, -  	String clientKeyStorePassword) -	  throws IOException, GeneralSecurityException { -   -  	if (clientKeyStoreURL == null) -  		return null; -  		 -	  // Set up the KeyStore to use. We need to load the file into -	  // a KeyStore instance. -	  KeyStore clientKeyStore = KeyStoreUtils.loadKeyStore( -	  	clientKeyStoreType, clientKeyStoreURL, clientKeyStorePassword); -		return getKeyManagers(clientKeyStore, clientKeyStorePassword); -	}   -  /** -   * Gets the <code>KeyManager</code>s from a default <code>KeyManagerFactory</code>, -	 * initialized from the given client key store. -   * @param clientKeyStore client key store -   * @param clientKeyStorePassword if provided, it will be used to check  -   * 				 the integrity of the client key store; if omitted, it will not be checked -	 * @return <code>KeyManager</code>s to be used for creating an  -	 * 				  <code>SSLSocketFactory</code> utilizing the given client key store -   * @throws GeneralSecurityException thrown while initializing the  -   * 					default <code>KeyManagerFactory</code> -   */ -	public static KeyManager[] getKeyManagers ( -		KeyStore clientKeyStore, -  	String clientKeyStorePassword) -	  throws GeneralSecurityException { -   -  	if (clientKeyStore == null) -  		return null; -  		 -	  // Now we initialize the default KeyManagerFactory with this KeyStore -	  String alg=KeyManagerFactory.getDefaultAlgorithm(); -	  KeyManagerFactory kmFact=KeyManagerFactory.getInstance(alg); -  	char[] password = null; -  	if (clientKeyStorePassword != null) -  		password = clientKeyStorePassword.toCharArray(); -	  kmFact.init(clientKeyStore, password); -	 -	  // And now get the KeyManagers -	  KeyManager[] kms=kmFact.getKeyManagers(); -	  return kms; -	}   -} diff --git a/id/server/moa-id-commons/src/test/java/test/at/gv/egovernment/moa/AllTests.java b/id/server/moa-id-commons/src/test/java/test/at/gv/egovernment/moa/AllTests.java index ba7a0edc4..a3ffbec17 100644 --- a/id/server/moa-id-commons/src/test/java/test/at/gv/egovernment/moa/AllTests.java +++ b/id/server/moa-id-commons/src/test/java/test/at/gv/egovernment/moa/AllTests.java @@ -24,12 +24,6 @@  package test.at.gv.egovernment.moa; -import test.at.gv.egovernment.moa.util.DOMUtilsTest; -import test.at.gv.egovernment.moa.util.DateTimeUtilsTest; -import test.at.gv.egovernment.moa.util.KeyStoreUtilsTest; -import test.at.gv.egovernment.moa.util.SSLUtilsTest; -import test.at.gv.egovernment.moa.util.XPathUtilsTest; -  import junit.awtui.TestRunner;  import junit.framework.Test;  import junit.framework.TestSuite; @@ -40,7 +34,7 @@ import junit.framework.TestSuite;   */  public class AllTests { -  public static Test suite() { +  public static Test suite() {       TestSuite suite = new TestSuite();  //    suite.addTestSuite(DOMUtilsTest.class); diff --git a/id/server/moa-id-commons/src/test/java/test/at/gv/egovernment/moa/util/SSLUtilsTest.java b/id/server/moa-id-commons/src/test/java/test/at/gv/egovernment/moa/util/SSLUtilsTest.java deleted file mode 100644 index 2b5094fb8..000000000 --- a/id/server/moa-id-commons/src/test/java/test/at/gv/egovernment/moa/util/SSLUtilsTest.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright 2003 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ - - -package test.at.gv.egovernment.moa.util; - -import java.net.URL; -import java.security.KeyStore; -import java.security.Security; - -import javax.net.ssl.SSLException; -import javax.net.ssl.SSLSocketFactory; - -import junit.framework.TestCase; -import at.gv.egovernment.moa.util.KeyStoreUtils; -import at.gv.egovernment.moa.util.SSLUtils; - -import com.sun.net.ssl.HostnameVerifier; -import com.sun.net.ssl.HttpsURLConnection; - -/** - * @author Paul Ivancsics - * @version $Id$ - */ -public class SSLUtilsTest extends TestCase { - -  public SSLUtilsTest(String arg0) { -    super(arg0); -  } - -	 -  protected void setUp() throws Exception { -    //System.setProperty("javax.net.debug", "all"); -    Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); -    System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); -    System.setProperty("https.cipherSuites", "SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5"); -  } - -	public void testGetSSLSocketFactoryBaltimoreOK() throws Exception { -		doTestGetSSLSocketFactory( -			"GET", -			"https://www.baltimore.com/", -			false, -			"file:data/test/security/cacerts+gt_cybertrust_root", -			"changeit", -			true); -	} -	public void testGetSSLSocketFactoryBaltimoreNOK() throws Exception { -		doTestGetSSLSocketFactory( -			"GET", -			"https://www.baltimore.com/", -			false, -			"file:data/test/security/cacerts", -			"changeit",  -			false); -	} -	public void testGetSSLSocketFactoryVerisignOK() throws Exception { -		doTestGetSSLSocketFactory( -			"GET", -			"https://www.verisign.com/", -			false, -			"file:data/test/security/cacerts", -			"changeit", -			true); -	} -	public void testGetSSLSocketFactoryVerisignNoTruststoreOK() throws Exception { -		doTestGetSSLSocketFactory( -			"GET", -			"https://www.verisign.com/", -			false, -			null, -			null, -			true); -	} -	public void testGetSSLSocketFactoryLocalhostOK() throws Exception { -		String urlString = "https://localhost:8443/moa-id-auth/index.jsp"; -		doTestGetSSLSocketFactory( -			"GET", -			urlString, -			true, -			"file:data/test/security/server.keystore.tomcat", -			"changeit", -			true); -	} -	public void testGetSSLSocketFactoryLocalhostNOK() throws Exception { -		String urlString = "https://localhost:8443/moa-id-auth/index.jsp"; -		doTestGetSSLSocketFactory( -			"GET", -			urlString, -			true, -			null, -			null, -			false); -	} -		 -	public void doTestGetSSLSocketFactory( -		String requestMethod, -		String urlString,  -		boolean useHostnameVerifierHack, -		String truststoreurl, -		String trustpassword, -		boolean shouldOk -		) throws Exception { - -		doTestGetSSLSocketFactory( -			requestMethod, urlString, useHostnameVerifierHack, truststoreurl, trustpassword, null, null, null, shouldOk); -		} -	public void doTestGetSSLSocketFactory( -		String requestMethod, -		String urlString,  -		boolean useHostnameVerifierHack, -		String truststoreurl, -		String trustpassword, -		String keystoretype, -		String keystoreurl, -		String keypassword, -		boolean shouldOk -		) throws Exception { - -		KeyStore truststore = null; -		if (truststoreurl != null) -			truststore = KeyStoreUtils.loadKeyStore("jks", truststoreurl, trustpassword); -		SSLSocketFactory sf = SSLUtils.getSSLSocketFactory( -			truststore, keystoretype, keystoreurl, keypassword); -		System.out.println(requestMethod + " " + urlString); - -		URL url = new URL(urlString); -		HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); -		conn.setRequestMethod(requestMethod); -		conn.setDoInput(true); -		conn.setDoOutput(true); -		conn.setUseCaches(false); -		conn.setAllowUserInteraction(false);		 -  	conn.setSSLSocketFactory(sf); -  	if (useHostnameVerifierHack) -  		conn.setHostnameVerifier(new HostnameVerifierHack()); -  	try { -			conn.connect(); -			assertTrue(shouldOk); -			assertEquals(200, conn.getResponseCode()); -			conn.disconnect(); -  	} -  	catch (SSLException ex) { -  		assertFalse(shouldOk); -  	} -	} -//	private byte[] readTruststore(String filename) throws IOException { -//		if (filename == null) -//			return null; -//		FileInputStream in = new FileInputStream(filename); -//		byte[] buffer = new byte[in.available()]; -//		in.read(buffer); -//		in.close(); -//		return buffer; -//	} -  private class HostnameVerifierHack implements HostnameVerifier { -    public boolean verify(String arg0, String arg1) { -      return true; -    } -	} -} diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/pom.xml b/id/server/modules/moa-id-modul-citizencard_authentication/pom.xml index f2403a62e..e5b38f9b6 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/pom.xml +++ b/id/server/modules/moa-id-modul-citizencard_authentication/pom.xml @@ -23,6 +23,13 @@    	</dependency>    	<dependency> +			<groupId>iaik.prod</groupId> +			<artifactId>iaik_ixsil</artifactId> +			<version>1.2.2.5</version> +			<scope>test</scope> +		</dependency>  +  	 +  	<dependency>  			<groupId>MOA.id.server</groupId>  			<artifactId>moa-id-commons</artifactId>  			<type>test-jar</type> diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java index 21e7f2027..40f203bfd 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java +++ b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java @@ -64,7 +64,6 @@ import at.gv.egovernment.moa.id.data.MISMandate;  import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;  import at.gv.egovernment.moa.id.util.XMLUtil; -import at.gv.egovernment.moa.logging.LogMsg;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.Constants;  import at.gv.egovernment.moa.util.DOMUtils; @@ -72,6 +71,7 @@ import at.gv.egovernment.moa.util.DateTimeUtils;  import at.gv.egovernment.moa.util.FileUtils;  import at.gv.egovernment.moa.util.MiscUtil;  import at.gv.egovernment.moa.util.StringUtils; +import at.gv.egovernment.moaspss.logging.LogMsg;  import iaik.asn1.ObjectID;  import iaik.x509.X509Certificate;  import iaik.x509.X509ExtensionInitException; diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java index ac528c89d..0597df622 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java +++ b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java @@ -46,13 +46,6 @@  package at.gv.egovernment.moa.id.auth.validator; -import iaik.asn1.ObjectID; -import iaik.asn1.structures.Name; -import iaik.security.ecc.ecdsa.ECPublicKey; -import iaik.utils.RFC2253NameParserException; -import iaik.x509.X509Certificate; -import iaik.x509.X509ExtensionInitException; -  import java.security.InvalidKeyException;  import java.security.PublicKey;  import java.security.interfaces.RSAPublicKey; @@ -70,6 +63,11 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;  import at.gv.egovernment.moa.id.config.auth.IOAAuthParameters;  import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;  import at.gv.egovernment.moa.logging.Logger; +import iaik.asn1.structures.Name; +import iaik.security.ec.common.ECPublicKey; +import iaik.utils.RFC2253NameParserException; +import iaik.x509.X509Certificate; +import iaik.x509.X509ExtensionInitException;  /**   * This class is used to validate an {@link VerifyXMLSignatureResponse}  @@ -268,9 +266,9 @@ public class VerifyXMLSignatureResponseValidator {        //compare ECDSAPublicKeys        if( ( (idl.getPublicKey()[i] instanceof java.security.interfaces.ECPublicKey) ||  -    		  (idl.getPublicKey()[i] instanceof iaik.security.ecc.ecdsa.ECPublicKey)) &&  +    		  (idl.getPublicKey()[i] instanceof ECPublicKey)) &&            ( (pubKeySignature instanceof java.security.interfaces.ECPublicKey) ||  -        		(pubKeySignature instanceof iaik.security.ecc.ecdsa.ECPublicKey) ) ) { +        		(pubKeySignature instanceof ECPublicKey) ) ) {  		try {  			ECPublicKey ecdsaPubKeySignature = new ECPublicKey(pubKeySignature.getEncoded()); diff --git a/id/server/modules/moa-id-modules-saml1/pom.xml b/id/server/modules/moa-id-modules-saml1/pom.xml index f19802a01..f54c24499 100644 --- a/id/server/modules/moa-id-modules-saml1/pom.xml +++ b/id/server/modules/moa-id-modules-saml1/pom.xml @@ -26,6 +26,13 @@    	</dependency>    	<dependency> +			<groupId>MOA.id.server</groupId> +			<artifactId>moa-id-commons</artifactId> +			<type>test-jar</type> +			<scope>test</scope> +		</dependency> + +  	<dependency>    		<groupId>MOA.id.server</groupId>    		<artifactId>moa-id-lib</artifactId>    	</dependency> @@ -34,7 +34,7 @@  			<moa-id-module-elga_mandate_client>1.0.0-Snapshot</moa-id-module-elga_mandate_client> -			<moa-spss-version>2.0.5-RC1</moa-spss-version> +			<moa-spss-version>3.0.0-RC1</moa-spss-version>  			<!-- Library Versions -->  			<org.springframework.version>4.2.4.RELEASE</org.springframework.version> @@ -572,23 +572,22 @@              <dependency>                  <groupId>iaik.prod</groupId>                  <artifactId>iaik_jce_full</artifactId> -                <!-- <version>4.0_MOA</version>-->                  <version>5.2</version>                  <scope>compile</scope>              </dependency>              <dependency>                  <groupId>iaik.prod</groupId>                  <artifactId>iaik_moa</artifactId> -                <version>1.51</version> +                <version>2.00-RC1</version>                  <scope>compile</scope>              </dependency>              <dependency>                  <groupId>iaik.prod</groupId>                  <artifactId>iaik_cms</artifactId> -                <version>5.0</version> +                <version>5.1</version>                  <scope>compile</scope>              </dependency> -            <dependency> +            <!--<dependency>                  <groupId>iaik.prod</groupId>                  <artifactId>iaik_ecc</artifactId>                  <version>2.19</version> @@ -599,7 +598,7 @@                  <artifactId>iaik_ixsil</artifactId>                  <version>1.2.2.5</version>                  <scope>compile</scope> -            </dependency> +            </dependency>-->              <dependency>                  <groupId>iaik.prod</groupId>                  <artifactId>iaik_X509TrustManager</artifactId> | 
