Skip to content

Instantly share code, notes, and snippets.

@depau
Created November 27, 2023 12:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save depau/8169f23b64d5f9c7933be4a294c75e95 to your computer and use it in GitHub Desktop.
Save depau/8169f23b64d5f9c7933be4a294c75e95 to your computer and use it in GitHub Desktop.
JavaCard SDK normalizer script for Linux and Unix-like systems
#!/bin/bash
set -euo pipefail
# Place this script next to `normalizer.bat`
# Set JC_CLASSIC_HOME to the parent directory of the script location
JC_CLASSIC_HOME=$(dirname "$(readlink -f "$0")")/..
# Print warning if no JAVA_HOME set
if [ -z "$JAVA_HOME" ]; then
echo "JAVA_HOME is not set. Please set it to point to JDK 7 or JDK 8"
exit 1
fi
# Set classpath to all jars
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/ant-contrib-1.0b3.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/api_classic_annotations.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/asm-all-3.1.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/bcel-5.2.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/commons-cli-1.0.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/commons-codec-1.3.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/commons-httpclient-3.0.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/commons-logging-1.1.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/jctasks.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/tools.jar:$JC_CLASSPATH"
JC_CLASSPATH="$JC_CLASSIC_HOME/lib/api_classic.jar:$JC_CLASSPATH"
# Execute normalizer's Main class
"$JAVA_HOME/bin/java" -Djc.home="$JC_CLASSIC_HOME" -classpath "$JC_CLASSPATH" com.sun.javacard.normalizer.Main "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment