install.js
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:6k
源码类别:

CA认证

开发平台:

WINDOWS

  1. //
  2. // The contents of this file are subject to the Mozilla Public
  3. // License Version 1.1 (the "License"); you may not use this file
  4. // except in compliance with the License. You may obtain a copy of
  5. // the License at http://www.mozilla.org/MPL/
  6. // 
  7. // Software distributed under the License is distributed on an "AS
  8. // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9. // implied. See the License for the specific language governing
  10. // rights and limitations under the License.
  11. // 
  12. // The Original Code is the Netscape security libraries.
  13. // 
  14. // The Initial Developer of the Original Code is Netscape
  15. // Communications Corporation.  Portions created by Netscape are 
  16. // Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  17. // Rights Reserved.
  18. // 
  19. // Contributor(s):
  20. // 
  21. // Alternatively, the contents of this file may be used under the
  22. // terms of the GNU General Public License Version 2 or later (the
  23. // "GPL"), in which case the provisions of the GPL are applicable 
  24. // instead of those above.  If you wish to allow use of your 
  25. // version of this file only under the terms of the GPL and not to
  26. // allow others to use your version of this file under the MPL,
  27. // indicate your decision by deleting the provisions above and
  28. // replace them with the notice and other provisions required by
  29. // the GPL.  If you do not delete the provisions above, a recipient
  30. // may use your version of this file under either the MPL or the
  31. // GPL.
  32. //
  33. // Crypto Mechanism Flags 
  34. PKCS11_MECH_RSA_FLAG           =  0x1<<0; 
  35. PKCS11_MECH_DSA_FLAG           =  0x1<<1; 
  36. PKCS11_MECH_RC2_FLAG           =  0x1<<2; 
  37. PKCS11_MECH_RC4_FLAG           =  0x1<<3; 
  38. PKCS11_MECH_DES_FLAG           =  0x1<<4; 
  39. PKCS11_MECH_DH_FLAG            =  0x1<<5; //Diffie-Hellman 
  40. PKCS11_MECH_SKIPJACK_FLAG      =  0x1<<6; //SKIPJACK algorithm as in Fortezza cards 
  41. PKCS11_MECH_RC5_FLAG           =  0x1<<7; 
  42. PKCS11_MECH_SHA1_FLAG          =  0x1<<8; 
  43. PKCS11_MECH_MD5_FLAG           =  0x1<<9; 
  44. PKCS11_MECH_MD2_FLAG           =  0x1<<10; 
  45. PKCS11_MECH_RANDOM_FLAG        =  0x1<<27; //Random number generator 
  46. PKCS11_PUB_READABLE_CERT_FLAG  =  0x1<<28; //Stored certs can be read off the token w/o logging in 
  47. PKCS11_DISABLE_FLAG            =  0x1<<30; //tell Navigator to disable this slot by default 
  48. // Important: 
  49. // 0x1<<11, 0x1<<12, ... , 0x1<<26, 0x1<<29, and 0x1<<31 are reserved 
  50. // for internal use in Navigator. 
  51. // Therefore, these bits should always be set to 0; otherwise, 
  52. // Navigator might exhibit unpredictable behavior. 
  53. // These flags indicate which mechanisms should be turned on by 
  54. pkcs11MechanismFlags = PKCS11_MECH_RANDOM_FLAG; 
  55.   
  56. // Ciphers that support SSL or S/MIME 
  57. PKCS11_CIPHER_FORTEZZA_FLAG    = 0x1<<0; 
  58. // Important: 
  59. // 0x1<<1, 0x1<<2, ... , 0x1<<31 are reserved 
  60. // for internal use in Navigator. 
  61. // Therefore, these bits should ALWAYS be set to 0; otherwise, 
  62. // Navigator might exhibit unpredictable behavior. 
  63. // These flags indicate which SSL ciphers are supported 
  64. pkcs11CipherFlags = PKCS11_CIPHER_FORTEZZA_FLAG; 
  65.   
  66. // Return values of pkcs11.addmodule() & pkcs11.delmodule() 
  67. // success codes 
  68. JS_OK_ADD_MODULE                 = 3 // Successfully added a module 
  69. JS_OK_DEL_EXTERNAL_MODULE        = 2 // Successfully deleted ext. module 
  70. JS_OK_DEL_INTERNAL_MODULE        = 1 // Successfully deleted int. module 
  71. // failure codes 
  72. JS_ERR_OTHER                     = -1 // Other errors than the followings 
  73. JS_ERR_USER_CANCEL_ACTION        = -2 // User abort an action 
  74. JS_ERR_INCORRECT_NUM_OF_ARGUMENTS= -3 // Calling a method w/ incorrect # of arguments 
  75. JS_ERR_DEL_MODULE                = -4 // Error deleting a module 
  76. JS_ERR_ADD_MODULE                = -5 // Error adding a module 
  77. JS_ERR_BAD_MODULE_NAME           = -6 // The module name is invalid 
  78. JS_ERR_BAD_DLL_NAME              = -7 // The DLL name is bad 
  79. JS_ERR_BAD_MECHANISM_FLAGS       = -8 // The mechanism flags are invalid 
  80. JS_ERR_BAD_CIPHER_ENABLE_FLAGS   = -9 // The SSL, S/MIME cipher flags are invalid 
  81.   
  82. if (confirm("This script will install and configure a security module, do you want to continue?")) { 
  83.  // Step 1. Create a version object and a software update object 
  84.  vi = new netscape.softupdate.VersionInfo(1, 6, 0, 0); 
  85.  su = new netscape.softupdate.SoftwareUpdate(this, "Fortezza Card PKCS#11 Module"); 
  86.                  // "Fortezza ... Module" is the logical name of the bundle 
  87.  // Step 2. Start the install process 
  88.  bAbort = false; 
  89.  err = su.StartInstall("NSfortezza", vi, netscape.softupdate.SoftwareUpdate.FULL_INSTALL); 
  90.                             // nsfortezza is the component folder (logical) 
  91.         bAbort = bAbort || (err !=0); 
  92.  if (err == 0) { 
  93.     // Step 3. Find out the physical location of the Program dir 
  94.     Folder = su.GetFolder("Program"); 
  95.     // Step 4. Install the files. Unpack them and list where they go 
  96.     err = su.AddSubcomponent("FortezzaCardDLL", //component name (logical) 
  97.                                     vi, // version info 
  98.                                     "DUMMY_DLL", // source file in JAR (physical) 
  99.                                     Folder, // target folder (physical) 
  100.                                     "DUMMY_DLL", // target path & filename (physical) 
  101.                                     this.force); // forces update 
  102.     bAbort = bAbort || (err !=0); 
  103.  } 
  104.  // Step 5. Unless there was a problem, move files to final location 
  105.  // and update the Client Version Registry 
  106.  if (bAbort) { 
  107.     window.alert("Installation Aborted"); 
  108.     su.AbortInstall(); 
  109.  } else { 
  110.     err = su.FinalizeInstall(); 
  111.     window.alert("Files have been installed.nContinue to setup the newly isntalled module..."); 
  112.     // Add Module 
  113.     compFolder = su.GetComponentFolder("NSfortezza/FortezzaCardDLL") + "/DUMMY_DLL"; 
  114.     result = pkcs11.addmodule("Netscape FORTEZZA Module", compFolder, pkcs11MechanismFlags, pkcs11CipherFlags); 
  115.            if ( result < 0) { 
  116.                window.alert("New module setup failed.  Error code: " + result); 
  117.            } else { 
  118.                window.alert("New module setup completed."); 
  119.            } 
  120.  }