1MODUTIL(1)                    NSS Security Tools                    MODUTIL(1)
2
3
4

NAME

6       modutil - Manage PKCS #11 module information within the security module
7       database.
8

SYNOPSIS

10       modutil [options] [[arguments]]
11

STATUS

13       This documentation is still work in progress. Please contribute to the
14       initial review in Mozilla NSS bug 836477[1]
15

DESCRIPTION

17       The Security Module Database Tool, modutil, is a command-line utility
18       for managing PKCS #11 module information both within secmod.db files
19       and within hardware tokens.  modutil can add and delete PKCS #11
20       modules, change passwords on security databases, set defaults, list
21       module contents, enable or disable slots, enable or disable FIPS 140-2
22       compliance, and assign default providers for cryptographic operations.
23       This tool can also create certificate, key, and module security
24       database files.
25
26       The tasks associated with security module database management are part
27       of a process that typically also involves managing key databases and
28       certificate databases.
29

OPTIONS

31       Running modutil always requires one (and only one) option to specify
32       the type of module operation. Each option may take arguments, anywhere
33       from none to multiple arguments.
34
35       Options
36
37       -add modulename
38           Add the named PKCS #11 module to the database. Use this option with
39           the -libfile, -ciphers, and -mechanisms arguments.
40
41       -changepw tokenname
42           Change the password on the named token. If the token has not been
43           initialized, this option initializes the password. Use this option
44           with the -pwfile and -newpwfile arguments. A password is equivalent
45           to a personal identification number (PIN).
46
47       -chkfips
48           Verify whether the module is in the given FIPS mode.  true means to
49           verify that the module is in FIPS mode, while false means to verify
50           that the module is not in FIPS mode.
51
52       -create
53           Create new certificate, key, and module databases. Use the -dbdir
54           directory argument to specify a directory. If any of these
55           databases already exist in a specified directory, modutil returns
56           an error message.
57
58       -default modulename
59           Specify the security mechanisms for which the named module will be
60           a default provider. The security mechanisms are specified with the
61           -mechanisms argument.
62
63       -delete modulename
64           Delete the named module. The default NSS PKCS #11 module cannot be
65           deleted.
66
67       -disable modulename
68           Disable all slots on the named module. Use the -slot argument to
69           disable a specific slot.
70
71           The internal NSS PKCS #11 module cannot be disabled.
72
73       -enable modulename
74           Enable all slots on the named module. Use the -slot argument to
75           enable a specific slot.
76
77       -fips [true | false]
78           Enable (true) or disable (false) FIPS 140-2 compliance for the
79           default NSS module.
80
81       -force
82           Disable modutil's interactive prompts so it can be run from a
83           script. Use this option only after manually testing each planned
84           operation to check for warnings and to ensure that bypassing the
85           prompts will cause no security lapses or loss of database
86           integrity.
87
88       -jar JAR-file
89           Add a new PKCS #11 module to the database using the named JAR file.
90           Use this command with the -installdir and -tempdir arguments. The
91           JAR file uses the NSS PKCS #11 JAR format to identify all the files
92           to be installed, the module's name, the mechanism flags, and the
93           cipher flags, as well as any files to be installed on the target
94           machine, including the PKCS #11 module library file and other files
95           such as documentation. This is covered in the JAR installation file
96           section in the man page, which details the special script needed to
97           perform an installation through a server or with modutil.
98
99       -list [modulename]
100           Display basic information about the contents of the secmod.db file.
101           Specifying a modulename displays detailed information about a
102           particular module and its slots and tokens.
103
104       -rawadd
105           Add the module spec string to the secmod.db database.
106
107       -rawlist
108           Display the module specs for a specified module or for all loadable
109           modules.
110
111       -undefault modulename
112           Specify the security mechanisms for which the named module will not
113           be a default provider. The security mechanisms are specified with
114           the -mechanisms argument.
115
116       Arguments
117
118       MODULE
119           Give the security module to access.
120
121       MODULESPEC
122           Give the security module spec to load into the security database.
123
124       -ciphers cipher-enable-list
125           Enable specific ciphers in a module that is being added to the
126           database. The cipher-enable-list is a colon-delimited list of
127           cipher names. Enclose this list in quotation marks if it contains
128           spaces.
129
130       -dbdir [sql:]directory
131           Specify the database directory in which to access or create
132           security module database files.
133
134           modutil supports two types of databases: the legacy security
135           databases (cert8.db, key3.db, and secmod.db) and new SQLite
136           databases (cert9.db, key4.db, and pkcs11.txt). If the prefix sql:
137           is not used, then the tool assumes that the given databases are in
138           the old format.
139
140       --dbprefix prefix
141           Specify the prefix used on the database files, such as my_ for
142           my_cert8.db. This option is provided as a special case. Changing
143           the names of the certificate and key databases is not recommended.
144
145       -installdir root-installation-directory
146           Specify the root installation directory relative to which files
147           will be installed by the -jar option. This directory should be one
148           below which it is appropriate to store dynamic library files, such
149           as a server's root directory.
150
151       -libfile library-file
152           Specify a path to a library file containing the implementation of
153           the PKCS #11 interface module that is being added to the database.
154
155       -mechanisms mechanism-list
156           Specify the security mechanisms for which a particular module will
157           be flagged as a default provider. The mechanism-list is a
158           colon-delimited list of mechanism names. Enclose this list in
159           quotation marks if it contains spaces.
160
161           The module becomes a default provider for the listed mechanisms
162           when those mechanisms are enabled. If more than one module claims
163           to be a particular mechanism's default provider, that mechanism's
164           default provider is undefined.
165
166           modutil supports several mechanisms: RSA, DSA, RC2, RC4, RC5, AES,
167           DES, DH, SHA1, SHA256, SHA512, SSL, TLS, MD5, MD2, RANDOM (for
168           random number generation), and FRIENDLY (meaning certificates are
169           publicly readable).
170
171       -newpwfile new-password-file
172           Specify a text file containing a token's new or replacement
173           password so that a password can be entered automatically with the
174           -changepw option.
175
176       -nocertdb
177           Do not open the certificate or key databases. This has several
178           effects:
179
180           ·   With the -create command, only a module security file is
181               created; certificate and key databases are not created.
182
183           ·   With the -jar command, signatures on the JAR file are not
184               checked.
185
186           ·   With the -changepw command, the password on the NSS internal
187               module cannot be set or changed, since this password is stored
188               in the key database.
189
190       -pwfile old-password-file
191           Specify a text file containing a token's existing password so that
192           a password can be entered automatically when the -changepw option
193           is used to change passwords.
194
195       -secmod secmodname
196           Give the name of the security module database (like secmod.db) to
197           load.
198
199       -slot slotname
200           Specify a particular slot to be enabled or disabled with the
201           -enable or -disable options.
202
203       -string CONFIG_STRING
204           Pass a configuration string for the module being added to the
205           database.
206
207       -tempdir temporary-directory
208           Give a directory location where temporary files are created during
209           the installation by the -jar option. If no temporary directory is
210           specified, the current directory is used.
211

USAGE AND EXAMPLES

213       Creating Database Files
214
215       Before any operations can be performed, there must be a set of security
216       databases available.  modutil can be used to create these files. The
217       only required argument is the database that where the databases will be
218       located.
219
220           modutil -create -dbdir [sql:]directory
221
222       Adding a Cryptographic Module
223
224       Adding a PKCS #11 module means submitting a supporting library file,
225       enabling its ciphers, and setting default provider status for various
226       security mechanisms. This can be done by supplying all of the
227       information through modutil directly or by running a JAR file and
228       install script. For the most basic case, simply upload the library:
229
230           modutil -add modulename -libfile library-file [-ciphers cipher-enable-list] [-mechanisms mechanism-list]
231
232       For example:
233
234           modutil -dbdir sql:/home/my/sharednssdb -add "Example PKCS #11 Module" -libfile "/tmp/crypto.so" -mechanisms RSA:DSA:RC2:RANDOM
235
236           Using database directory ...
237           Module "Example PKCS #11 Module" added to database.
238
239       Installing a Cryptographic Module from a JAR File
240
241       PKCS #11 modules can also be loaded using a JAR file, which contains
242       all of the required libraries and an installation script that describes
243       how to install the module. The JAR install script is described in more
244       detail in the section called “JAR INSTALLATION FILE FORMAT”.
245
246       The JAR installation script defines the setup information for each
247       platform that the module can be installed on. For example:
248
249           Platforms {
250              Linux:5.4.08:x86 {
251                 ModuleName { "Example PKCS #11 Module" }
252                 ModuleFile { crypto.so }
253                 DefaultMechanismFlags{0x0000}
254                 CipherEnableFlags{0x0000}
255                 Files {
256                    crypto.so {
257                       Path{ /tmp/crypto.so }
258                    }
259                    setup.sh {
260                       Executable
261                       Path{ /tmp/setup.sh }
262                    }
263                 }
264              }
265              Linux:6.0.0:x86 {
266                 EquivalentPlatform { Linux:5.4.08:x86 }
267              }
268           }
269
270       Both the install script and the required libraries must be bundled in a
271       JAR file, which is specified with the -jar argument.
272
273           modutil -dbdir sql:/home/mt"jar-install-filey/sharednssdb -jar install.jar -installdir sql:/home/my/sharednssdb
274
275           This installation JAR file was signed by:
276           ----------------------------------------------
277
278           **SUBJECT NAME**
279
280           C=US, ST=California, L=Mountain View, CN=Cryptorific Inc., OU=Digital ID
281           Class 3 - Netscape Object Signing, OU="www.verisign.com/repository/CPS
282           Incorp. by Ref.,LIAB.LTD(c)9 6", OU=www.verisign.com/CPS Incorp.by Ref
283           . LIABILITY LTD.(c)97 VeriSign, OU=VeriSign Object Signing CA - Class 3
284           Organization, OU="VeriSign, Inc.", O=VeriSign Trust Network **ISSUER
285           NAME**, OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97
286           VeriSign, OU=VeriSign Object Signing CA - Class 3 Organization,
287           OU="VeriSign, Inc.", O=VeriSign Trust Network
288           ----------------------------------------------
289
290           Do you wish to continue this installation? (y/n) y
291           Using installer script "installer_script"
292           Successfully parsed installation script
293           Current platform is Linux:5.4.08:x86
294           Using installation parameters for platform Linux:5.4.08:x86
295           Installed file crypto.so to /tmp/crypto.so
296           Installed file setup.sh to ./pk11inst.dir/setup.sh
297           Executing "./pk11inst.dir/setup.sh"...
298           "./pk11inst.dir/setup.sh" executed successfully
299           Installed module "Example PKCS #11 Module" into module database
300
301           Installation completed successfully
302
303       Adding Module Spec
304
305       Each module has information stored in the security database about its
306       configuration and parameters. These can be added or edited using the
307       -rawadd command. For the current settings or to see the format of the
308       module spec in the database, use the -rawlist option.
309
310           modutil -rawadd modulespec
311
312       Deleting a Module
313
314       A specific PKCS #11 module can be deleted from the secmod.db database:
315
316           modutil -delete modulename -dbdir [sql:]directory
317
318       Displaying Module Information
319
320       The secmod.db database contains information about the PKCS #11 modules
321       that are available to an application or server to use. The list of all
322       modules, information about specific modules, and database configuration
323       specs for modules can all be viewed.
324
325       To simply get a list of modules in the database, use the -list command.
326
327           modutil -list [modulename] -dbdir [sql:]directory
328
329       Listing the modules shows the module name, their status, and other
330       associated security databases for certificates and keys. For example:
331
332           modutil -list -dbdir sql:/home/my/sharednssdb
333
334           Listing of PKCS #11 Modules
335           -----------------------------------------------------------
336             1. NSS Internal PKCS #11 Module
337                    slots: 2 slots attached
338                   status: loaded
339
340                    slot: NSS Internal Cryptographic Services
341                   token: NSS Generic Crypto Services
342
343                    slot: NSS User Private Key and Certificate Services
344                   token: NSS Certificate DB
345           -----------------------------------------------------------
346
347       Passing a specific module name with the -list returns details
348       information about the module itself, like supported cipher mechanisms,
349       version numbers, serial numbers, and other information about the module
350       and the token it is loaded on. For example:
351
352            modutil -list "NSS Internal PKCS #11 Module" -dbdir sql:/home/my/sharednssdb
353
354           -----------------------------------------------------------
355           Name: NSS Internal PKCS #11 Module
356           Library file: **Internal ONLY module**
357           Manufacturer: Mozilla Foundation
358           Description: NSS Internal Crypto Services
359           PKCS #11 Version 2.20
360           Library Version: 3.11
361           Cipher Enable Flags: None
362           Default Mechanism Flags: RSA:RC2:RC4:DES:DH:SHA1:MD5:MD2:SSL:TLS:AES
363
364             Slot: NSS Internal Cryptographic Services
365             Slot Mechanism Flags: RSA:RC2:RC4:DES:DH:SHA1:MD5:MD2:SSL:TLS:AES
366             Manufacturer: Mozilla Foundation
367             Type: Software
368             Version Number: 3.11
369             Firmware Version: 0.0
370             Status: Enabled
371             Token Name: NSS Generic Crypto Services
372             Token Manufacturer: Mozilla Foundation
373             Token Model: NSS 3
374             Token Serial Number: 0000000000000000
375             Token Version: 4.0
376             Token Firmware Version: 0.0
377             Access: Write Protected
378             Login Type: Public (no login required)
379             User Pin: NOT Initialized
380
381             Slot: NSS User Private Key and Certificate Services
382             Slot Mechanism Flags: None
383             Manufacturer: Mozilla Foundation
384             Type: Software
385             Version Number: 3.11
386             Firmware Version: 0.0
387             Status: Enabled
388             Token Name: NSS Certificate DB
389             Token Manufacturer: Mozilla Foundation
390             Token Model: NSS 3
391             Token Serial Number: 0000000000000000
392             Token Version: 8.3
393             Token Firmware Version: 0.0
394             Access: NOT Write Protected
395             Login Type: Login required
396             User Pin: Initialized
397
398       A related command, -rawlist returns information about the database
399       configuration for the modules. (This information can be edited by
400       loading new specs using the -rawadd command.)
401
402            modutil -rawlist -dbdir sql:/home/my/sharednssdb
403            name="NSS Internal PKCS #11 Module" parameters="configdir=. certPrefix= keyPrefix= secmod=secmod.db flags=readOnly " NSS="trustOrder=75 cipherOrder=100 slotParams={0x00000001=[slotFlags=RSA,RC4,RC2,DES,DH,SHA1,MD5,MD2,SSL,TLS,AES,RANDOM askpw=any timeout=30 ] }  Flags=internal,critical"
404
405       Setting a Default Provider for Security Mechanisms
406
407       Multiple security modules may provide support for the same security
408       mechanisms. It is possible to set a specific security module as the
409       default provider for a specific security mechanism (or, conversely, to
410       prohibit a provider from supplying those mechanisms).
411
412           modutil -default modulename -mechanisms mechanism-list
413
414       To set a module as the default provider for mechanisms, use the
415       -default command with a colon-separated list of mechanisms. The
416       available mechanisms depend on the module; NSS supplies almost all
417       common mechanisms. For example:
418
419           modutil -default "NSS Internal PKCS #11 Module" -dbdir -mechanisms RSA:DSA:RC2
420
421           Using database directory c:\databases...
422
423           Successfully changed defaults.
424
425       Clearing the default provider has the same format:
426
427           modutil -undefault "NSS Internal PKCS #11 Module" -dbdir -mechanisms MD2:MD5
428
429       Enabling and Disabling Modules and Slots
430
431       Modules, and specific slots on modules, can be selectively enabled or
432       disabled using modutil. Both commands have the same format:
433
434           modutil -enable|-disable modulename [-slot slotname]
435
436       For example:
437
438           modutil -enable "NSS Internal PKCS #11 Module" -slot "NSS Internal Cryptographic Services                            " -dbdir .
439
440           Slot "NSS Internal Cryptographic Services                            " enabled.
441
442       Be sure that the appropriate amount of trailing whitespace is after the
443       slot name. Some slot names have a significant amount of whitespace that
444       must be included, or the operation will fail.
445
446       Enabling and Verifying FIPS Compliance
447
448       The NSS modules can have FIPS 140-2 compliance enabled or disabled
449       using modutil with the -fips option. For example:
450
451           modutil -fips true -dbdir sql:/home/my/sharednssdb/
452
453           FIPS mode enabled.
454
455       To verify that status of FIPS mode, run the -chkfips command with
456       either a true or false flag (it doesn't matter which). The tool returns
457       the current FIPS setting.
458
459           modutil -chkfips false -dbdir sql:/home/my/sharednssdb/
460
461           FIPS mode enabled.
462
463       Changing the Password on a Token
464
465       Initializing or changing a token's password:
466
467           modutil -changepw tokenname [-pwfile old-password-file] [-newpwfile new-password-file]
468
469           modutil -dbdir sql:/home/my/sharednssdb -changepw "NSS Certificate DB"
470
471           Enter old password:
472           Incorrect password, try again...
473           Enter old password:
474           Enter new password:
475           Re-enter new password:
476           Token "Communicator Certificate DB" password changed successfully.
477

JAR INSTALLATION FILE FORMAT

479       When a JAR file is run by a server, by modutil, or by any program that
480       does not interpret JavaScript, a special information file must be
481       included to install the libraries. There are several things to keep in
482       mind with this file:
483
484       ·   It must be declared in the JAR archive's manifest file.
485
486       ·   The script can have any name.
487
488       ·   The metainfo tag for this is Pkcs11_install_script. To declare
489           meta-information in the manifest file, put it in a file that is
490           passed to signtool.
491
492       Sample Script
493
494       For example, the PKCS #11 installer script could be in the file
495       pk11install. If so, the metainfo file for signtool includes a line such
496       as this:
497
498           + Pkcs11_install_script: pk11install
499
500       The script must define the platform and version number, the module name
501       and file, and any optional information like supported ciphers and
502       mechanisms. Multiple platforms can be defined in a single install file.
503
504           ForwardCompatible { IRIX:6.2:mips SUNOS:5.5.1:sparc }
505           Platforms {
506              WINNT::x86 {
507                 ModuleName { "Example Module" }
508                 ModuleFile { win32/fort32.dll }
509                 DefaultMechanismFlags{0x0001}
510                 DefaultCipherFlags{0x0001}
511                 Files {
512                    win32/setup.exe {
513                       Executable
514                       RelativePath { %temp%/setup.exe }
515                    }
516                    win32/setup.hlp {
517                       RelativePath { %temp%/setup.hlp }
518                    }
519                    win32/setup.cab {
520                       RelativePath { %temp%/setup.cab }
521                    }
522                 }
523              }
524              WIN95::x86 {
525                 EquivalentPlatform {WINNT::x86}
526              }
527              SUNOS:5.5.1:sparc {
528                 ModuleName { "Example UNIX Module" }
529                 ModuleFile { unix/fort.so }
530                 DefaultMechanismFlags{0x0001}
531                 CipherEnableFlags{0x0001}
532                 Files {
533                    unix/fort.so {
534                       RelativePath{%root%/lib/fort.so}
535                       AbsolutePath{/usr/local/netscape/lib/fort.so}
536                       FilePermissions{555}
537                    }
538                    xplat/instr.html {
539                       RelativePath{%root%/docs/inst.html}
540                       AbsolutePath{/usr/local/netscape/docs/inst.html}
541                       FilePermissions{555}
542                    }
543                 }
544              }
545              IRIX:6.2:mips {
546                 EquivalentPlatform { SUNOS:5.5.1:sparc }
547              }
548           }
549
550       Script Grammar
551
552       The script is basic Java, allowing lists, key-value pairs, strings, and
553       combinations of all of them.
554
555           --> valuelist
556
557           valuelist --> value valuelist
558                          <null>
559
560           value ---> key_value_pair
561                       string
562
563           key_value_pair --> key { valuelist }
564
565           key --> string
566
567           string --> simple_string
568                       "complex_string"
569
570           simple_string --> [^ \t\n\""{""}"]+
571
572           complex_string --> ([^\"\\\r\n]|(\\\")|(\\\\))+
573
574       Quotes and backslashes must be escaped with a backslash. A complex
575       string must not include newlines or carriage returns.Outside of complex
576       strings, all white space (for example, spaces, tabs, and carriage
577       returns) is considered equal and is used only to delimit tokens.
578
579       Keys
580
581       The Java install file uses keys to define the platform and module
582       information.
583
584       ForwardCompatible gives a list of platforms that are forward
585       compatible. If the current platform cannot be found in the list of
586       supported platforms, then the ForwardCompatible list is checked for any
587       platforms that have the same OS and architecture in an earlier version.
588       If one is found, its attributes are used for the current platform.
589
590       Platforms (required) Gives a list of platforms. Each entry in the list
591       is itself a key-value pair: the key is the name of the platform and the
592       value list contains various attributes of the platform. The platform
593       string is in the format system name:OS release:architecture. The
594       installer obtains these values from NSPR. OS release is an empty string
595       on non-Unix operating systems. NSPR supports these platforms:
596
597       ·   AIX (rs6000)
598
599       ·   BSDI (x86)
600
601       ·   FREEBSD (x86)
602
603       ·   HPUX (hppa1.1)
604
605       ·   IRIX (mips)
606
607       ·   LINUX (ppc, alpha, x86)
608
609       ·   MacOS (PowerPC)
610
611       ·   NCR (x86)
612
613       ·   NEC (mips)
614
615       ·   OS2 (x86)
616
617       ·   OSF (alpha)
618
619       ·   ReliantUNIX (mips)
620
621       ·   SCO (x86)
622
623       ·   SOLARIS (sparc)
624
625       ·   SONY (mips)
626
627       ·   SUNOS (sparc)
628
629       ·   UnixWare (x86)
630
631       ·   WIN16 (x86)
632
633       ·   WIN95 (x86)
634
635       ·   WINNT (x86)
636
637       For example:
638
639           IRIX:6.2:mips
640           SUNOS:5.5.1:sparc
641           Linux:2.0.32:x86
642           WIN95::x86
643
644       The module information is defined independently for each platform in
645       the ModuleName, ModuleFile, and Files attributes. These attributes must
646       be given unless an EquivalentPlatform attribute is specified.
647
648       Per-Platform Keys
649
650       Per-platform keys have meaning only within the value list of an entry
651       in the Platforms list.
652
653       ModuleName (required) gives the common name for the module. This name
654       is used to reference the module by servers and by the modutil tool.
655
656       ModuleFile (required) names the PKCS #11 module file for this platform.
657       The name is given as the relative path of the file within the JAR
658       archive.
659
660       Files (required) lists the files that need to be installed for this
661       module. Each entry in the file list is a key-value pair. The key is the
662       path of the file in the JAR archive, and the value list contains
663       attributes of the file. At least RelativePath or AbsolutePath must be
664       specified for each file.
665
666       DefaultMechanismFlags specifies mechanisms for which this module is the
667       default provider; this is equivalent to the -mechanism option with the
668       -add command. This key-value pair is a bitstring specified in
669       hexadecimal (0x) format. It is constructed as a bitwise OR. If the
670       DefaultMechanismFlags entry is omitted, the value defaults to 0x0.
671
672           RSA:                   0x00000001
673           DSA:                   0x00000002
674           RC2:                   0x00000004
675           RC4:                   0x00000008
676           DES:                   0x00000010
677           DH:                    0x00000020
678           FORTEZZA:              0x00000040
679           RC5:                   0x00000080
680           SHA1:                  0x00000100
681           MD5:                   0x00000200
682           MD2:                   0x00000400
683           RANDOM:                0x08000000
684           FRIENDLY:              0x10000000
685           OWN_PW_DEFAULTS:       0x20000000
686           DISABLE:               0x40000000
687
688       CipherEnableFlags specifies ciphers that this module provides that NSS
689       does not provide (so that the module enables those ciphers for NSS).
690       This is equivalent to the -cipher argument with the -add command. This
691       key is a bitstring specified in hexadecimal (0x) format. It is
692       constructed as a bitwise OR. If the CipherEnableFlags entry is omitted,
693       the value defaults to 0x0.
694
695       EquivalentPlatform specifies that the attributes of the named platform
696       should also be used for the current platform. This makes it easier when
697       more than one platform uses the same settings.
698
699       Per-File Keys
700
701       Some keys have meaning only within the value list of an entry in a
702       Files list.
703
704       Each file requires a path key the identifies where the file is. Either
705       RelativePath or AbsolutePath must be specified. If both are specified,
706       the relative path is tried first, and the absolute path is used only if
707       no relative root directory is provided by the installer program.
708
709       RelativePath specifies the destination directory of the file, relative
710       to some directory decided at install time. Two variables can be used in
711       the relative path: %root% and %temp%.  %root% is replaced at run time
712       with the directory relative to which files should be installed; for
713       example, it may be the server's root directory. The %temp% directory is
714       created at the beginning of the installation and destroyed at the end.
715       The purpose of %temp% is to hold executable files (such as setup
716       programs) or files that are used by these programs. Files destined for
717       the temporary directory are guaranteed to be in place before any
718       executable file is run; they are not deleted until all executable files
719       have finished.
720
721       AbsolutePath specifies the destination directory of the file as an
722       absolute path.
723
724       Executable specifies that the file is to be executed during the course
725       of the installation. Typically, this string is used for a setup program
726       provided by a module vendor, such as a self-extracting setup
727       executable. More than one file can be specified as executable, in which
728       case the files are run in the order in which they are specified in the
729       script file.
730
731       FilePermissions sets permissions on any referenced files in a string of
732       octal digits, according to the standard Unix format. This string is a
733       bitwise OR.
734
735           user read:                0400
736           user write:               0200
737           user execute:             0100
738           group read:               0040
739           group write:              0020
740           group execute:            0010
741           other read:               0004
742           other write:              0002
743           other execute:            0001
744
745       Some platforms may not understand these permissions. They are applied
746       only insofar as they make sense for the current platform. If this
747       attribute is omitted, a default of 777 is assumed.
748

NSS DATABASE TYPES

750       NSS originally used BerkeleyDB databases to store security information.
751       The last versions of these legacy databases are:
752
753       ·   cert8.db for certificates
754
755       ·   key3.db for keys
756
757       ·   secmod.db for PKCS #11 module information
758
759       BerkeleyDB has performance limitations, though, which prevent it from
760       being easily used by multiple applications simultaneously. NSS has some
761       flexibility that allows applications to use their own, independent
762       database engine while keeping a shared database and working around the
763       access issues. Still, NSS requires more flexibility to provide a truly
764       shared security database.
765
766       In 2009, NSS introduced a new set of databases that are SQLite
767       databases rather than BerkleyDB. These new databases provide more
768       accessibility and performance:
769
770       ·   cert9.db for certificates
771
772       ·   key4.db for keys
773
774       ·   pkcs11.txt, which is listing of all of the PKCS #11 modules
775           contained in a new subdirectory in the security databases directory
776
777       Because the SQLite databases are designed to be shared, these are the
778       shared database type. The shared database type is preferred; the legacy
779       format is included for backward compatibility.
780
781       By default, the tools (certutil, pk12util, modutil) assume that the
782       given security databases follow the more common legacy type. Using the
783       SQLite databases must be manually specified by using the sql: prefix
784       with the given security directory. For example:
785
786           modutil -create -dbdir sql:/home/my/sharednssdb
787
788       To set the shared database type as the default type for the tools, set
789       the NSS_DEFAULT_DB_TYPE environment variable to sql:
790
791           export NSS_DEFAULT_DB_TYPE="sql"
792
793       This line can be added to the ~/.bashrc file to make the change
794       permanent for the user.
795
796       Most applications do not use the shared database by default, but they
797       can be configured to use them. For example, this how-to article covers
798       how to configure Firefox and Thunderbird to use the new shared NSS
799       databases:
800
801       ·   https://wiki.mozilla.org/NSS_Shared_DB_Howto
802
803       For an engineering draft on the changes in the shared NSS databases,
804       see the NSS project wiki:
805
806       ·   https://wiki.mozilla.org/NSS_Shared_DB
807

SEE ALSO

809       certutil (1)
810
811       pk12util (1)
812
813       signtool (1)
814
815       The NSS wiki has information on the new database design and how to
816       configure applications to use it.
817
818       ·   https://wiki.mozilla.org/NSS_Shared_DB_Howto
819
820       ·   https://wiki.mozilla.org/NSS_Shared_DB
821

ADDITIONAL RESOURCES

823       For information about NSS and other tools related to NSS (like JSS),
824       check out the NSS project wiki at
825       http://www.mozilla.org/projects/security/pki/nss/. The NSS site relates
826       directly to NSS code changes and releases.
827
828       Mailing lists: https://lists.mozilla.org/listinfo/dev-tech-crypto
829
830       IRC: Freenode at #dogtag-pki
831

AUTHORS

833       The NSS tools were written and maintained by developers with Netscape,
834       Red Hat, Sun, Oracle, Mozilla, and Google.
835
836       Authors: Elio Maldonado <emaldona@redhat.com>, Deon Lackey
837       <dlackey@redhat.com>.
838

LICENSE

840       Licensed under the Mozilla Public License, v. 2.0. If a copy of the MPL
841       was not distributed with this file, You can obtain one at
842       http://mozilla.org/MPL/2.0/.
843

NOTES

845        1. Mozilla NSS bug 836477
846           https://bugzilla.mozilla.org/show_bug.cgi?id=836477
847
848
849
850nss-tools                         5 June 2014                       MODUTIL(1)
Impressum