diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/security/cssmkrapi.d	Sat Aug 01 15:03:28 2009 +0200
@@ -0,0 +1,98 @@
+/**
+ * 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.cssmkrapi;
+
+import dstep.security.cssmtype;
+
+alias uint CSSM_KRSP_HANDLE;
+alias uint CSSM_KR_POLICY_TYPE;
+alias uint CSSM_KR_POLICY_FLAGS;
+alias CSSM_KR_POLICY_INFO* CSSM_KR_POLICY_INFO_PTR;
+alias CSSM_KR_PROFILE* CSSM_KR_PROFILE_PTR;
+
+struct CSSM_KR_NAME
+{
+	ubyte Type;
+	ubyte Length;
+	char* Name;
+}
+
+
+struct CSSM_KR_PROFILE
+{
+	CSSM_KR_NAME UserName;
+	CSSM_CERTGROUP_PTR UserCertificate;
+	CSSM_CERTGROUP_PTR KRSCertChain;
+	ubyte LE_KRANum;
+	CSSM_CERTGROUP_PTR LE_KRACertChainList;
+	ubyte ENT_KRANum;
+	CSSM_CERTGROUP_PTR ENT_KRACertChainList;
+	ubyte INDIV_KRANum;
+	CSSM_CERTGROUP_PTR INDIV_KRACertChainList;
+	CSSM_DATA_PTR INDIV_AuthenticationInfo;
+	uint KRSPFlags;
+	CSSM_DATA_PTR KRSPExtensions;
+}
+
+
+struct CSSM_KR_WRAPPEDPRODUCT_INFO
+{
+	CSSM_VERSION StandardVersion;
+	byte[68] StandardDescription;
+	CSSM_VERSION ProductVersion;
+	byte[68] ProductDescription;
+	byte[68] ProductVendor;
+	uint ProductFlags;
+}
+
+
+struct CSSM_KRSUBSERVICE
+{
+	uint SubServiceId;
+	char* Description;
+	CSSM_KR_WRAPPEDPRODUCT_INFO WrappedProduct;
+}
+
+
+struct CSSM_KR_POLICY_LIST_ITEM
+{
+	CSSM_KR_POLICY_LIST_ITEM* next;
+	uint AlgorithmId;
+	uint Mode;
+	uint MaxKeyLength;
+	uint MaxRounds;
+	ubyte WorkFactor;
+	uint PolicyFlags;
+	uint AlgClass;
+}
+
+
+struct CSSM_KR_POLICY_INFO
+{
+	int krbNotAllowed;
+	uint numberOfEntries;
+	CSSM_KR_POLICY_LIST_ITEM* policyEntry;
+}
+
+extern (C)
+{
+	int CSSM_KR_SetEnterpriseRecoveryPolicy (CSSM_DATA* RecoveryPolicyFileName, CSSM_ACCESS_CREDENTIALS* OldPassPhrase, CSSM_ACCESS_CREDENTIALS* NewPassPhrase);
+	int CSSM_KR_CreateRecoveryRegistrationContext (uint KRSPHandle, CSSM_CC_HANDLE* NewContext);
+	int CSSM_KR_CreateRecoveryEnablementContext (uint KRSPHandle, CSSM_KR_PROFILE* LocalProfile, CSSM_KR_PROFILE* RemoteProfile, CSSM_CC_HANDLE* NewContext);
+	int CSSM_KR_CreateRecoveryRequestContext (uint KRSPHandle, CSSM_KR_PROFILE* LocalProfile, CSSM_CC_HANDLE* NewContext);
+	int CSSM_KR_GetPolicyInfo (ulong CCHandle, CSSM_KR_POLICY_FLAGS* EncryptionProhibited, uint* WorkFactor);
+	int CSSM_KR_RegistrationRequest (ulong RecoveryRegistrationContext, CSSM_DATA* KRInData, CSSM_ACCESS_CREDENTIALS* AccessCredentials, uint KRFlags, int* EstimatedTime, CSSM_HANDLE_PTR ReferenceHandle);
+	int CSSM_KR_RegistrationRetrieve (uint KRSPHandle, int ReferenceHandle, CSSM_ACCESS_CREDENTIALS* AccessCredentials, int* EstimatedTime, CSSM_KR_PROFILE_PTR KRProfile);
+	int CSSM_KR_GenerateRecoveryFields (ulong KeyRecoveryContext, ulong CCHandle, CSSM_DATA* KRSPOptions, uint KRFlags, CSSM_DATA_PTR KRFields, CSSM_CC_HANDLE* NewCCHandle);
+	int CSSM_KR_ProcessRecoveryFields (ulong KeyRecoveryContext, ulong CryptoContext, CSSM_DATA* KRSPOptions, uint KRFlags, CSSM_DATA* KRFields, CSSM_CC_HANDLE* NewCryptoContext);
+	int CSSM_KR_RecoveryRequest (ulong RecoveryRequestContext, CSSM_DATA* KRInData, CSSM_ACCESS_CREDENTIALS* AccessCredentials, int* EstimatedTime, CSSM_HANDLE_PTR ReferenceHandle);
+	int CSSM_KR_RecoveryRetrieve (uint KRSPHandle, int ReferenceHandle, CSSM_ACCESS_CREDENTIALS* AccessCredentials, int* EstimatedTime, CSSM_HANDLE_PTR CacheHandle, uint* NumberOfRecoveredKeys);
+	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);
+	int CSSM_KR_RecoveryRequestAbort (uint KRSPHandle, int CacheHandle);
+	int CSSM_KR_QueryPolicyInfo (uint KRSPHandle, uint AlgorithmID, uint Mode, uint Class, CSSM_KR_POLICY_INFO_PTR* PolicyInfoData);
+	int CSSM_KR_PassThrough (uint KRSPHandle, ulong KeyRecoveryContext, ulong CryptoContext, uint PassThroughId, void* InputParams, void** OutputParams);
+}
\ No newline at end of file