/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * 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 the Initial Developer are Copyright (C) 1994-2000 * the Initial Developer. All Rights Reserved. * Portions created by Red Hat, Inc, are Copyright (C) 2005 * * Contributor(s): * Bob Relyea (rrelyea@redhat.com) * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #ifdef DEBUG static const char CVS_ID[] = "@(#) $RCSfile: csession.c,v $ $Revision: 1.2 $ $Date: 2005/11/15 00:13:58 $"; #endif /* DEBUG */ #include "ckcapi.h" /* * ckcapi/csession.c * * This file implements the NSSCKMDSession object for the * "nss to capi" cryptoki module. */ static NSSCKMDFindObjects * ckcapi_mdSession_FindObjectsInit ( NSSCKMDSession *mdSession, NSSCKFWSession *fwSession, NSSCKMDToken *mdToken, NSSCKFWToken *fwToken, NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_RV *pError ) { return nss_ckcapi_FindObjectsInit(fwSession, pTemplate, ulAttributeCount, pError); } static NSSCKMDObject * ckcapi_mdSession_CreateObject ( NSSCKMDSession *mdSession, NSSCKFWSession *fwSession, NSSCKMDToken *mdToken, NSSCKFWToken *fwToken, NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance, NSSArena *arena, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_RV *pError ) { return nss_ckcapi_CreateObject(fwSession, pTemplate, ulAttributeCount, pError); } NSS_IMPLEMENT NSSCKMDSession * nss_ckcapi_CreateSession ( NSSCKFWSession *fwSession, CK_RV *pError ) { NSSArena *arena; NSSCKMDSession *rv; arena = NSSCKFWSession_GetArena(fwSession, pError); if( (NSSArena *)NULL == arena ) { return (NSSCKMDSession *)NULL; } rv = nss_ZNEW(arena, NSSCKMDSession); if( (NSSCKMDSession *)NULL == rv ) { *pError = CKR_HOST_MEMORY; return (NSSCKMDSession *)NULL; } /* * rv was zeroed when allocated, so we only * need to set the non-zero members. */ rv->etc = (void *)fwSession; /* rv->Close */ /* rv->GetDeviceError */ /* rv->Login */ /* rv->Logout */ /* rv->InitPIN */ /* rv->SetPIN */ /* rv->GetOperationStateLen */ /* rv->GetOperationState */ /* rv->SetOperationState */ rv->CreateObject = ckcapi_mdSession_CreateObject; /* rv->CopyObject */ rv->FindObjectsInit = ckcapi_mdSession_FindObjectsInit; /* rv->SeedRandom */ /* rv->GetRandom */ /* rv->null */ return rv; }