FDSM is the developer's Swiss Army Knife for working with a Fidesmo device and the Fidesmo API. It provides an alternative to Fidesmo Android app when delivering services to a device via a PC/SC reader (contact or contactless). All from the command line.
You will need the following:
- Latest Java 11 for running the app
- a Fidesmo Developer account for your
$FIDESMO_AUTH
token and$FIDESMO_APPID
- a Fidesmo device (get one from the shop)
- a PC/SC NFC reader
Grab a copy of fdsm.jar
(or fdsm.exe
wrapper for Windows) from the release area. It is an executable JAR file, so start by running
java -jar fdsm.jar -h
or fdsm.exe -h
on Windows. With Linux or macOS, it is recommended to add a handy alias to your ~/.bashrc
or ~/.profile
(assuming ~/Downloads is where you saved fdsm.jar):
alias fdsm="java -jar ~/Downloads/fdsm.jar"
FDSM should be easy to use for JavaCard developers with some knowledge of the Fidesmo API. We will cover the full development cycle with the following HOWTO-s
- Develop and build your JavaCard applet with
ant-javacard
- Test your applet on a Fidesmo device with
fdsm
- Manage your application and associated applets in the Fidesmo API with
fdsm
- please open a new issue on Github if you find a mistake in code or documentation
- for general support, please contact Fidesmo support via support@fidesmo.com
FDSM is open source software, developed by Fidesmo AB and licensed under MIT license. Pull requests are most welcome, please refer to CONTRIBUTING.md.
To contribute you will need Apache Maven to build and test the software, but a wrapper to download the right version is included.
To produce a build, execute ./mvnw package
and use the generated target/fdsm.jar
.
- To release run
make release
on up-to-date main/master branch. - After checking the output of the tests,
git push
to move to next version. - Run
git push --tags
to push the tag (generated in first step) and trigger automatic release with Github Actions.- Manually pushing any tag named
v*
will also trigger the release.
- Manually pushing any tag named
- Update release description with the latest changes.
fdsm
is a command line application and takes most of its input from
command line arguments but some behavior can be tuned by setting environment
variables.
FIDESMO_AUTH
- user and password, or token. Equivalent of using--auth user:password
or--auth token
FIDESMO_API_URL
- the URL of the Fidesmo backend (do not change if unsure)FIDESMO_APPID
- the Application ID to use. Equivalent of using--app-id <id>