#include "AppleFileDL.h"
#include <security_cdsa_plugin/DLsession.h>
static const AppleDatabaseTableName kTableNames[] = {
{ CSSM_DL_DB_SCHEMA_INFO, "CSSM_DL_DB_SCHEMA_INFO" },
{ CSSM_DL_DB_SCHEMA_ATTRIBUTES, "CSSM_DL_DB_SCHEMA_ATTRIBUTES" },
{ CSSM_DL_DB_SCHEMA_INDEXES, "CSSM_DL_DB_SCHEMA_INDEXES" },
{ CSSM_DL_DB_SCHEMA_PARSING_MODULE, "CSSM_DL_DB_SCHEMA_PARSING_MODULE" },
{ CSSM_DL_DB_RECORD_CERT, "CSSM_DL_DB_RECORD_CERT" },
{ CSSM_DL_DB_RECORD_CRL, "CSSM_DL_DB_RECORD_CRL" },
{ CSSM_DL_DB_RECORD_POLICY, "CSSM_DL_DB_RECORD_POLICY" },
{ CSSM_DL_DB_RECORD_GENERIC, "CSSM_DL_DB_RECORD_GENERIC" },
{ CSSM_DL_DB_RECORD_PUBLIC_KEY, "CSSM_DL_DB_RECORD_PUBLIC_KEY" },
{ CSSM_DL_DB_RECORD_PRIVATE_KEY, "CSSM_DL_DB_RECORD_PRIVATE_KEY" },
{ CSSM_DL_DB_RECORD_SYMMETRIC_KEY, "CSSM_DL_DB_RECORD_SYMMETRIC_KEY" },
{ ~0U, NULL }
};
AppleFileDL::AppleFileDL()
: mDatabaseManager(kTableNames)
{
}
AppleFileDL::~AppleFileDL()
{
}
PluginSession *AppleFileDL::makeSession(CSSM_MODULE_HANDLE handle,
const CSSM_VERSION &version,
uint32 subserviceId,
CSSM_SERVICE_TYPE subserviceType,
CSSM_ATTACH_FLAGS attachFlags,
const CSSM_UPCALLS &upcalls)
{
switch (subserviceType) {
case CSSM_SERVICE_DL:
return new DLPluginSession(handle,
*this,
version,
subserviceId,
subserviceType,
attachFlags,
upcalls,
mDatabaseManager);
default:
CssmError::throwMe(CSSMERR_CSSM_INVALID_SERVICE_MASK);
}
}