Mercurial > projects > dstep
view dstep/security/Authorization.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 source
/** * 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.Authorization; version (Tango) import tango.stdc.stdio; else import std.c.stdio; import dstep.coreservices.carboncore.MacTypes; struct AuthorizationOpaqueRef; alias uint AuthorizationFlags; alias AuthorizationOpaqueRef* AuthorizationRef; alias char* AuthorizationString; alias AuthorizationItemSet AuthorizationRights; alias AuthorizationItemSet AuthorizationEnvironment; enum { errAuthorizationSuccess = 0, errAuthorizationInvalidSet = -60001, errAuthorizationInvalidRef = -60002, errAuthorizationInvalidTag = -60003, errAuthorizationInvalidPointer = -60004, errAuthorizationDenied = -60005, errAuthorizationCanceled = -60006, errAuthorizationInteractionNotAllowed = -60007, errAuthorizationInternal = -60008, errAuthorizationExternalizeNotAllowed = -60009, errAuthorizationInternalizeNotAllowed = -60010, errAuthorizationInvalidFlags = -60011, errAuthorizationToolExecuteFailure = -60031, errAuthorizationToolEnvironmentError = -60032, errAuthorizationBadAddress = -60033 } enum { kAuthorizationFlagDefaults = 0, kAuthorizationFlagInteractionAllowed = (1 << 0), kAuthorizationFlagExtendRights = (1 << 1), kAuthorizationFlagPartialRights = (1 << 2), kAuthorizationFlagDestroyRights = (1 << 3), kAuthorizationFlagPreAuthorize = (1 << 4), kAuthorizationFlagNoData = (1 << 20) } enum { kAuthorizationFlagCanNotPreAuthorize = (1 << 0) } enum { kAuthorizationExternalFormLength = 32 } struct AuthorizationItem { char* name; uint valueLength; void* value; uint flags; } struct AuthorizationItemSet { uint count; AuthorizationItem* items; } struct AuthorizationExternalForm { char* bytes; } extern (C) { int AuthorizationCreate (AuthorizationRights* rights, AuthorizationEnvironment* environment, uint flags, AuthorizationRef* authorization); int AuthorizationFree (AuthorizationRef authorization, uint flags); int AuthorizationCopyRights (AuthorizationRef authorization, AuthorizationRights* rights, AuthorizationEnvironment* environment, uint flags, AuthorizationRights** authorizedRights); int AuthorizationCopyInfo (AuthorizationRef authorization, char* tag, AuthorizationItemSet** info); int AuthorizationMakeExternalForm (AuthorizationRef authorization, AuthorizationExternalForm* extForm); int AuthorizationCreateFromExternalForm (AuthorizationExternalForm* extForm, AuthorizationRef* authorization); int AuthorizationFreeItemSet (AuthorizationItemSet* set); int AuthorizationExecuteWithPrivileges (AuthorizationRef authorization, char* pathToTool, uint options, char** arguments, FILE** communicationsPipe); int AuthorizationCopyPrivilegedReference (AuthorizationRef* authorization, uint flags); }