'\" t .\" Title: pkcs15-profile .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 06/02/2026 .\" Manual: OpenSC File Formats .\" Source: opensc .\" Language: English .\" .TH "PKCS15\-PROFILE" "5" "06/02/2026" "opensc" "OpenSC File Formats" .\" ----------------------------------------------------------------- .\" * 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" pkcs15-profile \- format of profile for \fBpkcs15\-init\fR .SH "DESCRIPTION" .PP The \fBpkcs15\-init\fR utility for PKCS #15 smart card personalization is controlled via profiles\&. When starting, it will read two such profiles at the moment, a generic application profile, and a card specific profile\&. The generic profile must be specified on the command line, while the card\-specific file is selected based on the type of card detected\&. .PP The generic application profile defines general information about the card layout, such as the path of the application DF, various PKCS #15 files within that directory, and the access conditions on these files\&. It also defines general information about PIN, key and certificate objects\&. Currently, there is only one such generic profile, pkcs15\&.profile\&. .PP The card specific profile contains additional information required during card initialization, such as location of PIN files, key references etc\&. Profiles currently reside in /usr/share/opensc .PP Basic PKCS#15 terminology: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} MF (Master File) is root of the filesystem hierarchy .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} DF(PKCS#15) is directory containing the PKCS#15 files and directories .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} EF(ODF) (Object Directory File) is elementary file containing pointers to other elementary files (PrKDFs, PuKDFs, SKDFs, CDFs, DODFs, AODFs) .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} PrKDF (Private Key Directory File) is elementary file containing pointers to the private keys and additional information about the private keys .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} PubKDF (Public Key Directory File) is elementary file containing pointers to the public keys and additional information about the public keys .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} CDF (Certificate Directory File) is elementary file containing pointers to the certificates and additional information about the certificates .RE .sp .RS 4 .ie n \{\ \h'-04' 7.\h'+01'\c .\} .el \{\ .sp -1 .IP " 7." 4.2 .\} EF(TokenInfo) is elementary file with generic information about the card .RE .sp .SH "SYNTAX AND SEMANTICS" .PP The block syntax of profile files is in general similar to the configuration file\&. The profile file, is composed of blocks, which, in general, have the following format: .sp .if n \{\ .RS 4 .\} .nf \fIkey\fR [,\ \fIname\fR...] { \fIblock_contents\fR } .fi .if n \{\ .RE .\} .sp \fIblock_contents\fR is one or more \fIblock_item\fRs where a \fIblock_item\fR is one of .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} # \fIcomment string\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIkey\fR[,\ \fIname\fR...] = \fIvalue\fR; .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIblock\fR .RE .PP At the root level, the profile contains several configuration blocks\&. The block keys are as follows: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} cardinfo: Configuration for general information about card\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} pkcs15: Control for some of the general aspects of the PKCS#15 put onto the card\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} option: Profile options to modify the behavior of profile\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PIN: Configuration and limits for particular PIN type\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} filesystem: Specification for filesystem that is to be created on the card\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} macros .RE .sp .SS "Profile file configuration" .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfiguration of Card Information\fR .RS 4 .PP \fBcardinfo { \fR\fB\fIblock_contents\fR\fR\fB } \fR .RS 4 Configuration for general information about card: .PP \fBlabel = \fR\fB\fIname\fR\fR\fB;\fR .RS 4 Card label (Default: OpenSC Card)\&. .RE .PP \fBmanufacturer = \fR\fB\fIname\fR\fR\fB;\fR .RS 4 Card manufacturer (Default: OpenSC Project)\&. .RE .PP \fBmin\-pin\-length = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Minimal length of PIN (Default: 4)\&. .RE .PP \fBmax\-pin\-length = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Maximal length of PIN, should be overridden in the per\-card profile (Default: 8)\&. .RE .PP \fBpin\-encoding = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Encoding type of PIN\&. Known parameters: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} BCD: binary\-coded decimal .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ascii\-numeric: ASCII numerical values .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} utf8 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} half\-nibble\-bcd .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} iso9564\-1 .RE .sp (Default: ascii\-numeric)\&. .RE .PP \fBpin\-pad\-char = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Character used for padding the PIN when needed (Default: 0x00)\&. .RE .PP \fBpin\-domains = \fR\fB\fIbool\fR\fR\fB;\fR .RS 4 Some cards need to keep all their PINs in separate directories\&. The particular keys in that domain will be put below the DF of the specified PIN\&. (Default: no) .RE .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfiguration of PKCS#15\fR .RS 4 .PP \fBpkcs15 { \fR\fB\fIblock_contents\fR\fR\fB } \fR .RS 4 Control for some of the general aspects of the PKCS#15 put onto the card\&. Parameters in this block are: .PP \fBdirect\-certificates = \fR\fB\fIbool\fR\fR\fB;\fR .RS 4 The PKCS#15 system must contain at least one CDF, it contains the certificates directly or references to certificates\&. This options defines whether the certificates should be put directly in the CDF itself or not (Default: no)\&. .RE .PP \fBencode\-df\-length = \fR\fB\fIbool\fR\fR\fB;\fR .RS 4 Save length of DF into ODF file\&. Useful if we store certificates directly in the CDF for better better performance and robustness (Default: no)\&. .RE .PP \fBdo\-last\-update = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Store information about last update in the EF(TokenInfo) (Default: yes)\&. .RE .PP \fBpkcs15\-id\-style = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Method to calculate ID of the crypto objects\&. Known parameters: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} native: \*(AqE\*(Aq + number_of_present_objects_of_the_same_type .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} mozilla: SHA1(modulus) for RSA .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} rfc2459 SHA1(SequenceASN1 of public key components as ASN1 integers) .RE (Default: native) .sp .RE .PP \fBminidriver\-support\-style = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Style of pkcs15\-init support of minidriver\&. Known parameters: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} none .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} gemalto .RE .sp (Default: none) .RE .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfiguration of Profile Option\fR .RS 4 .PP \fBoption \fR\fB\fIname\fR\fR\fB { \fR\fB\fIblock_contents\fR\fR\fB } \fR .PP The name specifies profile options to modify the behavior of profile, it can be .PP .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} default: option specifies default settings and this block with option is always processed, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} onepin: option for using 1 user PIN, creation/deletion/generation is controlled by the user PIN and thus by the user (as a result, only 1 user PIN is possible), .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} small option suitable for cards with small memory\&. .RE .sp .PP The options are used by pkcs15\-init tool by \-\-profile name, \-p name: .PP .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} pkcs15+default: the default (not needed to specify it) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} pkcs15+onepin: for the onepin profile option .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} pkcs15+small for the small profile option .RE .sp .PP The option block can contain following sub\-blocks: .RS 4 .PP \fBmacros { block_contents }\fR .RS 4 Macros are specified in form of name = value; pairs\&. .RE .PP \fBpkcs15 { block_contents }\fR .RS 4 Inner block for configuration of PKCS#15 structure\&. .RE .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfiguration of PINs\fR .RS 4 .PP \fBPIN \fR\fB\fIname\fR\fR\fB { \fR\fB\fIblock_contents\fR\fR\fB } \fR .PP The name specifies PIN type, it can be .PP .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} pin or user\-pin (no need to set file path or reference as it is done dynamically) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} puk or user\-puk .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} sopin or so\-pin .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} sopuk or so\-puk .RE .sp .RS 4 Known parameters are: .PP \fBattempts = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Defines number of attempts for the given PIN (Default: 3)\&. .RE .PP \fBflags = \fR\fB\fIvalue\&.\&.\&.\fR\fR\fB;\fR .RS 4 Flags define properties of the PIN\&. Possible flags: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} case\-sensitive .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} local .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} change\-disabled .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} unblock\-disabled .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} initialized .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} needs\-padding .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} unblockingPin .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} soPin .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} disable\-allowed .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} integrity\-protected .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} confidentiality\-protected .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} exchangeRefData .RE .sp (Default: local,initialized,needs\-padding)\&. .RE .PP \fBauth\-id = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Value used for auth ID (Default: 0)\&. .RE .PP \fBmin\-length = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Minimal length of PIN (Default: value min\-pin\-length set in cardinfo block)\&. .RE .PP \fBmax\-length = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Maximal length of PIN (Default: value max\-pin\-length set in cardinfo block)\&. .RE .PP \fBreference = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Value of reference of the PIN (Default: set in particular card driver)\&. .RE .PP \fBfile = \fR\fB\fIname\fR\fR\fB;\fR .RS 4 File with PIN, obsolete option (Default: None)\&. .RE .PP \fBoffset = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Offset of PIN in PIN file, obsolete option (Default: 0)\&. .RE .PP \fBencoding = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Encoding type of PIN\&. Possible values: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} BCD .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ascii\-numeric .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} utf8 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} half\-nibble\-bcd .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} iso9564\-1 .RE .sp (Default: value pin\-encoding set in cardinfo block)\&. .RE .PP \fBstored\-length = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 (Default: value max\-pin\-length set in cardinfo block)\&. .RE .PP \fBmax\-unlocks = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 (Default: 0)\&. .RE .RE .PP Values in this block can be set by macros\&. That allows to specify the particular values with the usage of option\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfiguration of Filesystem\fR .RS 4 \fBfilesystem { \fR\fB\fIblock_contents\fR\fR\fB } \fR.PP This block contains the specification for filesystem that is to be created on the card\&. The filesystem consists of several nested blocks representing DF and EF files\&. When the DFs or EFs are specified in card specific profile, this is added to the file system info specified in the main profile\&. .PP \fBEF \fR\fB\fIname\fR\fR\fB { \fR\fB\fIblock_contents\fR\fR\fB } \fR .PP This block defines elementary file in PKCS#15 file hierarchy\&. The name can be one of: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-TokenInfo .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-ODF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-UnusedSpace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-PRKDF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-PUKDF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-PUKDF\-TRUSTED .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-SKDF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-CDF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-CDF\-TRUSTED .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-CDF\-USEFUL .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-DODF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-AODF .RE .sp .PP The EF block can contain: .RS 4 .PP \fBtype = \fR\fB\fIEF\fR\fR\fB;\fR .RS 4 Type must match type of file\&. .RE .PP \fBacl = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Value of ACL (Access Control List) (Default: NONE) .RE .PP \fBfile\-id = \fR\fB\fIEF\fR\fR\fB;\fR .RS 4 File ID, relative path\&. .RE .PP \fBstructure = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 File structure is one of: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} TRANSPARENT .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} LINEAR\-FIXED .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} LINEAR\-FIXED\-TLV .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} LINEAR\-VARIABLE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} LINEAR\-VARIABLE\-TLV .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} CYCLIC .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} CYCLIC\-TLV .RE .sp .RE .RE .PP \fBDF \fR\fB\fIname\fR\fR\fB { \fR\fB\fIblock_contents\fR\fR\fB } \fR .PP This block defines directory file in PKCS#15 file hierarchy\&. The name can be one of: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} MF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PKCS15\-AppDF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Special cases for those DFs handled separately by the PKCS15 logic .RE .sp .PP The DF block can contain: .RS 4 .PP \fBtype = \fR\fB\fIDF\fR\fR\fB;\fR .RS 4 Type must match type of file\&. .RE .PP \fBpath = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Specification of path of the directory file\&. .RE .PP \fBfile\-id = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 File ID, relative path\&. .RE .PP \fBaid = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Value of AID, in XX:XX:XX:\&.\&.\&.:XX:XX:XX notation\&. .RE .PP \fBacl = \fR\fB\fIvalue\fR\fR\fB;\fR .RS 4 Type must match type of file\&. .RE .PP \fBsize = \fR\fB\fIint\fR\fR\fB;\fR .RS 4 Size of the file in bytes\&. .RE .PP \fBEF \fR\fB\fIname\fR\fR\fB { block_contents }\fR .RS 4 Block specifying nested elementary file\&. .RE .sp Typically, the root DF is MF\&. .sp It is mandatory that profile file contains DF entry for MF (Master File)\&. Otherwise the profile file is incomplete and cannot be used\&. .RE .PP The DF can contain other DF or MF blocks\&. For examples how the filesystem structure may look like, please refer to pkcs15\&.profile or any other present profile file\&. .RE .SH "SEE ALSO" .PP \fBpkcs15-init\fR(1), \fBpkcs15-crypt\fR(1)