<project name="KeyWrapping" basedir=".">
    <property name="output.dir"         value="target"/>
    <property name="output.file"        value="${output.dir}/KeyUnwrapping.cap"/>
    <property name="verify.file"        value="${output.dir}/Verification.cap"/>
    <property name="app.id"             value="0102030405060708"/>
    <property name="pkg.id"             value="0102030405"/>
    <property name="lib.dir"            value="lib"/>
    <property name="aes-import.apdu"    value="A0010100208E9843D0790C65B8D7FEA63BB8F242E1B7375CF8E9CE5FDDB44AFD5AFF23DBDE"/>
    <property name="hmac-import.apdu"   value="A001020020DC2F8E2E1B3DAE4DEE0FAD0D77AF87AA3A3D771D095FF20610E27053DC265415"/>
    <property name="unwrap.apdu"        value="A002000000012BD7FB577A7B22DAB095359E6AAB8E303C479AC8C16406C88C5A96325ACDA330BB5D3C01BDFC871B136450EC4B49CFF4DE3C1C35FBCC6F2C78CF95AD52646673A499E8C9BB846D29276373FF1DDC57B445783174324C69981F8B49A05DF06AC19D26BFBFE03F36E6FBE328D2A7C1EECD8CC9ACCE7369CF4B64FE2FA33CCC627A4A3A215CB23CE1860F27A42C877F2AC4C10F9B9AF6DA6578E63813C7E7EE61A6D31E73178E1910B215081FFF37E14584F9784566553E045B8A97AF8AB42C8457CA6C53937F5B368AFBE873B11633541284F751EBB1A5AB49BDD7997616FFC2CCF9F6513B8BE937E0C93D548E0955AB870A88BF024A25C53377006A6F6F3C716E92F2E139524D4EE633CBC3FA7182476D54102EFAE0F10672E1DDA5DEBB198DA853849D8233C604462714012B0109"/>
    <property name="wrap.apdu"          value="A0030000000109706B46D2B1A417E07480FEFCB8744F20E941C84CCD61BFB473734DB45C1DB294B0A4CDDDC781F10FA42FE4B129C03DEFD4FD8EC5490B3EA50829F419D264849F76E511E4CF4722FD637CA9247E54F5DF4773BEFE092A8032F859DA7A5E7A2B361B050C299EF646D07557BF382FB16BA34E968C1EDA513EC09CC917B1D1E72D61B01BD21B50E97D3A4D40C96D0B93BB4D3899D1510EDE6CC16BCD706F925C781C284290A746AE9BE53A89336C33FE266BEA99FF3AB4238211985814ED05EC25F669A9E0756A4146518618D18085F52627E67E73BA6CA9B06748976E2AF7B8B5C571CCE89908FA022E4563BA3CBC2E044F55EA01E5D1600DD1F6B0CD7CE942822601000000006368FBFA012B"/>

    <get src="https://github.com/martinpaljak/ant-javacard/releases/latest/download/ant-javacard.jar" dest="${lib.dir}/ant-javacard.jar" skipexisting="true"/>
    <taskdef name="javacard" classname="pro.javacard.ant.JavaCard" classpath="${lib.dir}/ant-javacard.jar"/>

    <target name="verify">
        <javacard>
            <cap jckit="sdks/jc305u3_kit" aid="${pkg.id}" package="org.KeyWrapping" output="${verify.file}" sources="src/main/java">
                <applet class="org.KeyWrapping.WrapApplet" aid="${app.id}"/>
            </cap>
        </javacard>
    </target>

    <target name="build">
        <mkdir dir="${output.dir}"/>
        <javacard>
            <cap jckit="sdks/jc304_kit" aid="${pkg.id}" package="org.KeyWrapping" output="${output.file}" sources="src/main/java">
                <applet class="org.KeyWrapping.WrapApplet" aid="${app.id}"/>
            </cap>
        </javacard>
    </target>

    <target name="install">
        <exec executable="java">
            <arg value="-jar"/>
            <arg value="${lib.dir}/gp.jar"/>
            <arg value="--install"/>
            <arg value="${output.file}"/>
        </exec>
    </target>

    <target name="list">
        <exec executable="java">
            <arg value="-jar"/>
            <arg value="${lib.dir}/gp.jar"/>
            <arg value="--list"/>
        </exec>
    </target>

    <target name="uninstall">
        <exec executable="java" failonerror="false">
            <arg value="-jar"/>
            <arg value="${lib.dir}/gp.jar"/>
            <arg value="--delete"/>
            <arg value="${app.id}"/>
            <arg value="--delete"/>
            <arg value="${pkg.id}"/>
        </exec>
    </target>

    <target name="test-aeskey">
        <exec executable="java">
            <arg value="-jar"/>
            <arg value="${lib.dir}/gp.jar"/>
            <arg value="--debug"/>
            <arg value="--applet"/>
            <arg value="${app.id}"/>
            <arg value="--apdu"/>
            <arg value="${aes-import.apdu}"/>
        </exec>
    </target>
    <target name="test-hmac">
        <exec executable="java">
            <arg value="-jar"/>
            <arg value="${lib.dir}/gp.jar"/>
            <arg value="--debug"/>
            <arg value="--applet"/>
            <arg value="${app.id}"/>
            <arg value="--apdu"/>
            <arg value="${hmac-import.apdu}"/>
        </exec>
    </target>
    <target name="test-unwrap">
        <exec executable="java">
            <arg value="-jar"/>
            <arg value="${lib.dir}/gp.jar"/>
            <arg value="--debug"/>
            <arg value="--applet"/>
            <arg value="${app.id}"/>
            <arg value="--apdu"/>
            <arg value="${unwrap.apdu}"/>
        </exec>
    </target>
    <target name="test-wrap">
        <exec executable="java">
            <arg value="-jar"/>
            <arg value="${lib.dir}/gp.jar"/>
            <arg value="--debug"/>
            <arg value="--applet"/>
            <arg value="${app.id}"/>
            <arg value="--apdu"/>
            <arg value="${wrap.apdu}"/>
        </exec>
    </target>

    <target name="test" depends="test-aeskey, test-hmac, test-unwrap"/>
    <target name="build-reinstall" depends="build, uninstall, install"/>
    <target name="build-reinstall-test" depends="build, uninstall, install, test"/>

</project>