aboutsummaryrefslogtreecommitdiff
path: root/applet
diff options
context:
space:
mode:
authorJ08nY2024-03-23 13:01:03 +0100
committerJ08nY2024-03-25 14:57:34 +0100
commitc01f16cbacb45682547e4712bdae854c56604e61 (patch)
tree5bfe030c2b6333dde0ee34b444d975d02bbc5659 /applet
parent73af477a8774e1ede5dd8de6491eb353dc0b12bd (diff)
downloadECTester-c01f16cbacb45682547e4712bdae854c56604e61.tar.gz
ECTester-c01f16cbacb45682547e4712bdae854c56604e61.tar.zst
ECTester-c01f16cbacb45682547e4712bdae854c56604e61.zip
Fix applet building.
Diffstat (limited to 'applet')
-rw-r--r--applet/build.gradle.kts142
-rw-r--r--applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java4
-rw-r--r--applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java4
-rw-r--r--applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java1
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;