'\" t
.\" Title: npa-tool
.\" Author: [see the "Authors" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 04/05/2024
.\" Manual: OpenSC Tools
.\" Source: opensc
.\" Language: English
.\"
.TH "NPA\-TOOL" "1" "04/05/2024" "opensc" "OpenSC Tools"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
npa-tool \- displays information on the German eID card (neuer Personalausweis, nPA)\&.
.SH "SYNOPSIS"
.HP \w'\fBnpa\-tool\fR\ 'u
\fBnpa\-tool\fR [\fIOPTIONS\fR]
.SH "DESCRIPTION"
.PP
The
\fBnpa\-tool\fR
utility is used to display information stored on the German eID card (neuer Personalausweis,
nPA), and to perform some write and verification operations\&.
.PP
Extended Access Control version 2 is performed according to ICAO Doc 9303 or BSI TR\-03110 so that other identity cards and machine readable travel documents (MRTDs) may be read as well\&.
.SH "OPTIONS"
.PP
.PP
\fB\-\-help\fR, \fB\-h\fR
.RS 4
Print help and exit\&.
.RE
.PP
\fB\-\-version\fR, \fB\-V\fR
.RS 4
Print version and exit\&.
.RE
.PP
\fB\-\-reader\fR \fIarg\fR, \fB\-r\fR \fIarg\fR
.RS 4
Number of the reader to use\&. By default, the first reader with a present card is used\&. If
\fIarg\fR
is an ATR, the reader with a matching card will be chosen\&.
.RE
.PP
\fB\-\-verbose\fR, \fB\-v\fR
.RS 4
Causes
\fBnpa\-tool\fR
to be more verbose\&. Specify this flag several times to be more verbose\&.
.RE
.SS "Password Authenticated Connection Establishment (PACE)"
.PP
\fB\-\-pin\fR [\fISTRING\fR], \fB\-p\fR [\fISTRING\fR]
.RS 4
Run
PACE
with (transport) eID\-PIN\&.
.RE
.PP
\fB\-\-puk\fR [\fISTRING\fR], \fB\-u\fR [\fISTRING\fR]
.RS 4
Run
PACE
with PUK\&.
.RE
.PP
\fB\-\-can\fR [\fISTRING\fR], \fB\-c\fR [\fISTRING\fR]
.RS 4
Run
PACE
with Card Access Number (CAN)\&.
.RE
.PP
\fB\-\-mrz\fR [\fISTRING\fR], \fB\-m\fR [\fISTRING\fR]
.RS 4
Run
PACE
with Machine Readable Zone (MRZ)\&. Enter the
MRZ
without newlines\&.
.RE
.PP
\fB\-\-env\fR
.RS 4
Specify whether to use environment variables
\fBPIN\fR,
\fBPUK\fR,
\fBCAN\fR,
\fBMRZ\fR, and
\fBNEWPIN\fR\&. You may want to clean your environment before enabling this\&. (default=off)
.RE
.SS "PIN management"
.PP
\fB\-\-new\-pin\fR [\fISTRING\fR], \fB\-N\fR [\fISTRING\fR]
.RS 4
Install a new PIN\&.
.RE
.PP
\fB\-\-resume\fR, \fB\-R\fR
.RS 4
Resume eID\-PIN (uses
CAN
to activate last retry)\&. (default=off)
.RE
.PP
\fB\-\-unblock\fR, \fB\-U\fR
.RS 4
Unblock PIN (uses PUK to activate three more retries)\&. (default=off)
.RE
.SS "Terminal Authentication (TA) and Chip Authentication (CA)"
.PP
\fB\-\-cv\-certificate\fR \fIFILENAME\fR, \fB\-C\fR \fIFILENAME\fR
.RS 4
Specify Card Verifiable (CV) certificate to create a certificate chain\&. The option can be given multiple times, in which case the order is important\&.
.RE
.PP
\fB\-\-cert\-desc\fR \fIHEX_STRING\fR
.RS 4
Certificate description to show for Terminal Authentication\&.
.RE
.PP
\fB\-\-chat\fR \fIHEX_STRING\fR
.RS 4
Specify the Card Holder Authorization Template (CHAT) to use\&. If not given, it defaults to the terminal\*(Aqs CHAT\&. Use
7F4C0E060904007F000703010203530103
to trigger EAC on the CAT\-C (Komfortleser)\&.
.RE
.PP
\fB\-\-auxiliary\-data\fR \fIHEX_STRING\fR, \fB\-A\fR \fIHEX_STRING\fR
.RS 4
Specify the terminal\*(Aqs auxiliary data\&. If not given, the default is determined by verification of validity, age and community ID\&.
.RE
.PP
\fB\-\-private\-key\fR \fIFILENAME\fR, \fB\-P\fR \fIFILENAME\fR
.RS 4
Specify the terminal\*(Aqs private key\&.
.RE
.PP
\fB\-\-cvc\-dir\fR \fIDIRECTORY\fR
.RS 4
Specify where to look for the certificate of the Country Verifying Certification Authority (CVCA)\&. If not given, it defaults to
/home/fm/\&.local/etc/eac/cvc\&.
.RE
.PP
\fB\-\-x509\-dir\fR \fIDIRECTORY\fR
.RS 4
Specify where to look for the X\&.509 certificate\&. If not given, it defaults to
/home/fm/\&.local/etc/eac/x509\&.
.RE
.PP
\fB\-\-disable\-ta\-checks\fR
.RS 4
Disable checking the validity period of CV certificates\&. (default=off)
.RE
.PP
\fB\-\-disable\-ca\-checks\fR
.RS 4
Disable passive authentication\&. (default=off)
.RE
.SS "Read and write data groups"
.PP
\fB\-\-read\-dg1\fR
.RS 4
Read data group 1: Document Type\&.
.RE
.PP
\fB\-\-read\-dg2\fR
.RS 4
Read data group 2: Issuing State\&.
.RE
.PP
\fB\-\-read\-dg3\fR
.RS 4
Read data group 3: Date of Expiry\&.
.RE
.PP
\fB\-\-read\-dg4\fR
.RS 4
Read data group 4: Given Name(s)\&.
.RE
.PP
\fB\-\-read\-dg5\fR
.RS 4
Read data group 5: Family Name\&.
.RE
.PP
\fB\-\-read\-dg6\fR
.RS 4
Read data group 6: Religious/Artistic Name\&.
.RE
.PP
\fB\-\-read\-dg7\fR
.RS 4
Read data group 7: Academic Title\&.
.RE
.PP
\fB\-\-read\-dg8\fR
.RS 4
Read data group 8: Date of Birth\&.
.RE
.PP
\fB\-\-read\-dg9\fR
.RS 4
Read data group 9: Place of Birth\&.
.RE
.PP
\fB\-\-read\-dg10\fR
.RS 4
Read data group 10: Nationality\&.
.RE
.PP
\fB\-\-read\-dg11\fR
.RS 4
Read data group 11: Sex\&.
.RE
.PP
\fB\-\-read\-dg12\fR
.RS 4
Read data group 12: Optional Data\&.
.RE
.PP
\fB\-\-read\-dg13\fR
.RS 4
Read data group 13: Birth Name\&.
.RE
.PP
\fB\-\-read\-dg14\fR
.RS 4
Read data group 14\&.
.RE
.PP
\fB\-\-read\-dg15\fR
.RS 4
Read data group 15\&.
.RE
.PP
\fB\-\-read\-dg16\fR
.RS 4
Read data group 16\&.
.RE
.PP
\fB\-\-read\-dg17\fR
.RS 4
Read data group 17: Normal Place of Residence\&.
.RE
.PP
\fB\-\-read\-dg18\fR
.RS 4
Read data group 18: Community ID\&.
.RE
.PP
\fB\-\-read\-dg19\fR
.RS 4
Read data group 19: Residence Permit I\&.
.RE
.PP
\fB\-\-read\-dg20\fR
.RS 4
Read data group 20: Residence Permit II\&.
.RE
.PP
\fB\-\-read\-dg21\fR
.RS 4
Read data group 21: Optional Data\&.
.RE
.PP
\fB\-\-write\-dg17\fR \fIHEX_STRING\fR
.RS 4
Write data group 17: Normal Place of Residence\&.
.RE
.PP
\fB\-\-write\-dg18\fR \fIHEX_STRING\fR
.RS 4
Write data group 18: Community ID\&.
.RE
.PP
\fB\-\-write\-dg19\fR \fIHEX_STRING\fR
.RS 4
Write data group 19: Residence Permit I\&.
.RE
.PP
\fB\-\-write\-dg20\fR \fIHEX_STRING\fR
.RS 4
Write data group 20: Residence Permit II\&.
.RE
.PP
\fB\-\-write\-dg21\fR \fIHEX_STRING\fR
.RS 4
Write data group 21: Optional Data\&.
.RE
.SS "Verification of validity, age and community ID"
.PP
\fB\-\-verify\-validity\fR \fIYYYYMMDD\fR
.RS 4
Verify chip\*(Aqs validity with a reference date\&.
.RE
.PP
\fB\-\-older\-than\fR \fIYYYYMMDD\fR
.RS 4
Verify age with a reference date\&.
.RE
.PP
\fB\-\-verify\-community\fR \fIHEX_STRING\fR
.RS 4
Verify community ID with a reference ID\&.
.RE
.SS "Special options, not always useful"
.PP
\fB\-\-break\fR, \fB\-b\fR
.RS 4
Brute force PIN, CAN or PUK\&. Use together with options
\fB\-p\fR,
\fB\-a\fR, or
\fB\-u\fR\&. (default=off)
.RE
.PP
\fB\-\-translate\fR \fIFILENAME\fR, \fB\-t\fR \fIFILENAME\fR
.RS 4
Specify the file with APDUs of HEX_STRINGs to send through the secure channel\&. (default=`stdin\*(Aq)
.RE
.PP
\fB\-\-tr\-03110v201\fR
.RS 4
Force compliance to BSI TR\-03110 version 2\&.01\&. (default=off)
.RE
.PP
\fB\-\-disable\-all\-checks\fR
.RS 4
Disable all checking of fly\-by\-data\&. (default=off)
.RE
.SH "AUTHORS"
.PP
\fBnpa\-tool\fR
was written by Frank Morgner
\&.