1/* 2 * Copyright (c) 2000-2001,2011,2014 Apple Inc. All Rights Reserved. 3 * 4 * The contents of this file constitute Original Code as defined in and are 5 * subject to the Apple Public Source License Version 1.2 (the 'License'). 6 * You may not use this file except in compliance with the License. Please obtain 7 * a copy of the License at http://www.apple.com/publicsource and read it before 8 * using this file. 9 * 10 * This Original Code and all software distributed under the License are 11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS 12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT 13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the 15 * specific language governing rights and limitations under the License. 16 */ 17 18 19// 20// CSPDLPlugin.cpp - File Based CSP/DL plug-in module. 21// 22#include "CSPDLPlugin.h" 23 24#include "SSCSPSession.h" 25#include "SSDLSession.h" 26 27 28// 29// Make and break the plugin object 30// 31CSPDLPlugin::CSPDLPlugin() 32 : mRawCsp(gGuidAppleCSP) 33{ 34} 35 36CSPDLPlugin::~CSPDLPlugin() 37{ 38} 39 40 41// 42// Create a new plugin session, our way 43// 44PluginSession * 45CSPDLPlugin::makeSession(CSSM_MODULE_HANDLE handle, 46 const CSSM_VERSION &version, 47 uint32 subserviceId, 48 CSSM_SERVICE_TYPE subserviceType, 49 CSSM_ATTACH_FLAGS attachFlags, 50 const CSSM_UPCALLS &upcalls) 51{ 52 switch (subserviceType) 53 { 54 case CSSM_SERVICE_CSP: 55 return new SSCSPSession(handle, 56 *this, 57 version, 58 subserviceId, 59 subserviceType, 60 attachFlags, 61 upcalls, 62 mSSCSPDLSession, 63 mRawCsp); 64 case CSSM_SERVICE_DL: 65 return new SSDLSession(handle, 66 *this, 67 version, 68 subserviceId, 69 subserviceType, 70 attachFlags, 71 upcalls, 72 mDatabaseManager, 73 mSSCSPDLSession); 74 default: 75 CssmError::throwMe(CSSMERR_CSSM_INVALID_SERVICE_MASK); 76 return 0; // placebo 77 } 78} 79