Thread: [pywin32-checkins] pywin32/win32/src win32security.i,1.27,1.28
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Roger U. <ru...@us...> - 2005-08-29 21:41:03
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16094/win32/src Modified Files: win32security.i Log Message: Add CreateWellKnownSid Index: win32security.i =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32security.i,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** win32security.i 31 May 2005 02:07:34 -0000 1.27 --- win32security.i 29 Aug 2005 21:40:53 -0000 1.28 *************** *** 80,83 **** --- 80,86 ---- static TranslateNamefunc pfnTranslateName=NULL; + typedef BOOL (WINAPI *CreateWellKnownSidfunc)(WELL_KNOWN_SID_TYPE, PSID, PSID, DWORD *); + static CreateWellKnownSidfunc pfnCreateWellKnownSid=NULL; + // function pointers used in win32security_sspi.cpp and win32security_ds.cpp extern DsBindfunc pfnDsBind=NULL; *************** *** 650,654 **** pfnTranslateName=(TranslateNamefunc)loadapifunc("TranslateNameW",secur32_dll); ! pfnDsBind=(DsBindfunc)loadapifunc("DsBindW", ntdsapi_dll); pfnDsUnBind=(DsUnBindfunc)loadapifunc("DsUnBindW", ntdsapi_dll); --- 653,658 ---- pfnTranslateName=(TranslateNamefunc)loadapifunc("TranslateNameW",secur32_dll); ! pfnCreateWellKnownSid=(CreateWellKnownSidfunc)loadapifunc("CreateWellKnownSid",advapi32_dll); ! pfnDsBind=(DsBindfunc)loadapifunc("DsBindW", ntdsapi_dll); pfnDsUnBind=(DsUnBindfunc)loadapifunc("DsUnBindW", ntdsapi_dll); *************** *** 656,668 **** pfnDsWriteAccountSpn=(DsWriteAccountSpnfunc)loadapifunc("DsWriteAccountSpnW", ntdsapi_dll); pfnDsFreeSpnArray=(DsFreeSpnArrayfunc)loadapifunc("DsFreeSpnArrayW", ntdsapi_dll); ! pfnDsCrackNames=(DsCrackNamesfunc)loadapifunc("DsCrackNamesW", ntdsapi_dll); ! pfnDsListInfoForServer=(DsListInfoForServerfunc)loadapifunc("DsListInfoForServerW", ntdsapi_dll); ! pfnDsListDomainsInSite=(DsListDomainsInSitefunc)loadapifunc("DsListDomainsInSiteW", ntdsapi_dll); ! pfnDsListServersForDomainInSite=(DsListServersForDomainInSitefunc)loadapifunc("DsListServersForDomainInSiteW", ntdsapi_dll); ! pfnDsListServersInSite=(DsListServersInSitefunc)loadapifunc("DsListServersInSiteW", ntdsapi_dll); ! pfnDsListSites=(DsListSitesfunc)loadapifunc("DsListSitesW", ntdsapi_dll); ! pfnDsListRoles=(DsListRolesfunc)loadapifunc("DsListRolesW", ntdsapi_dll); ! pfnDsFreeNameResult=(DsFreeNameResultfunc)loadapifunc("DsFreeNameResultW", ntdsapi_dll); pfnDsGetDcName=(DsGetDcNamefunc)loadapifunc("DsGetDcNameW", netapi32_dll); --- 660,672 ---- pfnDsWriteAccountSpn=(DsWriteAccountSpnfunc)loadapifunc("DsWriteAccountSpnW", ntdsapi_dll); pfnDsFreeSpnArray=(DsFreeSpnArrayfunc)loadapifunc("DsFreeSpnArrayW", ntdsapi_dll); ! pfnDsCrackNames=(DsCrackNamesfunc)loadapifunc("DsCrackNamesW", ntdsapi_dll); ! pfnDsListInfoForServer=(DsListInfoForServerfunc)loadapifunc("DsListInfoForServerW", ntdsapi_dll); ! pfnDsListDomainsInSite=(DsListDomainsInSitefunc)loadapifunc("DsListDomainsInSiteW", ntdsapi_dll); ! pfnDsListServersForDomainInSite=(DsListServersForDomainInSitefunc)loadapifunc("DsListServersForDomainInSiteW", ntdsapi_dll); ! pfnDsListServersInSite=(DsListServersInSitefunc)loadapifunc("DsListServersInSiteW", ntdsapi_dll); ! pfnDsListSites=(DsListSitesfunc)loadapifunc("DsListSitesW", ntdsapi_dll); ! pfnDsListRoles=(DsListRolesfunc)loadapifunc("DsListRolesW", ntdsapi_dll); ! pfnDsFreeNameResult=(DsFreeNameResultfunc)loadapifunc("DsFreeNameResultW", ntdsapi_dll); pfnDsGetDcName=(DsGetDcNamefunc)loadapifunc("DsGetDcNameW", netapi32_dll); *************** *** 3476,3479 **** --- 3480,3513 ---- %} + // @pyswig |CreateWellKnownSid|Returns one of the predefined well known sids + %native(CreateWellKnownSid) PyCreateWellKnownSid; + %{ + static PyObject *PyCreateWellKnownSid(PyObject *self, PyObject *args) + { + PyObject *obDomainSid=Py_None, *ret=NULL; + PSID DomainSid=NULL, outsid=NULL; + WELL_KNOWN_SID_TYPE sidtype; + DWORD bufsize=SECURITY_MAX_SID_SIZE; + CHECK_PFN(CreateWellKnownSid); + + outsid=malloc(bufsize); + if (outsid==NULL) + return PyErr_Format(PyExc_MemoryError, "CreateWellKnownSid: Unable to allocate %d bytes", bufsize); + + if (!PyArg_ParseTuple(args, "k|O", + &sidtype, // @pyparm int|WellKnownSidType||One of the Win*Sid constants + &obDomainSid)) // @pyparm <o PySID>|DomainSid|None|Domain for the new SID, or None for local machine + return NULL; + if (!PyWinObject_AsSID(obDomainSid, &DomainSid, TRUE)) + return NULL; + if (!(*pfnCreateWellKnownSid)(sidtype, DomainSid, outsid, &bufsize)) + PyWin_SetAPIError("CreateWellKnownSid"); + else + ret=new PySID(outsid); + free(outsid); + return ret; + } + %} + #define TOKEN_ADJUST_DEFAULT TOKEN_ADJUST_DEFAULT // Required to change the default ACL, primary group, or owner of an access token. #define TOKEN_ADJUST_GROUPS TOKEN_ADJUST_GROUPS // Required to change the groups specified in an access token. *************** *** 3780,3785 **** #define DS_SPN_SERVICE DS_SPN_SERVICE ! #Spn operations used with DsWriteAccountSpn #define DS_SPN_ADD_SPN_OP DS_SPN_ADD_SPN_OP #define DS_SPN_REPLACE_SPN_OP DS_SPN_REPLACE_SPN_OP #define DS_SPN_DELETE_SPN_OP DS_SPN_DELETE_SPN_OP --- 3814,3882 ---- #define DS_SPN_SERVICE DS_SPN_SERVICE ! // Spn operations used with DsWriteAccountSpn #define DS_SPN_ADD_SPN_OP DS_SPN_ADD_SPN_OP #define DS_SPN_REPLACE_SPN_OP DS_SPN_REPLACE_SPN_OP #define DS_SPN_DELETE_SPN_OP DS_SPN_DELETE_SPN_OP + + // WELL_KNOWN_SID_TYPE used with CreateWellKnownSid + #define WinNullSid WinNullSid + #define WinWorldSid WinWorldSid + #define WinLocalSid WinLocalSid + #define WinCreatorOwnerSid WinCreatorOwnerSid + #define WinCreatorGroupSid WinCreatorGroupSid + #define WinCreatorOwnerServerSid WinCreatorOwnerServerSid + #define WinCreatorGroupServerSid WinCreatorGroupServerSid + #define WinNtAuthoritySid WinNtAuthoritySid + #define WinDialupSid WinDialupSid + #define WinNetworkSid WinNetworkSid + #define WinBatchSid WinBatchSid + #define WinInteractiveSid WinInteractiveSid + #define WinServiceSid WinServiceSid + #define WinAnonymousSid WinAnonymousSid + #define WinProxySid WinProxySid + #define WinEnterpriseControllersSid WinEnterpriseControllersSid + #define WinSelfSid WinSelfSid + #define WinAuthenticatedUserSid WinAuthenticatedUserSid + #define WinRestrictedCodeSid WinRestrictedCodeSid + #define WinTerminalServerSid WinTerminalServerSid + #define WinRemoteLogonIdSid WinRemoteLogonIdSid + #define WinLogonIdsSid WinLogonIdsSid + #define WinLocalSystemSid WinLocalSystemSid + #define WinLocalServiceSid WinLocalServiceSid + #define WinNetworkServiceSid WinNetworkServiceSid + #define WinBuiltinDomainSid WinBuiltinDomainSid + #define WinBuiltinAdministratorsSid WinBuiltinAdministratorsSid + #define WinBuiltinUsersSid WinBuiltinUsersSid + #define WinBuiltinGuestsSid WinBuiltinGuestsSid + #define WinBuiltinPowerUsersSid WinBuiltinPowerUsersSid + #define WinBuiltinAccountOperatorsSid WinBuiltinAccountOperatorsSid + #define WinBuiltinSystemOperatorsSid WinBuiltinSystemOperatorsSid + #define WinBuiltinPrintOperatorsSid WinBuiltinPrintOperatorsSid + #define WinBuiltinBackupOperatorsSid WinBuiltinBackupOperatorsSid + #define WinBuiltinReplicatorSid WinBuiltinReplicatorSid + #define WinBuiltinPreWindows2000CompatibleAccessSid WinBuiltinPreWindows2000CompatibleAccessSid + #define WinBuiltinRemoteDesktopUsersSid WinBuiltinRemoteDesktopUsersSid + #define WinBuiltinNetworkConfigurationOperatorsSid WinBuiltinNetworkConfigurationOperatorsSid + #define WinAccountAdministratorSid WinAccountAdministratorSid + #define WinAccountGuestSid WinAccountGuestSid + #define WinAccountKrbtgtSid WinAccountKrbtgtSid + #define WinAccountDomainAdminsSid WinAccountDomainAdminsSid + #define WinAccountDomainUsersSid WinAccountDomainUsersSid + #define WinAccountDomainGuestsSid WinAccountDomainGuestsSid + #define WinAccountComputersSid WinAccountComputersSid + #define WinAccountControllersSid WinAccountControllersSid + #define WinAccountCertAdminsSid WinAccountCertAdminsSid + #define WinAccountSchemaAdminsSid WinAccountSchemaAdminsSid + #define WinAccountEnterpriseAdminsSid WinAccountEnterpriseAdminsSid + #define WinAccountPolicyAdminsSid WinAccountPolicyAdminsSid + #define WinAccountRasAndIasServersSid WinAccountRasAndIasServersSid + #define WinNTLMAuthenticationSid WinNTLMAuthenticationSid + #define WinDigestAuthenticationSid WinDigestAuthenticationSid + #define WinSChannelAuthenticationSid WinSChannelAuthenticationSid + #define WinThisOrganizationSid WinThisOrganizationSid + #define WinOtherOrganizationSid WinOtherOrganizationSid + #define WinBuiltinIncomingForestTrustBuildersSid WinBuiltinIncomingForestTrustBuildersSid + #define WinBuiltinPerfMonitoringUsersSid WinBuiltinPerfMonitoringUsersSid + #define WinBuiltinPerfLoggingUsersSid WinBuiltinPerfLoggingUsersSid + // #define WinBuiltinAuthorizationAccessSid WinBuiltinAuthorizationAccessSid + // #define WinBuiltinTerminalServerLicenseServersSid WinBuiltinTerminalServerLicenseServersSid |