comparison 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
comparison
equal deleted inserted replaced
10:27e00625790b 11:07194b026fa4
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Jul 22, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.security.emmspi;
8
9 import dstep.security.cssmtype;
10 import dstep.security.cssmspi;
11 import dstep.security.emmtype;
12
13 alias CSSM_MANAGER_REGISTRATION_INFO* CSSM_MANAGER_REGISTRATION_INFO_PTR;
14 alias CSSM_STATE_FUNCS* CSSM_STATE_FUNCS_PTR;
15
16 enum
17 {
18 CSSM_HINT_NONE = 0,
19 CSSM_HINT_ADDRESS_APP = 1 << 0,
20 CSSM_HINT_ADDRESS_SP = 1 << 1
21 }
22
23 struct CSSM_STATE_FUNCS
24 {
25 extern (C) int function (CSSM_MODULE_HANDLE hAddIn,
26 CSSM_SERVICE_MASK AddinType,
27 void* *SPFunctions,
28 CSSM_GUID_PTR Guid,
29 CSSM_BOOL* Serialized) cssm_GetAttachFunctions;
30
31 extern (C) int function (CSSM_MODULE_HANDLE hAddIn) cssm_ReleaseAttachFunctions;
32
33 extern (C) int function (CSSM_MODULE_HANDLE hAddIn,
34 CSSM_UPCALLS_PTR UpcallTable) cssm_GetAppMemoryFunctions;
35
36 extern (C) int function (CSSM_MODULE_HANDLE hAddin,
37 CSSM_PROC_ADDR SrcAddress,
38 CSSM_PROC_ADDR DestAddress,
39 CSSM_PRIVILEGE InPriv,
40 CSSM_PRIVILEGE* OutPriv,
41 CSSM_BITMASK Hints,
42 CSSM_BOOL* IsOK) cssm_IsFuncCallValid;
43
44 extern (C) int function (/*const*/ CSSM_GUID* GUID) cssm_DeregisterManagerServices;
45 extern (C) int function (/*const*/ CSSM_MANAGER_EVENT_NOTIFICATION* EventDescription) cssm_DeliverModuleManagerEvent;
46 }
47
48 struct CSSM_MANAGER_REGISTRATION_INFO
49 {
50 extern (C) int function (uint VerMajor, uint VerMinor) Initialize;
51 extern (C) int function () Terminate;
52 extern (C) int function (CSSM_STATE_FUNCS_PTR CssmStateCallTable) RegisterDispatchTable;
53 extern (C) int function () DeregisterDispatchTable;
54 extern (C) int function (/*const*/ CSSM_MANAGER_EVENT_NOTIFICATION* EventDescription) EventNotifyManager;
55 extern (C) int function (CSSM_FUNC_NAME_ADDR_PTR FuncNameAddrPtr,
56 uint NumOfFuncNameAddr) RefreshFunctionTable;
57 }
58
59 extern (C)
60 {
61 int ModuleManagerAuthenticate (uint KeyHierarchy, CSSM_GUID* CssmGuid, CSSM_GUID* AppGuid, CSSM_MANAGER_REGISTRATION_INFO_PTR FunctionTable);
62 }