| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| #include "builtins.h" |
| |
| /* |
| * builtins/session.c |
| * |
| * This file implements the NSSCKMDSession object for the |
| * "builtin objects" cryptoki module. |
| */ |
| |
| static NSSCKMDFindObjects * |
| builtins_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_builtins_FindObjectsInit(fwSession, pTemplate, ulAttributeCount, pError); |
| } |
| |
| NSS_IMPLEMENT NSSCKMDSession * |
| nss_builtins_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 */ |
| /* rv->CopyObject */ |
| rv->FindObjectsInit = builtins_mdSession_FindObjectsInit; |
| /* rv->SeedRandom */ |
| /* rv->GetRandom */ |
| /* rv->null */ |
| |
| return rv; |
| } |