index.rst (31738B)
1 .. _mozilla_projects_nss_tools_signtool: 2 3 NSS tools : signtool 4 ==================== 5 6 .. container:: 7 8 | Name 9 | signtool — Digitally sign objects and files. 10 | Synopsis 11 | signtool [-k keyName] `-h <-h>`__ `-H <-H>`__ `-l <-l>`__ `-L <-L>`__ `-M <-M>`__ 12 `-v <-v>`__ `-w <-w>`__ 13 | `-G nickname <-G_nickname>`__ `-s size <--keysize>`__ `-b basename <-b_basename>`__ [[-c 14 Compression 15 | Level] ] [[-d cert-dir] ] [[-i installer script] ] [[-m metafile] ] [[-x 16 | name] ] [[-f filename] ] [[-t|--token tokenname] ] [[-e extension] ] [[-o] 17 | ] [[-z] ] [[-X] ] [[--outfile] ] [[--verbose value] ] [[--norecurse] ] 18 | [[--leavearc] ] [[-j directory] ] [[-Z jarfile] ] [[-O] ] [[-p password] ] 19 | [directory-tree] [archive] 20 | Description 21 | The Signing Tool, signtool, creates digital signatures and uses a Java 22 | Archive (JAR) file to associate the signatures with files in a directory. 23 | Electronic software distribution over any network involves potential 24 | security problems. To help address some of these problems, you can 25 | associate digital signatures with the files in a JAR archive. Digital 26 | signatures allow SSL-enabled clients to perform two important operations: 27 | \* Confirm the identity of the individual, company, or other entity whose 28 | digital signature is associated with the files 29 | \* Check whether the files have been tampered with since being signed 30 | If you have a signing certificate, you can use Netscape Signing Tool to 31 | digitally sign files and package them as a JAR file. An object-signing 32 | certificate is a special kind of certificate that allows you to associate 33 | your digital signature with one or more files. 34 | An individual file can potentially be signed with multiple digital 35 | signatures. For example, a commercial software developer might sign the 36 | files that constitute a software product to prove that the files are 37 | indeed from a particular company. A network administrator manager might 38 | sign the same files with an additional digital signature based on a 39 | company-generated certificate to indicate that the product is approved for 40 | use within the company. 41 | The significance of a digital signature is comparable to the significance 42 | of a handwritten signature. Once you have signed a file, it is difficult 43 | to claim later that you didn't sign it. In some situations, a digital 44 | signature may be considered as legally binding as a handwritten signature. 45 | Therefore, you should take great care to ensure that you can stand behind 46 | any file you sign and distribute. 47 | For example, if you are a software developer, you should test your code to 48 | make sure it is virus-free before signing it. Similarly, if you are a 49 | network administrator, you should make sure, before signing any code, that 50 | it comes from a reliable source and will run correctly with the software 51 | installed on the machines to which you are distributing it. 52 | Before you can use Netscape Signing Tool to sign files, you must have an 53 | object-signing certificate, which is a special certificate whose 54 | associated private key is used to create digital signatures. For testing 55 | purposes only, you can create an object-signing certificate with Netscape 56 | Signing Tool 1.3. When testing is finished and you are ready to 57 | disitribute your software, you should obtain an object-signing certificate 58 | from one of two kinds of sources: 59 | \* An independent certificate authority (CA) that authenticates your 60 | identity and charges you a fee. You typically get a certificate from an 61 | independent CA if you want to sign software that will be distributed over 62 | the Internet. 63 | \* CA server software running on your corporate intranet or extranet. 64 | Netscape Certificate Management System provides a complete management 65 | solution for creating, deploying, and managing certificates, including CAs 66 | that issue object-signing certificates. 67 | You must also have a certificate for the CA that issues your signing 68 | certificate before you can sign files. If the certificate authority's 69 | certificate isn't already installed in your copy of Communicator, you 70 | typically install it by clicking the appropriate link on the certificate 71 | authority's web site, for example on the page from which you initiated 72 | enrollment for your signing certificate. This is the case for some test 73 | certificates, as well as certificates issued by Netscape Certificate 74 | Management System: you must download the CA certificate in addition to 75 | obtaining your own signing certificate. CA certificates for several 76 | certificate authorities are preinstalled in the Communicator certificate 77 | database. 78 | When you receive an object-signing certificate for your own use, it is 79 | automatically installed in your copy of the Communicator client software. 80 | Communicator supports the public-key cryptography standard known as PKCS 81 | #12, which governs key portability. You can, for example, move an 82 | object-signing certificate and its associated private key from one 83 | computer to another on a credit-card-sized device called a smart card. 84 | Options 85 | -b basename 86 | Specifies the base filename for the .rsa and .sf files in the 87 | META-INF directory to conform with the JAR format. For example, -b 88 | signatures causes the files to be named signatures.rsa and 89 | signatures.sf. The default is signtool. 90 | -c# 91 | Specifies the compression level for the -J or -Z option. The 92 | symbol # represents a number from 0 to 9, where 0 means no 93 | compression and 9 means maximum compression. The higher the level 94 | of compression, the smaller the output but the longer the 95 | operation takes. If the -c# option is not used with either the -J 96 | or the -Z option, the default compression value used by both the 97 | -J and -Z options is 6. 98 | -d certdir 99 | Specifies your certificate database directory; that is, the 100 | directory in which you placed your key3.db and cert7.db files. To 101 | specify the current directory, use "-d." (including the period). 102 | The Unix version of signtool assumes ~/.netscape unless told 103 | otherwise. The NT version of signtool always requires the use of 104 | the -d option to specify where the database files are located. 105 | -e extension 106 | Tells signtool to sign only files with the given extension; for 107 | example, use -e".class" to sign only Java class files. Note that 108 | with Netscape Signing Tool version 1.1 and later this option can 109 | appear multiple times on one command line, making it possible to 110 | specify multiple file types or classes to include. 111 | -f commandfile 112 | Specifies a text file containing Netscape Signing Tool options and 113 | arguments in keyword=value format. All options and arguments can 114 | be expressed through this file. For more information about the 115 | syntax used with this file, see "Tips and Techniques". 116 | -i scriptname 117 | Specifies the name of an installer script for SmartUpdate. This 118 | script installs files from the JAR archive in the local system 119 | after SmartUpdate has validated the digital signature. For more 120 | details, see the description of -m that follows. The -i option 121 | provides a straightforward way to provide this information if you 122 | don't need to specify any metadata other than an installer script. 123 | -j directory 124 | Specifies a special JavaScript directory. This option causes the 125 | specified directory to be signed and tags its entries as inline 126 | JavaScript. This special type of entry does not have to appear in 127 | the JAR file itself. Instead, it is located in the HTML page 128 | containing the inline scripts. When you use signtool -v, these 129 | entries are displayed with the string NOT PRESENT. 130 | -k key ... directory 131 | Specifies the nickname (key) of the certificate you want to sign 132 | with and signs the files in the specified directory. The directory 133 | to sign is always specified as the last command-line argument. 134 | Thus, it is possible to write signtool -k MyCert -d . signdir You 135 | may have trouble if the nickname contains a single quotation mark. 136 | To avoid problems, escape the quotation mark using the escape 137 | conventions for your platform. It's also possible to use the -k 138 | option without signing any files or specifying a directory. For 139 | example, you can use it with the -l option to get detailed 140 | information about a particular signing certificate. 141 | -G nickname 142 | Generates a new private-public key pair and corresponding 143 | object-signing certificate with the given nickname. The newly 144 | generated keys and certificate are installed into the key and 145 | certificate databases in the directory specified by the -d option. 146 | With the NT version of Netscape Signing Tool, you must use the -d 147 | option with the -G option. With the Unix version of Netscape 148 | Signing Tool, omitting the -d option causes the tool to install 149 | the keys and certificate in the Communicator key and certificate 150 | databases. If you are installing the keys and certificate in the 151 | Communicator databases, you must exit Communicator before using 152 | this option; otherwise, you risk corrupting the databases. In all 153 | cases, the certificate is also output to a file named x509.cacert, 154 | which has the MIME-type application/x-x509-ca-cert. Unlike 155 | certificates normally used to sign finished code to be distributed 156 | over a network, a test certificate created with -G is not signed 157 | by a recognized certificate authority. Instead, it is self-signed. 158 | In addition, a single test signing certificate functions as both 159 | an object-signing certificate and a CA. When you are using it to 160 | sign objects, it behaves like an object-signing certificate. When 161 | it is imported into browser software such as Communicator, it 162 | behaves like an object-signing CA and cannot be used to sign 163 | objects. The -G option is available in Netscape Signing Tool 1.0 164 | and later versions only. By default, it produces only RSA 165 | certificates with 1024-byte keys in the internal token. However, 166 | you can use the -s option specify the required key size and the -t 167 | option to specify the token. For more information about the use of 168 | the -G option, see "Generating Test Object-Signing 169 | Certificates""Generating Test Object-Signing Certificates" on page 170 | 1241. 171 | -l 172 | Lists signing certificates, including issuing CAs. If any of your 173 | certificates are expired or invalid, the list will so specify. 174 | This option can be used with the -k option to list detailed 175 | information about a particular signing certificate. The -l option 176 | is available in Netscape Signing Tool 1.0 and later versions only. 177 | -J 178 | Signs a directory of HTML files containing JavaScript and creates 179 | as many archive files as are specified in the HTML tags. Even if 180 | signtool creates more than one archive file, you need to supply 181 | the key database password only once. The -J option is available 182 | only in Netscape Signing Tool 1.0 and later versions. The -J 183 | option cannot be used at the same time as the -Z option. If the 184 | -c# option is not used with the -J option, the default compression 185 | value is 6. Note that versions 1.1 and later of Netscape Signing 186 | Tool correctly recognizes the CODEBASE attribute, allows paths to 187 | be expressed for the CLASS and SRC attributes instead of filenames 188 | only, processes LINK tags and parses HTML correctly, and offers 189 | clearer error messages. 190 | -L 191 | Lists the certificates in your database. An asterisk appears to 192 | the left of the nickname for any certificate that can be used to 193 | sign objects with signtool. 194 | --leavearc 195 | Retains the temporary .arc (archive) directories that the -J 196 | option creates. These directories are automatically erased by 197 | default. Retaining the temporary directories can be an aid to 198 | debugging. 199 | -m metafile 200 | Specifies the name of a metadata control file. Metadata is signed 201 | information attached either to the JAR archive itself or to files 202 | within the archive. This metadata can be any ASCII string, but is 203 | used mainly for specifying an installer script. The metadata file 204 | contains one entry per line, each with three fields: field #1: 205 | file specification, or + if you want to specify global metadata 206 | (that is, metadata about the JAR archive itself or all entries in 207 | the archive) field #2: the name of the data you are specifying; 208 | for example: Install-Script field #3: data corresponding to the 209 | name in field #2 For example, the -i option uses the equivalent of 210 | this line: + Install-Script: script.js This example associates a 211 | MIME type with a file: movie.qt MIME-Type: video/quicktime For 212 | information about the way installer script information appears in 213 | the manifest file for a JAR archive, see The JAR Format on 214 | Netscape DevEdge. 215 | -M 216 | Lists the PKCS #11 modules available to signtool, including smart 217 | cards. The -M option is available in Netscape Signing Tool 1.0 and 218 | later versions only. For information on using Netscape Signing 219 | Tool with smart cards, see "Using Netscape Signing Tool with Smart 220 | Cards". For information on using the -M option to verify 221 | FIPS-140-1 validated mode, see "Netscape Signing Tool and 222 | FIPS-140-1". 223 | --norecurse 224 | Blocks recursion into subdirectories when signing a directory's 225 | contents or when parsing HTML. 226 | -o 227 | Optimizes the archive for size. Use this only if you are signing 228 | very large archives containing hundreds of files. This option 229 | makes the manifest files (required by the JAR format) considerably 230 | smaller, but they contain slightly less information. 231 | --outfile outputfile 232 | Specifies a file to receive redirected output from Netscape 233 | Signing Tool. 234 | -p password 235 | Specifies a password for the private-key database. Note that the 236 | password entered on the command line is displayed as plain text. 237 | -s keysize 238 | Specifies the size of the key for generated certificate. Use the 239 | -M option to find out what tokens are available. The -s option can 240 | be used with the -G option only. 241 | -t token 242 | Specifies which available token should generate the key and 243 | receive the certificate. Use the -M option to find out what tokens 244 | are available. The -t option can be used with the -G option only. 245 | -v archive 246 | Displays the contents of an archive and verifies the cryptographic 247 | integrity of the digital signatures it contains and the files with 248 | which they are associated. This includes checking that the 249 | certificate for the issuer of the object-signing certificate is 250 | listed in the certificate database, that the CA's digital 251 | signature on the object-signing certificate is valid, that the 252 | relevant certificates have not expired, and so on. 253 | --verbosity value 254 | Sets the quantity of information Netscape Signing Tool generates 255 | in operation. A value of 0 (zero) is the default and gives full 256 | information. A value of -1 suppresses most messages, but not error 257 | messages. 258 | -w archive 259 | Displays the names of signers of any files in the archive. 260 | -x directory 261 | Excludes the specified directory from signing. Note that with 262 | Netscape Signing Tool version 1.1 and later this option can appear 263 | multiple times on one command line, making it possible to specify 264 | several particular directories to exclude. 265 | -z 266 | Tells signtool not to store the signing time in the digital 267 | signature. This option is useful if you want the expiration date 268 | of the signature checked against the current date and time rather 269 | than the time the files were signed. 270 | -Z jarfile 271 | Creates a JAR file with the specified name. You must specify this 272 | option if you want signtool to create the JAR file; it does not do 273 | so automatically. If you don't specify -Z, you must use an 274 | external ZIP tool to create the JAR file. The -Z option cannot be 275 | used at the same time as the -J option. If the -c# option is not 276 | used with the -Z option, the default compression value is 6. 277 | The Command File Format 278 | Entries in a Netscape Signing Tool command file have this general format: 279 | keyword=value Everything before the = sign on a single line is a keyword, 280 | and everything from the = sign to the end of line is a value. The value 281 | may include = signs; only the first = sign on a line is interpreted. Blank 282 | lines are ignored, but white space on a line with keywords and values is 283 | assumed to be part of the keyword (if it comes before the equal sign) or 284 | part of the value (if it comes after the first equal sign). Keywords are 285 | case insensitive, values are generally case sensitive. Since the = sign 286 | and newline delimit the value, it should not be quoted. 287 | Subsection 288 | basename 289 | Same as -b option. 290 | compression 291 | Same as -c option. 292 | certdir 293 | Same as -d option. 294 | extension 295 | Same as -e option. 296 | generate 297 | Same as -G option. 298 | installscript 299 | Same as -i option. 300 | javascriptdir 301 | Same as -j option. 302 | htmldir 303 | Same as -J option. 304 | certname 305 | Nickname of certificate, as with -k and -l -k options. 306 | signdir 307 | The directory to be signed, as with -k option. 308 | list 309 | Same as -l option. Value is ignored, but = sign must be present. 310 | listall 311 | Same as -L option. Value is ignored, but = sign must be present. 312 | metafile 313 | Same as -m option. 314 | modules 315 | Same as -M option. Value is ignored, but = sign must be present. 316 | optimize 317 | Same as -o option. Value is ignored, but = sign must be present. 318 | password 319 | Same as -p option. 320 | keysize 321 | Same as -s option. 322 | token 323 | Same as -t option. 324 | verify 325 | Same as -v option. 326 | who 327 | Same as -w option. 328 | exclude 329 | Same as -x option. 330 | notime 331 | Same as -z option. value is ignored, but = sign must be present. 332 | jarfile 333 | Same as -Z option. 334 | outfile 335 | Name of a file to which output and error messages will be 336 | redirected. This option has no command-line equivalent. 337 | Extended Examples 338 | The following example will do this and that 339 | Listing Available Signing Certificates 340 | You use the -L option to list the nicknames for all available certificates 341 | and check which ones are signing certificates. 342 | signtool -L 343 | using certificate directory: /u/jsmith/.netscape 344 | S Certificates 345 | - ------------ 346 | BBN Certificate Services CA Root 1 347 | IBM World Registry CA 348 | VeriSign Class 1 CA - Individual Subscriber - VeriSign, Inc. 349 | GTE CyberTrust Root CA 350 | Uptime Group Plc. Class 4 CA 351 | \* Verisign Object Signing Cert 352 | Integrion CA 353 | GTE CyberTrust Secure Server CA 354 | AT&T Directory Services 355 | \* test object signing cert 356 | Uptime Group Plc. Class 1 CA 357 | VeriSign Class 1 Primary CA 358 | - ------------ 359 | Certificates that can be used to sign objects have \*'s to their left. 360 | Two signing certificates are displayed: Verisign Object Signing Cert and 361 | test object signing cert. 362 | You use the -l option to get a list of signing certificates only, 363 | including the signing CA for each. 364 | signtool -l 365 | using certificate directory: /u/jsmith/.netscape 366 | Object signing certificates 367 | --------------------------------------- 368 | Verisign Object Signing Cert 369 | Issued by: VeriSign, Inc. - Verisign, Inc. 370 | Expires: Tue May 19, 1998 371 | test object signing cert 372 | Issued by: test object signing cert (Signtool 1.0 Testing 373 | Certificate (960187691)) 374 | Expires: Sun May 17, 1998 375 | --------------------------------------- 376 | For a list including CAs, use the -L option. 377 | Signing a File 378 | 1. Create an empty directory. 379 | mkdir signdir 380 | 2. Put some file into it. 381 | echo boo > signdir/test.f 382 | 3. Specify the name of your object-signing certificate and sign the 383 | directory. 384 | signtool -k MySignCert -Z testjar.jar signdir 385 | using key "MySignCert" 386 | using certificate directory: /u/jsmith/.netscape 387 | Generating signdir/META-INF/manifest.mf file.. 388 | --> test.f 389 | adding signdir/test.f to testjar.jar 390 | Generating signtool.sf file.. 391 | Enter Password or Pin for "Communicator Certificate DB": 392 | adding signdir/META-INF/manifest.mf to testjar.jar 393 | adding signdir/META-INF/signtool.sf to testjar.jar 394 | adding signdir/META-INF/signtool.rsa to testjar.jar 395 | tree "signdir" signed successfully 396 | 4. Test the archive you just created. 397 | signtool -v testjar.jar 398 | using certificate directory: /u/jsmith/.netscape 399 | archive "testjar.jar" has passed crypto verification. 400 | status path 401 | ------------ ------------------- 402 | verified test.f 403 | Using Netscape Signing Tool with a ZIP Utility 404 | To use Netscape Signing Tool with a ZIP utility, you must have the utility 405 | in your path environment variable. You should use the zip.exe utility 406 | rather than pkzip.exe, which cannot handle long filenames. You can use a 407 | ZIP utility instead of the -Z option to package a signed archive into a 408 | JAR file after you have signed it: 409 | cd signdir 410 | zip -r ../myjar.jar \* 411 | adding: META-INF/ (stored 0%) 412 | adding: META-INF/manifest.mf (deflated 15%) 413 | adding: META-INF/signtool.sf (deflated 28%) 414 | adding: META-INF/signtool.rsa (stored 0%) 415 | adding: text.txt (stored 0%) 416 | Generating the Keys and Certificate 417 | The signtool option -G generates a new public-private key pair and 418 | certificate. It takes the nickname of the new certificate as an argument. 419 | The newly generated keys and certificate are installed into the key and 420 | certificate databases in the directory specified by the -d option. With 421 | the NT version of Netscape Signing Tool, you must use the -d option with 422 | the -G option. With the Unix version of Netscape Signing Tool, omitting 423 | the -d option causes the tool to install the keys and certificate in the 424 | Communicator key and certificate databases. In all cases, the certificate 425 | is also output to a file named x509.cacert, which has the MIME-type 426 | application/x-x509-ca-cert. 427 | Certificates contain standard information about the entity they identify, 428 | such as the common name and organization name. Netscape Signing Tool 429 | prompts you for this information when you run the command with the -G 430 | option. However, all of the requested fields are optional for test 431 | certificates. If you do not enter a common name, the tool provides a 432 | default name. In the following example, the user input is in boldface: 433 | signtool -G MyTestCert 434 | using certificate directory: /u/someuser/.netscape 435 | Enter certificate information. All fields are optional. Acceptable 436 | characters are numbers, letters, spaces, and apostrophes. 437 | certificate common name: Test Object Signing Certificate 438 | organization: Netscape Communications Corp. 439 | organization unit: Server Products Division 440 | state or province: California 441 | country (must be exactly 2 characters): US 442 | username: someuser 443 | email address: someuser@netscape.com 444 | Enter Password or Pin for "Communicator Certificate DB": [Password will not echo] 445 | generated public/private key pair 446 | certificate request generated 447 | certificate has been signed 448 | certificate "MyTestCert" added to database 449 | Exported certificate to x509.raw and x509.cacert. 450 | The certificate information is read from standard input. Therefore, the 451 | information can be read from a file using the redirection operator (<) in 452 | some operating systems. To create a file for this purpose, enter each of 453 | the seven input fields, in order, on a separate line. Make sure there is a 454 | newline character at the end of the last line. Then run signtool with 455 | standard input redirected from your file as follows: 456 | signtool -G MyTestCert inputfile 457 | The prompts show up on the screen, but the responses will be automatically 458 | read from the file. The password will still be read from the console 459 | unless you use the -p option to give the password on the command line. 460 | Using the -M Option to List Smart Cards 461 | You can use the -M option to list the PKCS #11 modules, including smart 462 | cards, that are available to signtool: 463 | signtool -d "c:\netscape\users\jsmith" -M 464 | using certificate directory: c:\netscape\users\username 465 | Listing of PKCS11 modules 466 | ----------------------------------------------- 467 | 1. Netscape Internal PKCS #11 Module 468 | (this module is internally loaded) 469 | slots: 2 slots attached 470 | status: loaded 471 | slot: Communicator Internal Cryptographic Services Version 4.0 472 | token: Communicator Generic Crypto Svcs 473 | slot: Communicator User Private Key and Certificate Services 474 | token: Communicator Certificate DB 475 | 2. CryptOS 476 | (this is an external module) 477 | DLL name: core32 478 | slots: 1 slots attached 479 | status: loaded 480 | slot: Litronic 210 481 | token: 482 | ----------------------------------------------- 483 | Using Netscape Signing Tool and a Smart Card to Sign Files 484 | The signtool command normally takes an argument of the -k option to 485 | specify a signing certificate. To sign with a smart card, you supply only 486 | the fully qualified name of the certificate. 487 | To see fully qualified certificate names when you run Communicator, click 488 | the Security button in Navigator, then click Yours under Certificates in 489 | the left frame. Fully qualified names are of the format smart 490 | card:certificate, for example "MyCard:My Signing Cert". You use this name 491 | with the -k argument as follows: 492 | signtool -k "MyCard:My Signing Cert" directory 493 | Verifying FIPS Mode 494 | Use the -M option to verify that you are using the FIPS-140-1 module. 495 | signtool -d "c:\netscape\users\jsmith" -M 496 | using certificate directory: c:\netscape\users\jsmith 497 | Listing of PKCS11 modules 498 | ----------------------------------------------- 499 | 1. Netscape Internal PKCS #11 Module 500 | (this module is internally loaded) 501 | slots: 2 slots attached 502 | status: loaded 503 | slot: Communicator Internal Cryptographic Services Version 4.0 504 | token: Communicator Generic Crypto Svcs 505 | slot: Communicator User Private Key and Certificate Services 506 | token: Communicator Certificate DB 507 | ----------------------------------------------- 508 | This Unix example shows that Netscape Signing Tool is using a FIPS-140-1 509 | module: 510 | signtool -d "c:\netscape\users\jsmith" -M 511 | using certificate directory: c:\netscape\users\jsmith 512 | Enter Password or Pin for "Communicator Certificate DB": [password will not echo] 513 | Listing of PKCS11 modules 514 | ----------------------------------------------- 515 | 1. Netscape Internal FIPS PKCS #11 Module 516 | (this module is internally loaded) 517 | slots: 1 slots attached 518 | status: loaded 519 | slot: Netscape Internal FIPS-140-1 Cryptographic Services 520 | token: Communicator Certificate DB 521 | ----------------------------------------------- 522 | See Also 523 | signver (1) 524 | The NSS wiki has information on the new database design and how to 525 | configure applications to use it. 526 | o https://wiki.mozilla.org/NSS_Shared_DB_Howto 527 | o https://wiki.mozilla.org/NSS_Shared_DB 528 | Additional Resources 529 | For information about NSS and other tools related to NSS (like JSS), check 530 | out the NSS project wiki at 531 | 532 [1]\ `http://www.mozilla.org/projects/security/pki/nss/ <https://www.mozilla.org/projects/security/pki/nss/>`__. 533 The NSS site relates 534 | directly to NSS code changes and releases. 535 | Mailing lists: https://lists.mozilla.org/listinfo/dev-tech-crypto 536 | IRC: Freenode at #dogtag-pki 537 | Authors 538 | The NSS tools were written and maintained by developers with Netscape, Red 539 | Hat, and Sun. 540 | Authors: Elio Maldonado <emaldona@redhat.com>, Deon Lackey 541 | <dlackey@redhat.com>. 542 | Copyright 543 | (c) 2010, Red Hat, Inc. Licensed under the GNU Public License version 2. 544 | References 545 | Visible links 546 | 1. 547 `http://www.mozilla.org/projects/security/pki/nss/ <https://www.mozilla.org/projects/security/pki/nss/>`__