PageRenderTime 24ms CodeModel.GetById 18ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/security/nss/lib/ckfw/builtins/binst.c

http://github.com/zpao/v8monkey
C | 138 lines | 82 code | 12 blank | 44 comment | 0 complexity | b153b0955c9d401ca0781ba31fcc1c6f MD5 | raw file
  1/* ***** BEGIN LICENSE BLOCK *****
  2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3 *
  4 * The contents of this file are subject to the Mozilla Public License Version
  5 * 1.1 (the "License"); you may not use this file except in compliance with
  6 * the License. You may obtain a copy of the License at
  7 * http://www.mozilla.org/MPL/
  8 *
  9 * Software distributed under the License is distributed on an "AS IS" basis,
 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 11 * for the specific language governing rights and limitations under the
 12 * License.
 13 *
 14 * The Original Code is the Netscape security libraries.
 15 *
 16 * The Initial Developer of the Original Code is
 17 * Netscape Communications Corporation.
 18 * Portions created by the Initial Developer are Copyright (C) 1994-2000
 19 * the Initial Developer. All Rights Reserved.
 20 *
 21 * Contributor(s):
 22 *
 23 * Alternatively, the contents of this file may be used under the terms of
 24 * either the GNU General Public License Version 2 or later (the "GPL"), or
 25 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 26 * in which case the provisions of the GPL or the LGPL are applicable instead
 27 * of those above. If you wish to allow use of your version of this file only
 28 * under the terms of either the GPL or the LGPL, and not to allow others to
 29 * use your version of this file under the terms of the MPL, indicate your
 30 * decision by deleting the provisions above and replace them with the notice
 31 * and other provisions required by the GPL or the LGPL. If you do not delete
 32 * the provisions above, a recipient may use your version of this file under
 33 * the terms of any one of the MPL, the GPL or the LGPL.
 34 *
 35 * ***** END LICENSE BLOCK ***** */
 36
 37#ifdef DEBUG
 38static const char CVS_ID[] = "@(#) $RCSfile: binst.c,v $ $Revision: 1.5 $ $Date: 2008/01/23 07:34:49 $";
 39#endif /* DEBUG */
 40
 41#include "builtins.h"
 42
 43/*
 44 * builtins/instance.c
 45 *
 46 * This file implements the NSSCKMDInstance object for the 
 47 * "builtin objects" cryptoki module.
 48 */
 49
 50/*
 51 * NSSCKMDInstance methods
 52 */
 53
 54static CK_ULONG
 55builtins_mdInstance_GetNSlots
 56(
 57  NSSCKMDInstance *mdInstance,
 58  NSSCKFWInstance *fwInstance,
 59  CK_RV *pError
 60)
 61{
 62  return (CK_ULONG)1;
 63}
 64
 65static CK_VERSION
 66builtins_mdInstance_GetCryptokiVersion
 67(
 68  NSSCKMDInstance *mdInstance,
 69  NSSCKFWInstance *fwInstance
 70)
 71{
 72  return nss_builtins_CryptokiVersion;
 73}
 74
 75static NSSUTF8 *
 76builtins_mdInstance_GetManufacturerID
 77(
 78  NSSCKMDInstance *mdInstance,
 79  NSSCKFWInstance *fwInstance,
 80  CK_RV *pError
 81)
 82{
 83  return (NSSUTF8 *)nss_builtins_ManufacturerID;
 84}
 85
 86static NSSUTF8 *
 87builtins_mdInstance_GetLibraryDescription
 88(
 89  NSSCKMDInstance *mdInstance,
 90  NSSCKFWInstance *fwInstance,
 91  CK_RV *pError
 92)
 93{
 94  return (NSSUTF8 *)nss_builtins_LibraryDescription;
 95}
 96
 97static CK_VERSION
 98builtins_mdInstance_GetLibraryVersion
 99(
100  NSSCKMDInstance *mdInstance,
101  NSSCKFWInstance *fwInstance
102)
103{
104  extern const char __nss_builtins_rcsid[];
105  extern const char __nss_builtins_sccsid[];
106  volatile char c; /* force a reference that won't get optimized away */
107
108  c = __nss_builtins_rcsid[0] + __nss_builtins_sccsid[0];
109  return nss_builtins_LibraryVersion;
110}
111
112static CK_RV
113builtins_mdInstance_GetSlots
114(
115  NSSCKMDInstance *mdInstance,
116  NSSCKFWInstance *fwInstance,
117  NSSCKMDSlot *slots[]
118)
119{
120  slots[0] = (NSSCKMDSlot *)&nss_builtins_mdSlot;
121  return CKR_OK;
122}
123
124const NSSCKMDInstance
125nss_builtins_mdInstance = {
126  (void *)NULL, /* etc */
127  NULL, /* Initialize */
128  NULL, /* Finalize */
129  builtins_mdInstance_GetNSlots,
130  builtins_mdInstance_GetCryptokiVersion,
131  builtins_mdInstance_GetManufacturerID,
132  builtins_mdInstance_GetLibraryDescription,
133  builtins_mdInstance_GetLibraryVersion,
134  NULL, /* ModuleHandlesSessionObjects -- defaults to false */
135  builtins_mdInstance_GetSlots,
136  NULL, /* WaitForSlotEvent */
137  (void *)NULL /* null terminator */
138};