1MODUTIL(1) NSS Security Tools MODUTIL(1)
2
3
4
6 modutil - Manage PKCS #11 module information within the security module
7 database.
8
10 modutil [options] [[arguments]]
11
13 This documentation is still work in progress. Please contribute to the
14 initial review in Mozilla NSS bug 836477[1]
15
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
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
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
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
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
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
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
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
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
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)