keycard-cli icon indicating copy to clipboard operation
keycard-cli copied to clipboard

A command line tool and shell to manage keycards

keycard-cli

keycard is a command line tool to manage Status Keycards.

  • Dependencies
  • Installation
  • Continuous Integration
  • CLI Commands
    • Card info
    • Keycard applet installation
    • Card initialization
    • Deleting the applet
    • Keycard shell

Dependencies

  • An USB smart card reader (those with contacts are more reliable than NFC readers).
  • On linux you need to install and run the pcsc daemon.

Installation

Download the binary for your platform from the releases page and rename the file to keycard, removing the platform specific suffix.

Continuous Integration

Jenkins builds provide:

  • PR Builds - Run only the test and build targets.
  • Manual Builds - Create GitHub release draft with binaries for 3 platforms.

Successful PR builds are mandatory.

Usage

Card info

keycard info -l debug

The info command will print something like this:

Installed: true
Initialized: false
InstanceUID: 0x
PublicKey: 0x112233...
Version: 0x
AvailableSlots: 0x
KeyUID: 0x

Keycard applet installation

The install command will install an applet to the card. You can download the status cap file from the status-im/status-keycard releases page.

keycard install -l debug -a PATH_TO_CAP_FILE

In case the applet is already installed and you want to force a new installation you can pass the -f flag.

Card initialization

keycard init -l debug

The init command initializes the card and generates the secrets needed to pair the card to a device.

PIN 123456
PUK 123456789012
Pairing password: RandomPairingPassword

Deleting the applet

:warning: WARNING! This command will remove the applet and all the keys from the card. :warning:

keycard-cli delete -l debug

Keycard shell

Check the _shell-commands-examples folder.