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

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. /*
  34.  *  JARNAV.C
  35.  *
  36.  *  JAR stuff needed for client only.
  37.  *
  38.  */
  39. #include "jar.h"
  40. #include "jarint.h"
  41. /* from proto.h */
  42. #ifdef MOZILLA_CLIENT_OLD
  43. extern MWContext *XP_FindSomeContext(void);
  44. #endif
  45. /* sigh */
  46. extern MWContext *FE_GetInitContext(void);
  47. /* To return an MWContext for Java */
  48. static MWContext *(*jar_fn_FindSomeContext) (void) = NULL;
  49. /* To fabricate an MWContext for FE_GetPassword */
  50. static MWContext *(*jar_fn_GetInitContext) (void) = NULL;
  51. /*
  52.  *  J A R _ i n i t
  53.  *
  54.  *  Initialize the JAR functions.
  55.  * 
  56.  */
  57. void JAR_init (void)
  58.   {
  59. #ifdef MOZILLA_CLIENT_OLD
  60.   JAR_init_callbacks (XP_GetString, XP_FindSomeContext, FE_GetInitContext);
  61. #else
  62.   JAR_init_callbacks (XP_GetString, NULL, NULL);
  63. #endif
  64.   }
  65. /*
  66.  *  J A R _ s e t _ c o n t e x t
  67.  *
  68.  *  Set the jar window context for use by PKCS11, since
  69.  *  it may be needed to prompt the user for a password.
  70.  *
  71.  */
  72. int JAR_set_context (JAR *jar, MWContext *mw)
  73.   {
  74.   if (mw)
  75.     {
  76.     jar->mw = mw;
  77.     }
  78.   else
  79.     {
  80.     /* jar->mw = XP_FindSomeContext(); */
  81.     jar->mw = NULL;
  82.     /*
  83.      * We can't find a context because we're in startup state and none
  84.      * exist yet. go get an FE_InitContext that only works at initialization
  85.      * time.
  86.      */
  87.     /* Turn on the mac when we get the FE_ function */
  88.     if (jar->mw == NULL)
  89.       {
  90.       jar->mw = jar_fn_GetInitContext();
  91.       }
  92.    }
  93.   return 0;
  94.   }