Mercurial > projects > dstep
comparison dstep/security/cssmkrapi.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.cssmkrapi; | |
8 | |
9 import dstep.security.cssmtype; | |
10 | |
11 alias uint CSSM_KRSP_HANDLE; | |
12 alias uint CSSM_KR_POLICY_TYPE; | |
13 alias uint CSSM_KR_POLICY_FLAGS; | |
14 alias CSSM_KR_POLICY_INFO* CSSM_KR_POLICY_INFO_PTR; | |
15 alias CSSM_KR_PROFILE* CSSM_KR_PROFILE_PTR; | |
16 | |
17 struct CSSM_KR_NAME | |
18 { | |
19 ubyte Type; | |
20 ubyte Length; | |
21 char* Name; | |
22 } | |
23 | |
24 | |
25 struct CSSM_KR_PROFILE | |
26 { | |
27 CSSM_KR_NAME UserName; | |
28 CSSM_CERTGROUP_PTR UserCertificate; | |
29 CSSM_CERTGROUP_PTR KRSCertChain; | |
30 ubyte LE_KRANum; | |
31 CSSM_CERTGROUP_PTR LE_KRACertChainList; | |
32 ubyte ENT_KRANum; | |
33 CSSM_CERTGROUP_PTR ENT_KRACertChainList; | |
34 ubyte INDIV_KRANum; | |
35 CSSM_CERTGROUP_PTR INDIV_KRACertChainList; | |
36 CSSM_DATA_PTR INDIV_AuthenticationInfo; | |
37 uint KRSPFlags; | |
38 CSSM_DATA_PTR KRSPExtensions; | |
39 } | |
40 | |
41 | |
42 struct CSSM_KR_WRAPPEDPRODUCT_INFO | |
43 { | |
44 CSSM_VERSION StandardVersion; | |
45 byte[68] StandardDescription; | |
46 CSSM_VERSION ProductVersion; | |
47 byte[68] ProductDescription; | |
48 byte[68] ProductVendor; | |
49 uint ProductFlags; | |
50 } | |
51 | |
52 | |
53 struct CSSM_KRSUBSERVICE | |
54 { | |
55 uint SubServiceId; | |
56 char* Description; | |
57 CSSM_KR_WRAPPEDPRODUCT_INFO WrappedProduct; | |
58 } | |
59 | |
60 | |
61 struct CSSM_KR_POLICY_LIST_ITEM | |
62 { | |
63 CSSM_KR_POLICY_LIST_ITEM* next; | |
64 uint AlgorithmId; | |
65 uint Mode; | |
66 uint MaxKeyLength; | |
67 uint MaxRounds; | |
68 ubyte WorkFactor; | |
69 uint PolicyFlags; | |
70 uint AlgClass; | |
71 } | |
72 | |
73 | |
74 struct CSSM_KR_POLICY_INFO | |
75 { | |
76 int krbNotAllowed; | |
77 uint numberOfEntries; | |
78 CSSM_KR_POLICY_LIST_ITEM* policyEntry; | |
79 } | |
80 | |
81 extern (C) | |
82 { | |
83 int CSSM_KR_SetEnterpriseRecoveryPolicy (CSSM_DATA* RecoveryPolicyFileName, CSSM_ACCESS_CREDENTIALS* OldPassPhrase, CSSM_ACCESS_CREDENTIALS* NewPassPhrase); | |
84 int CSSM_KR_CreateRecoveryRegistrationContext (uint KRSPHandle, CSSM_CC_HANDLE* NewContext); | |
85 int CSSM_KR_CreateRecoveryEnablementContext (uint KRSPHandle, CSSM_KR_PROFILE* LocalProfile, CSSM_KR_PROFILE* RemoteProfile, CSSM_CC_HANDLE* NewContext); | |
86 int CSSM_KR_CreateRecoveryRequestContext (uint KRSPHandle, CSSM_KR_PROFILE* LocalProfile, CSSM_CC_HANDLE* NewContext); | |
87 int CSSM_KR_GetPolicyInfo (ulong CCHandle, CSSM_KR_POLICY_FLAGS* EncryptionProhibited, uint* WorkFactor); | |
88 int CSSM_KR_RegistrationRequest (ulong RecoveryRegistrationContext, CSSM_DATA* KRInData, CSSM_ACCESS_CREDENTIALS* AccessCredentials, uint KRFlags, int* EstimatedTime, CSSM_HANDLE_PTR ReferenceHandle); | |
89 int CSSM_KR_RegistrationRetrieve (uint KRSPHandle, int ReferenceHandle, CSSM_ACCESS_CREDENTIALS* AccessCredentials, int* EstimatedTime, CSSM_KR_PROFILE_PTR KRProfile); | |
90 int CSSM_KR_GenerateRecoveryFields (ulong KeyRecoveryContext, ulong CCHandle, CSSM_DATA* KRSPOptions, uint KRFlags, CSSM_DATA_PTR KRFields, CSSM_CC_HANDLE* NewCCHandle); | |
91 int CSSM_KR_ProcessRecoveryFields (ulong KeyRecoveryContext, ulong CryptoContext, CSSM_DATA* KRSPOptions, uint KRFlags, CSSM_DATA* KRFields, CSSM_CC_HANDLE* NewCryptoContext); | |
92 int CSSM_KR_RecoveryRequest (ulong RecoveryRequestContext, CSSM_DATA* KRInData, CSSM_ACCESS_CREDENTIALS* AccessCredentials, int* EstimatedTime, CSSM_HANDLE_PTR ReferenceHandle); | |
93 int CSSM_KR_RecoveryRetrieve (uint KRSPHandle, int ReferenceHandle, CSSM_ACCESS_CREDENTIALS* AccessCredentials, int* EstimatedTime, CSSM_HANDLE_PTR CacheHandle, uint* NumberOfRecoveredKeys); | |
94 int CSSM_KR_GetRecoveredObject (uint KRSPHandle, int CacheHandle, uint IndexInResults, int CSPHandle, CSSM_RESOURCE_CONTROL_CONTEXT* CredAndAclEntry, uint Flags, CSSM_KEY_PTR RecoveredKey, CSSM_DATA_PTR OtherInfo); | |
95 int CSSM_KR_RecoveryRequestAbort (uint KRSPHandle, int CacheHandle); | |
96 int CSSM_KR_QueryPolicyInfo (uint KRSPHandle, uint AlgorithmID, uint Mode, uint Class, CSSM_KR_POLICY_INFO_PTR* PolicyInfoData); | |
97 int CSSM_KR_PassThrough (uint KRSPHandle, ulong KeyRecoveryContext, ulong CryptoContext, uint PassThroughId, void* InputParams, void** OutputParams); | |
98 } |