opensc-explorer supports commands with arguments at its
interactive prompt or in script files passed via the command line parameter
SCRIPT.
Similar to a command shell like e.g. bash, each input line is
split into white-space separated words. Of these words, the first one is
used as the command, while the remaining ones are treated as arguments to
that command.
The following commands are supported:
# ...
Treat line as a comment. Ignore anything until the end of
the line introduced by #.
apdu data...
Send a custom APDU command to the card. data is a
series of sequences of hexadecimal values and strings enclosed in double
quotes ("...").
asn1 file-id [rec-no] [offs]
Parse and print the ASN.1 encoded content of the working
EF specified by file-id. If the optional parameter rec-no is
given and the file is a record-oriented EF, parse and print only the record
indicated by this parameter. If the optional parameter offs is given,
start parsing and printing the file or record at the offset indicated by the
value given. If this parameter is not given, the default offset is 0.
cat [file-id | sfi:short-id]
[rec-no]
Print the contents of the working EF specified by
file-id or the short file id short-id. If the optional second
parameter rec-no is given, only print the record indicated by this
parameter. If no argument is given, print the the contents of the currently
selected EF.
cd {.. | file-id | aid:DF-name}
Change to another DF specified by the argument passed. If
the argument given is .., then move up one level in the file system hierarchy.
If it is a file-id, which must be a DF directly beneath the current DF,
then change to that DF. If it is an application identifier given as
aid:DF-name, then jump to the MF of the application denoted by
DF-name.
change CHVpin-ref
[[old-pin] new-pin]
Change the PIN specified by
pin-ref from the value
given by
old-pin and change its value to
new-pin.
old-pin and new-pin can be sequences of hexadecimal
values, strings enclosed in double quotes ("..."), empty
(""), or absent. If absent, the values are read from the card
reader's pin pad.
Examples:
change CHV2 00:00:00:00:00:00 "foobar"
Change PIN CHV2 to the new value foobar, giving the old
value 00:00:00:00:00:00.
change CHV2 "foobar"
Set PIN CHV2 to the new value foobar.
change CHV2
Change PIN CHV2 using the card reader's pinpad.
create file-id size
Create a new EF. file-id specifies the numeric id,
and size the size of the EF to create.
debug [level]
Set OpenSC debug level to
level.
If level is omitted, show the current debug level.
delete file-id
Remove the EF or DF specified by file-id.
do_get hex-tag [output]
Copy the contents of the card's data object (DO)
specified by
hex-tag to the local host computer's file named
output.
If output is not given, the contents of hex-tag will
be displayed as hex-dump.
do_put hex-tag data
Change the contents of the card's data object (DO)
specified by
hex-tag to
data.
data is either a sequence of hexadecimal values or a string
enclosed in double quotes ("...").
echo string...
Print the strings given.
erase
Erase the card, if the card supports it.
get file-id [output]
Copy an EF to a local file. The local file is specified
by
output while the card file is specified by
file-id.
If output is omitted, the name of the output file will be
derived from the full card path to file-id.
get_record file-id rec-no [output]
Copy a record of a record-oriented EF to a local file.
The local file is specified by
output while the card file and the
record are specified by
file-id and
rec-no,
If output is omitted, the name of the output file will be
derived from the full card path to file-id. and the
rec-no.
help [pattern]
Display the list of available commands, their options and
parameters together with a short help text. If pattern is given, the
commands shown are limited to those matching pattern.
info [file-id]
Display attributes of a file specified by file-id.
If file-id is not supplied, the attributes of the current file are
displayed.
ls [pattern...]
List files in the current DF. If no pattern is
given, then all files are listed. If one or more patterns are given,
only files matching at least one pattern are listed.
find [start-id [end-id]]
Find all files in the current DF. Files are found by
selecting all file identifiers in the range from
start-fid to
end-fid.
If not given, the default value for start-fid is 0000,
while the default for end-fid is FFFF.
find_tags [start-tag [end-tag]]
Find all tags of data objects in the current context.
Tags are found by using GET DATA in the range from from
start-tag to
end-tag.
If not given, the default value for start-tag is 0000,
while the default for end-tag is FFFF.
mkdir file-id size
Create a DF. file-id specifies the numeric id, and
size the size of the DF to create.
pin_info key-typekey-id
Get information on a PIN or key from the card, where
key-type can be one of CHV, KEY, AUT or PRO. key-id is a number
representing the key or PIN reference.
put file-id input
Copy a local file to the card. The local file is
specified by input while the card file is specified by
file-id.
quit
Exit the program.
random count [output-file]
Generate count bytes of random data. If
output-file is given, write the data to the host computer's file
denoted by it, otherwise show the data as hex dump.
rm file-id
Remove the EF or DF specified by file-id.
unblock CHVpin-ref
[puk [new-pin]]
Unblock the PIN denoted by
pin-ref using the PUK
puk, and potentially change its value to
new-pin.
puk and new-pin can be sequences of hexadecimal
values, strings enclosed in double quotes ("..."), empty
(""), or absent. If absent, the values are read from the card
reader's pin pad.
Examples:
unblock CHV2 00:00:00:00:00:00 "foobar"
Unblock PIN CHV2 using PUK 00:00:00:00:00:00 and set it
to the new value foobar.
unblock CHV2 00:00:00:00:00:00 ""
Unblock PIN CHV2 using PUK 00:00:00:00:00:00 keeping the
old value.
unblock CHV2 "" "foobar"
Set new value of PIN CHV2 to foobar.
unblock CHV2 00:00:00:00:00:00
Unblock PIN CHV2 using PUK 00:00:00:00:00:00. The new PIN
value is prompted by pinpad.
unblock CHV2 ""
Set PIN CHV2. The new PIN value is prompted by
pinpad.
unblock CHV2
Unblock PIN CHV2. The unblock code and new PIN value are
prompted by pinpad.
update_binary file-id offs data
Binary update of the file specified by
file-id
with the literal data
data starting from offset specified by
offs.
data can be supplied as a sequence of hexadecimal values or
as a string enclosed in double quotes ("...").
update_record file-id rec-nr rec-offs
data
Update record specified by
rec-nr of the file
specified by
file-id with the literal data
data starting from
offset specified by
rec-offs.
data can be supplied as a sequence of hexadecimal values or
as a string enclosed in double quotes ("...").
verify key-typekey-id [key]
Present a PIN or key to the card, where
key-type
can be one of CHV, KEY, AUT or PRO.
key-id is a number representing the
key or PIN reference.
key is the key or PIN to be verified, formatted
as a colon-separated sequence of hexadecimal values or a string enclosed in
double quotes ("...").
If key is omitted, the exact action depends on the card
reader's features: if the card readers supports PIN input via a pin pad,
then the PIN will be verified using the card reader's pin pad. If the card
reader does not support PIN input, then the PIN will be asked
interactively.
Examples:
verify CHV2 31:32:33:34:00:00:00:00
Verify CHV2 using the hex value
31:32:33:34:00:00:00:00
verify CHV1 "secret"
Verify CHV1 using the string value secret.
verify KEY2
Verify KEY2, get the value from the card reader's pin
pad.
sm {open | close}
Call the card's open or close Secure Messaging
handler.