diff options
| author | J08nY | 2024-03-23 13:01:03 +0100 |
|---|---|---|
| committer | J08nY | 2024-03-25 14:57:34 +0100 |
| commit | c01f16cbacb45682547e4712bdae854c56604e61 (patch) | |
| tree | 5bfe030c2b6333dde0ee34b444d975d02bbc5659 /applet | |
| parent | 73af477a8774e1ede5dd8de6491eb353dc0b12bd (diff) | |
| download | ECTester-c01f16cbacb45682547e4712bdae854c56604e61.tar.gz ECTester-c01f16cbacb45682547e4712bdae854c56604e61.tar.zst ECTester-c01f16cbacb45682547e4712bdae854c56604e61.zip | |
Fix applet building.
Diffstat (limited to 'applet')
4 files changed, 81 insertions, 70 deletions
diff --git a/applet/build.gradle.kts b/applet/build.gradle.kts index d93496e..5380bae 100644 --- a/applet/build.gradle.kts +++ b/applet/build.gradle.kts @@ -1,5 +1,3 @@ -version "0.3.3" - // Buildscript configuration for the javacard-gradle plugin. // Do not modify this particular block. Dependencies for the project are lower. buildscript { @@ -7,7 +5,6 @@ buildscript { mavenCentral() maven("https://javacard.pro/maven") maven("https://deadcode.me/mvn") - // mavenLocal() } dependencies { classpath("com.klinec:gradle-javacard:1.8.0") @@ -19,12 +16,6 @@ plugins { id("java") } -java { - toolchain { - languageVersion = JavaLanguageVersion.of(8) - } -} - // Common settings, definitions val rootPath = rootDir.absolutePath val libs = "$rootPath/ext/libs" @@ -54,83 +45,112 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher") - //testImplementation(group = "com.klinec", name = "javacard-tools", version = "1.0.4") { - // exclude group = "com.klinec", module = "jcardsim" - //} - // Include plugin as it has bundled GP & other tools. // Alternative: include GP manually, but the included // version has to be compatible with the plugin. runtimeOnly("com.klinec:gradle-javacard:1.8.0") } -//task dumpClassPath (dependsOn: listOf("idea")) { -// doLast { -// println "Gradle classpath:\n- "+configurations.implementation.files*.name.join("\n- ") -// println "-------\n" -// println "IDEA classpath: \n- "+file(project.name+".iml").readLines() -// .grep(~ / . * "jar:.*/).collect { it.split("listOf(\\/)")[-3].trim() }.join("\n-") -// println "-------\n" -// } -//} - tasks.named<Test>("test") { useJUnitPlatform() } // JavaCard SDKs and libraries -val JC212 = libsSdk + "/jc212_kit" -val JC221 = libsSdk + "/jc221_kit" -val JC222 = libsSdk + "/jc222_kit" -val JC303 = libsSdk + "/jc303_kit" -val JC304 = libsSdk + "/jc304_kit" -val JC305 = libsSdk + "/jc305u1_kit" -val JC305u2 = libsSdk + "/jc305u2_kit" -val JC305u3 = libsSdk + "/jc305u3_kit" - -// Which JavaCard SDK to use - select -// In order to compile JC222 and lower you have to have Java SDK <= 1.8 -// For more info on JavaCard vs JDK version requirements inspect: -// https://github.com/martinpaljak/ant-javacard/wiki/Version-compatibility -// -// JC310b43 supports building also for lower versions (cap.targetsdk). -// If another SDK is selected, please comment the cap.targetsdk setting. -val JC_SELECTED = JC222 +val sdks = mapOf( + "JC211" to Triple("$libsSdk/jc211_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_1_8), + "JC212" to Triple("$libsSdk/jc212_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_1_8), + "JC221" to Triple("$libsSdk/jc221_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_1_8), + "JC222" to Triple("$libsSdk/jc222_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_1_8), + "JC303" to Triple("$libsSdk/jc303_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_11), + "JC304" to Triple("$libsSdk/jc304_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_11), + "JC305u2" to Triple("$libsSdk/jc305u2_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_11), + "JC305u3" to Triple("$libsSdk/jc305u3_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_11), + "JC305u4" to Triple("$libsSdk/jc305u4_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_11), + "JC310b43" to Triple("$libsSdk/jc310b43_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_17), + "JC310r20210706" to Triple("$libsSdk/jc310r20210706_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_17), + "JC320v24" to Triple("$libsSdk/jc320v24.0_kit", JavaVersion.VERSION_1_8, JavaVersion.VERSION_17), +) +var pkgAID = "4543546573746572" +var version = "0.3.3" javacard { - config { - jckit(JC_SELECTED) - // Using custom repo with jcardsim debugGpPro(true) addImplicitJcardSim(false) addImplicitJcardSimJunit(false) - cap { - packageName("cz.crcs.ectester.applet") - version("0.3.3") - aid("01:ff:ff:04:05:06:07:08:09") - output("applet.cap") + if (JavaVersion.current() == JavaVersion.VERSION_1_8) { + /* + // Exclude for the time being, as the "excludes" param is not properly implemented upstream. + // https://github.com/ph4r05/javacard-gradle-plugin/pull/11 + cap { + jckit(sdks["JC221"]!!.first) + packageName("cz.crcs.ectester.applet") + version(version) + aid(pkgAID) + output("applet221.cap") - // JC310b43 supports compilation targeting for lower API versions. - // Here you can specify path to the SDK you want to use. - // Only JC304 and higher are supported for targeting. - // If JC310b43 is not used, targetsdk cannot be set. - targetsdk(JC_SELECTED) + //excludes("ECTesterAppletExtended.*") + + applet { + className("cz.crcs.ectester.applet.ECTesterApplet") + aid("454354657374657230333320323231") + } + } + */ - // Override java bytecode version if needed. - // javaversion "1.7" + cap { + jckit(sdks["JC222"]!!.first) + packageName("cz.crcs.ectester.applet") + version(version) + aid(pkgAID) + output("applet222.cap") - applet { - className("applet.MainApplet") - aid("01:ff:ff:04:05:06:07:08:09:01:02") + //excludes("ECTesterApplet.*") + + applet { + className("cz.crcs.ectester.applet.ECTesterAppletExtended") + aid("454354657374657230333320323232") + } + } + } + + if (JavaVersion.current() >= JavaVersion.VERSION_1_8 && JavaVersion.current() <= JavaVersion.VERSION_11) { + cap { + jckit(sdks["JC305u4"]!!.first) + packageName("cz.crcs.ectester.applet") + version(version) + aid(pkgAID) + output("applet305.cap") + + //excludes("ECTesterApplet.*") + + applet { + className("cz.crcs.ectester.applet.ECTesterAppletExtended") + aid("454354657374657230333320323035") + } } + } + + if (JavaVersion.current() > JavaVersion.VERSION_11) { + // This really only works for Java <= 17, but if the check is added, then configuration + // of the project will not work for Java > 17. + cap { + jckit(sdks["JC320v24"]!!.first) + packageName("cz.crcs.ectester.applet") + version(version) + aid(pkgAID) + output("applet320.cap") - // dependencies { - // remote "com.klinec:globalplatform:2.1.1" - // } + //excludes("ECTesterApplet.*") + + applet { + className("cz.crcs.ectester.applet.ECTesterAppletExtended") + aid("454354657374657230333320323230") + } + } } } }
\ No newline at end of file diff --git a/applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java index 8eabd54..d679341 100644 --- a/applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java @@ -21,10 +21,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -/* - * PACKAGEID: 4543546573746572 - * APPLETID: 454354657374657230333362 // VERSION v0.3.3 - */ package cz.crcs.ectester.applet; import javacard.framework.APDU; diff --git a/applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java index 8ab5520..a254ebd 100644 --- a/applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java @@ -21,10 +21,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -/* - * PACKAGEID: 4543546573746572 - * APPLETID: 454354657374657230333378 // VERSION v0.3.3 - */ package cz.crcs.ectester.applet; import javacard.framework.APDU; diff --git a/applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java b/applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java index 81016ac..2883ff1 100644 --- a/applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java @@ -1472,7 +1472,6 @@ public class EC_Consts { return curve <= FP_CURVES ? KeyPair.ALG_EC_FP : KeyPair.ALG_EC_F2M; } - @SuppressWarnings("fallthrough") public static short toX962(byte form, byte[] outputBuffer, short outputOffset, byte[] xBuffer, short xOffset, short xLength, byte[] yBuffer, short yOffset, short yLength) { short size = 1; size += xLength; |
