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 }