apply plugin: 'javacard' apply plugin: 'org.junit.platform.gradle.plugin' buildscript { repositories { maven { url 'http://releases.marmeladburk.fidesmo.com/' } mavenCentral() } dependencies { classpath 'com.fidesmo:gradle-javacard:0.2.7' classpath 'org.junit.platform:junit-platform-gradle-plugin:1.1.1' } } javacard { sdkVersion = "3.0.4" cap { aid = '0x53:0x74:0x61:0x74:0x75:0x73:0x57:0x61:0x6c:0x6c:0x65:0x74' packageName = 'im.status.wallet' applet { aid = '0x53:0x74:0x61:0x74:0x75:0x73:0x57:0x61:0x6c:0x6c:0x65:0x74:0x41:0x70:0x70' className = 'WalletApplet' } applet { aid = '0x53:0x74:0x61:0x74:0x75:0x73:0x57:0x61:0x6c:0x6c:0x65:0x74:0x4e:0x46:0x43' className = 'NDEFApplet' } version = '1.2' } } repositories { mavenCentral() } dependencies { testCompile(files("../jcardsim/jcardsim-3.0.5-SNAPSHOT.jar")) testCompile('org.web3j:core:2.3.1') testCompile('org.bitcoinj:bitcoinj-core:0.14.5') testCompile("org.bouncycastle:bcprov-jdk15on:1.58") testCompile("org.junit.jupiter:junit-jupiter-api:5.1.1") testRuntime("org.junit.jupiter:junit-jupiter-engine:5.1.1") } junitPlatform { filters { tags { exclude 'manual' } } } task wrapper(type: Wrapper) { gradleVersion = '4.7' } task install(type: Exec) { def gpShellScript = """ mode_211 enable_trace establish_context card_connect select -AID ${project.properties['im.status.gradle.gpshell.isd']} open_sc -security 1 -keyind 0 -keyver ${project.properties['im.status.gradle.gpshell.kvn']} -mac_key ${project.properties['im.status.gradle.gpshell.mac_key']} -enc_key ${project.properties['im.status.gradle.gpshell.enc_key']} -kek_key ${project.properties['im.status.gradle.gpshell.kek_key']} send_apdu_nostop -sc 1 -APDU 80E400800E4F0C53746174757357616C6C6574 install_for_load -pkgAID 53746174757357616C6C6574 load -file build/javacard/im/status/wallet/javacard/wallet.cap send_apdu -sc 1 -APDU 80E60C005F0C53746174757357616C6C65740F53746174757357616C6C65744170700F53746174757357616C6C657441707001002EC92C313233343536373839303132e929d425d7f73c2a0a24ffefad87b65e9b2ee96603eab34d64088b5aae2a026f00 install_for_install -AID 53746174757357616C6C65744e4643 -pkgAID 53746174757357616C6C6574 -instAID D2760000850101 card_disconnect release_context """ executable project.properties['im.status.gradle.gpshell'] standardInput new ByteArrayInputStream(gpShellScript.getBytes("UTF-8")) } if (project.properties['im.status.wallet.test.simulated'] != 'true') { tasks.install.dependsOn(convertJavacard) tasks.test.dependsOn(install) } compileJava { sourceCompatibility = 1.6 targetCompatibility = 1.6 } compileTestJava { sourceCompatibility = 1.8 targetCompatibility = 1.8 } afterEvaluate { if (project.properties['im.status.wallet.test.simulated'] == 'true') { def junitPlatformTestTask = tasks.getByName('junitPlatformTest') junitPlatformTestTask.jvmArgs(['-noverify', '-Dim.status.wallet.test.simulated=true']) } }