install.js
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:6k
- //
- // The contents of this file are subject to the Mozilla Public
- // License Version 1.1 (the "License"); you may not use this file
- // except in compliance with the License. You may obtain a copy of
- // the License at http://www.mozilla.org/MPL/
- //
- // Software distributed under the License is distributed on an "AS
- // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- // implied. See the License for the specific language governing
- // rights and limitations under the License.
- //
- // The Original Code is the Netscape security libraries.
- //
- // The Initial Developer of the Original Code is Netscape
- // Communications Corporation. Portions created by Netscape are
- // Copyright (C) 1994-2000 Netscape Communications Corporation. All
- // Rights Reserved.
- //
- // Contributor(s):
- //
- // Alternatively, the contents of this file may be used under the
- // terms of the GNU General Public License Version 2 or later (the
- // "GPL"), in which case the provisions of the GPL are applicable
- // instead of those above. If you wish to allow use of your
- // version of this file only under the terms of the GPL and not to
- // allow others to use your version of this file under the MPL,
- // indicate your decision by deleting the provisions above and
- // replace them with the notice and other provisions required by
- // the GPL. If you do not delete the provisions above, a recipient
- // may use your version of this file under either the MPL or the
- // GPL.
- //
- // Crypto Mechanism Flags
- PKCS11_MECH_RSA_FLAG = 0x1<<0;
- PKCS11_MECH_DSA_FLAG = 0x1<<1;
- PKCS11_MECH_RC2_FLAG = 0x1<<2;
- PKCS11_MECH_RC4_FLAG = 0x1<<3;
- PKCS11_MECH_DES_FLAG = 0x1<<4;
- PKCS11_MECH_DH_FLAG = 0x1<<5; //Diffie-Hellman
- PKCS11_MECH_SKIPJACK_FLAG = 0x1<<6; //SKIPJACK algorithm as in Fortezza cards
- PKCS11_MECH_RC5_FLAG = 0x1<<7;
- PKCS11_MECH_SHA1_FLAG = 0x1<<8;
- PKCS11_MECH_MD5_FLAG = 0x1<<9;
- PKCS11_MECH_MD2_FLAG = 0x1<<10;
- PKCS11_MECH_RANDOM_FLAG = 0x1<<27; //Random number generator
- PKCS11_PUB_READABLE_CERT_FLAG = 0x1<<28; //Stored certs can be read off the token w/o logging in
- PKCS11_DISABLE_FLAG = 0x1<<30; //tell Navigator to disable this slot by default
- // Important:
- // 0x1<<11, 0x1<<12, ... , 0x1<<26, 0x1<<29, and 0x1<<31 are reserved
- // for internal use in Navigator.
- // Therefore, these bits should always be set to 0; otherwise,
- // Navigator might exhibit unpredictable behavior.
- // These flags indicate which mechanisms should be turned on by
- pkcs11MechanismFlags = PKCS11_MECH_RANDOM_FLAG;
-
- // Ciphers that support SSL or S/MIME
- PKCS11_CIPHER_FORTEZZA_FLAG = 0x1<<0;
- // Important:
- // 0x1<<1, 0x1<<2, ... , 0x1<<31 are reserved
- // for internal use in Navigator.
- // Therefore, these bits should ALWAYS be set to 0; otherwise,
- // Navigator might exhibit unpredictable behavior.
- // These flags indicate which SSL ciphers are supported
- pkcs11CipherFlags = PKCS11_CIPHER_FORTEZZA_FLAG;
-
- // Return values of pkcs11.addmodule() & pkcs11.delmodule()
- // success codes
- JS_OK_ADD_MODULE = 3 // Successfully added a module
- JS_OK_DEL_EXTERNAL_MODULE = 2 // Successfully deleted ext. module
- JS_OK_DEL_INTERNAL_MODULE = 1 // Successfully deleted int. module
- // failure codes
- JS_ERR_OTHER = -1 // Other errors than the followings
- JS_ERR_USER_CANCEL_ACTION = -2 // User abort an action
- JS_ERR_INCORRECT_NUM_OF_ARGUMENTS= -3 // Calling a method w/ incorrect # of arguments
- JS_ERR_DEL_MODULE = -4 // Error deleting a module
- JS_ERR_ADD_MODULE = -5 // Error adding a module
- JS_ERR_BAD_MODULE_NAME = -6 // The module name is invalid
- JS_ERR_BAD_DLL_NAME = -7 // The DLL name is bad
- JS_ERR_BAD_MECHANISM_FLAGS = -8 // The mechanism flags are invalid
- JS_ERR_BAD_CIPHER_ENABLE_FLAGS = -9 // The SSL, S/MIME cipher flags are invalid
-
- if (confirm("This script will install and configure a security module, do you want to continue?")) {
- // Step 1. Create a version object and a software update object
- vi = new netscape.softupdate.VersionInfo(1, 6, 0, 0);
- su = new netscape.softupdate.SoftwareUpdate(this, "Fortezza Card PKCS#11 Module");
- // "Fortezza ... Module" is the logical name of the bundle
- // Step 2. Start the install process
- bAbort = false;
- err = su.StartInstall("NSfortezza", vi, netscape.softupdate.SoftwareUpdate.FULL_INSTALL);
- // nsfortezza is the component folder (logical)
- bAbort = bAbort || (err !=0);
- if (err == 0) {
- // Step 3. Find out the physical location of the Program dir
- Folder = su.GetFolder("Program");
- // Step 4. Install the files. Unpack them and list where they go
- err = su.AddSubcomponent("FortezzaCardDLL", //component name (logical)
- vi, // version info
- "DUMMY_DLL", // source file in JAR (physical)
- Folder, // target folder (physical)
- "DUMMY_DLL", // target path & filename (physical)
- this.force); // forces update
- bAbort = bAbort || (err !=0);
- }
- // Step 5. Unless there was a problem, move files to final location
- // and update the Client Version Registry
- if (bAbort) {
- window.alert("Installation Aborted");
- su.AbortInstall();
- } else {
- err = su.FinalizeInstall();
- window.alert("Files have been installed.nContinue to setup the newly isntalled module...");
- // Add Module
- compFolder = su.GetComponentFolder("NSfortezza/FortezzaCardDLL") + "/DUMMY_DLL";
- result = pkcs11.addmodule("Netscape FORTEZZA Module", compFolder, pkcs11MechanismFlags, pkcs11CipherFlags);
- if ( result < 0) {
- window.alert("New module setup failed. Error code: " + result);
- } else {
- window.alert("New module setup completed.");
- }
- }
- }