Back to index

lightning-sunbird  0.9+nobinonly
binst.c
Go to the documentation of this file.
00001 /* ***** BEGIN LICENSE BLOCK *****
00002  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00003  *
00004  * The contents of this file are subject to the Mozilla Public License Version
00005  * 1.1 (the "License"); you may not use this file except in compliance with
00006  * the License. You may obtain a copy of the License at
00007  * http://www.mozilla.org/MPL/
00008  *
00009  * Software distributed under the License is distributed on an "AS IS" basis,
00010  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00011  * for the specific language governing rights and limitations under the
00012  * License.
00013  *
00014  * The Original Code is the Netscape security libraries.
00015  *
00016  * The Initial Developer of the Original Code is
00017  * Netscape Communications Corporation.
00018  * Portions created by the Initial Developer are Copyright (C) 1994-2000
00019  * the Initial Developer. All Rights Reserved.
00020  *
00021  * Contributor(s):
00022  *
00023  * Alternatively, the contents of this file may be used under the terms of
00024  * either the GNU General Public License Version 2 or later (the "GPL"), or
00025  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00026  * in which case the provisions of the GPL or the LGPL are applicable instead
00027  * of those above. If you wish to allow use of your version of this file only
00028  * under the terms of either the GPL or the LGPL, and not to allow others to
00029  * use your version of this file under the terms of the MPL, indicate your
00030  * decision by deleting the provisions above and replace them with the notice
00031  * and other provisions required by the GPL or the LGPL. If you do not delete
00032  * the provisions above, a recipient may use your version of this file under
00033  * the terms of any one of the MPL, the GPL or the LGPL.
00034  *
00035  * ***** END LICENSE BLOCK ***** */
00036 
00037 #ifdef DEBUG
00038 static const char CVS_ID[] = "@(#) $RCSfile: binst.c,v $ $Revision: 1.3.28.2 $ $Date: 2008/01/24 21:16:51 $";
00039 #endif /* DEBUG */
00040 
00041 #include "builtins.h"
00042 
00043 /*
00044  * builtins/instance.c
00045  *
00046  * This file implements the NSSCKMDInstance object for the 
00047  * "builtin objects" cryptoki module.
00048  */
00049 
00050 /*
00051  * NSSCKMDInstance methods
00052  */
00053 
00054 static CK_ULONG
00055 builtins_mdInstance_GetNSlots
00056 (
00057   NSSCKMDInstance *mdInstance,
00058   NSSCKFWInstance *fwInstance,
00059   CK_RV *pError
00060 )
00061 {
00062   return (CK_ULONG)1;
00063 }
00064 
00065 static CK_VERSION
00066 builtins_mdInstance_GetCryptokiVersion
00067 (
00068   NSSCKMDInstance *mdInstance,
00069   NSSCKFWInstance *fwInstance
00070 )
00071 {
00072   return nss_builtins_CryptokiVersion;
00073 }
00074 
00075 static NSSUTF8 *
00076 builtins_mdInstance_GetManufacturerID
00077 (
00078   NSSCKMDInstance *mdInstance,
00079   NSSCKFWInstance *fwInstance,
00080   CK_RV *pError
00081 )
00082 {
00083   return (NSSUTF8 *)nss_builtins_ManufacturerID;
00084 }
00085 
00086 static NSSUTF8 *
00087 builtins_mdInstance_GetLibraryDescription
00088 (
00089   NSSCKMDInstance *mdInstance,
00090   NSSCKFWInstance *fwInstance,
00091   CK_RV *pError
00092 )
00093 {
00094   return (NSSUTF8 *)nss_builtins_LibraryDescription;
00095 }
00096 
00097 static CK_VERSION
00098 builtins_mdInstance_GetLibraryVersion
00099 (
00100   NSSCKMDInstance *mdInstance,
00101   NSSCKFWInstance *fwInstance
00102 )
00103 {
00104   extern const char __nss_builtins_rcsid[];
00105   extern const char __nss_builtins_sccsid[];
00106   volatile char c; /* force a reference that won't get optimized away */
00107 
00108   c = __nss_builtins_rcsid[0] + __nss_builtins_sccsid[0];
00109   return nss_builtins_LibraryVersion;
00110 }
00111 
00112 static CK_RV
00113 builtins_mdInstance_GetSlots
00114 (
00115   NSSCKMDInstance *mdInstance,
00116   NSSCKFWInstance *fwInstance,
00117   NSSCKMDSlot *slots[]
00118 )
00119 {
00120   slots[0] = (NSSCKMDSlot *)&nss_builtins_mdSlot;
00121   return CKR_OK;
00122 }
00123 
00124 const NSSCKMDInstance
00125 nss_builtins_mdInstance = {
00126   (void *)NULL, /* etc */
00127   NULL, /* Initialize */
00128   NULL, /* Finalize */
00129   builtins_mdInstance_GetNSlots,
00130   builtins_mdInstance_GetCryptokiVersion,
00131   builtins_mdInstance_GetManufacturerID,
00132   builtins_mdInstance_GetLibraryDescription,
00133   builtins_mdInstance_GetLibraryVersion,
00134   NULL, /* ModuleHandlesSessionObjects -- defaults to false */
00135   builtins_mdInstance_GetSlots,
00136   NULL, /* WaitForSlotEvent */
00137   (void *)NULL /* null terminator */
00138 };