<?xml version="1.0"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->

<project default="run" name="create keystores et al">

  <!-- first create our properties -->
  <condition property="is.ibm.jdk">
    <available classname="com.ibm.crypto.tools.KeyTool"/>
  </condition>
  <condition property="is.sun.jdk">
    <available classname="sun.security.tools.KeyTool"/>
  </condition>
  <property name="server.alias" value="serveralias"/>
  <property name="server.keypass" value="serverPassword"/>
  <property name="server.keystore" value="${basedir}/target/classes/META-INF/serverStore.jks"/>
  <property name="server.storepass" value="keystorePass"/>
  <property name="server.dname" value="'cn=serveralias'"/>
  <property name="server.file" value="${basedir}/target/classes/META-INF/serverKey.rsa"/>

  <property name="client.alias" value="clientalias"/>
  <property name="client.keypass" value="clientPassword"/>
  <property name="client.keystore" value="${basedir}/target/test-classes/META-INF/clientStore.jks"/>
  <property name="client.storepass" value="keystorePass"/>
  <property name="client.dname" value="'cn=clientalias'"/>
  <property name="client.file" value="${basedir}/target/test-classes/META-INF/clientKey.rsa"/>

  <property name="keyalg" value="RSA"/>

  <!-- now create our JDK specific targets -->
  <target name="do.ibm.jdk" if="is.ibm.jdk">
    <echo message="*** Running on an IBM JDK ***"/>
    <echo message="generate server keys"/>
    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-genkey"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-keypass ${server.keypass}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
      <arg line="-dname ${server.dname}"/>
      <arg line="-keyalg ${keyalg}"/>
    </java>
    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-selfcert"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
      <arg line="-keypass ${server.keypass}"/>
    </java>
    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-export"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-file ${server.file}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
    </java>

    <echo message="generate client keys"/>

    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-genkey"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-keypass ${client.keypass}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
      <arg line="-dname ${client.dname}"/>
      <arg line="-keyalg ${keyalg}"/>
    </java>
    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-selfcert"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
      <arg line="-keypass ${client.keypass}"/>
    </java>
    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-export"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-file ${client.file}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
    </java>

    <echo message="import client/server public keys in client/server keystores"/>
    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-import"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-file ${server.file}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
      <arg line="-noprompt"/>
    </java>
    <java classname="com.ibm.crypto.tools.KeyTool" fork="true">
      <arg line="-import"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-file ${client.file}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
      <arg line="-noprompt"/>
    </java>
  </target>

  <target name="do.sun.jdk" if="is.sun.jdk">
    <echo message="*** Running on a Sun JDK ***"/>
    <echo message="generate server keys"/>
    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-genkey"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-keypass ${server.keypass}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
      <arg line="-dname ${server.dname}"/>
      <arg line="-keyalg ${keyalg}"/>
    </java>
    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-selfcert"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
      <arg line="-keypass ${server.keypass}"/>
    </java>
    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-export"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-file ${server.file}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
    </java>

    <echo message="generate client keys"/>

    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-genkey"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-keypass ${client.keypass}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
      <arg line="-dname ${client.dname}"/>
      <arg line="-keyalg ${keyalg}"/>
    </java>
    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-selfcert"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
      <arg line="-keypass ${client.keypass}"/>
    </java>
    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-export"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-file ${client.file}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
    </java>

    <echo message="import client/server public keys in client/server keystores"/>
    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-import"/>
      <arg line="-alias ${server.alias}"/>
      <arg line="-file ${server.file}"/>
      <arg line="-keystore ${client.keystore}"/>
      <arg line="-storepass ${client.storepass}"/>
      <arg line="-noprompt"/>
    </java>
    <java classname="sun.security.tools.KeyTool" fork="true">
      <arg line="-import"/>
      <arg line="-alias ${client.alias}"/>
      <arg line="-file ${client.file}"/>
      <arg line="-keystore ${server.keystore}"/>
      <arg line="-storepass ${server.storepass}"/>
      <arg line="-noprompt"/>
    </java>
  </target>

  <!-- run everything from our main target -->
  <!-- the other targets will only be run when their properties are true -->
  <target name="run" depends="do.sun.jdk, do.ibm.jdk">
    <echo message="Running JDK specific keystore creation target"/>
  </target>

</project>

