Mercurial > projects > dstep
diff dstep/security/emmspi.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/security/emmspi.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,62 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 22, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.security.emmspi; + +import dstep.security.cssmtype; +import dstep.security.cssmspi; +import dstep.security.emmtype; + +alias CSSM_MANAGER_REGISTRATION_INFO* CSSM_MANAGER_REGISTRATION_INFO_PTR; +alias CSSM_STATE_FUNCS* CSSM_STATE_FUNCS_PTR; + +enum +{ + CSSM_HINT_NONE = 0, + CSSM_HINT_ADDRESS_APP = 1 << 0, + CSSM_HINT_ADDRESS_SP = 1 << 1 +} + +struct CSSM_STATE_FUNCS +{ + extern (C) int function (CSSM_MODULE_HANDLE hAddIn, + CSSM_SERVICE_MASK AddinType, + void* *SPFunctions, + CSSM_GUID_PTR Guid, + CSSM_BOOL* Serialized) cssm_GetAttachFunctions; + + extern (C) int function (CSSM_MODULE_HANDLE hAddIn) cssm_ReleaseAttachFunctions; + + extern (C) int function (CSSM_MODULE_HANDLE hAddIn, + CSSM_UPCALLS_PTR UpcallTable) cssm_GetAppMemoryFunctions; + + extern (C) int function (CSSM_MODULE_HANDLE hAddin, + CSSM_PROC_ADDR SrcAddress, + CSSM_PROC_ADDR DestAddress, + CSSM_PRIVILEGE InPriv, + CSSM_PRIVILEGE* OutPriv, + CSSM_BITMASK Hints, + CSSM_BOOL* IsOK) cssm_IsFuncCallValid; + + extern (C) int function (/*const*/ CSSM_GUID* GUID) cssm_DeregisterManagerServices; + extern (C) int function (/*const*/ CSSM_MANAGER_EVENT_NOTIFICATION* EventDescription) cssm_DeliverModuleManagerEvent; +} + +struct CSSM_MANAGER_REGISTRATION_INFO +{ + extern (C) int function (uint VerMajor, uint VerMinor) Initialize; + extern (C) int function () Terminate; + extern (C) int function (CSSM_STATE_FUNCS_PTR CssmStateCallTable) RegisterDispatchTable; + extern (C) int function () DeregisterDispatchTable; + extern (C) int function (/*const*/ CSSM_MANAGER_EVENT_NOTIFICATION* EventDescription) EventNotifyManager; + extern (C) int function (CSSM_FUNC_NAME_ADDR_PTR FuncNameAddrPtr, + uint NumOfFuncNameAddr) RefreshFunctionTable; +} + +extern (C) +{ + int ModuleManagerAuthenticate (uint KeyHierarchy, CSSM_GUID* CssmGuid, CSSM_GUID* AppGuid, CSSM_MANAGER_REGISTRATION_INFO_PTR FunctionTable); +} \ No newline at end of file