]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - windows/winsecur.h
Implement connection sharing between instances of PuTTY.
[PuTTY.git] / windows / winsecur.h
index 9844afc8a3a57a13c4550ddb64993b003532f42b..57de5d1de8c5f7c7c44aee94b67363d6b9097156 100644 (file)
@@ -12,6 +12,9 @@
 #define WINSECUR_GLOBAL extern
 #endif
 
+/*
+ * Functions loaded from advapi32.dll.
+ */
 DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, OpenProcessToken,
                      (HANDLE, DWORD, PHANDLE));
 DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, GetTokenInformation,
@@ -25,8 +28,38 @@ DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, GetSecurityInfo,
                      (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
                       PSID *, PSID *, PACL *, PACL *,
                       PSECURITY_DESCRIPTOR *));
-
+DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, SetEntriesInAclA,
+                     (ULONG, PEXPLICIT_ACCESS, PACL, PACL *));
 int got_advapi(void);
+
+/*
+ * Functions loaded from crypt32.dll.
+ */
+DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, CryptProtectMemory,
+                     (LPVOID, DWORD, DWORD));
+int got_crypt(void);
+
+/*
+ * Find the SID describing the current user. The return value (if not
+ * NULL for some error-related reason) is smalloced.
+ */
 PSID get_user_sid(void);
 
+/*
+ * Construct a PSECURITY_DESCRIPTOR of the type used for named pipe
+ * servers, i.e. allowing access only to the current user id and also
+ * only local (i.e. not over SMB) connections.
+ *
+ * If this function returns TRUE, then 'psd', 'networksid' and 'acl'
+ * will all have been filled in with memory allocated using LocalAlloc
+ * (and hence must be freed later using LocalFree). If it returns
+ * FALSE, then instead 'error' has been filled with a dynamically
+ * allocated error message.
+ */
+int make_private_security_descriptor(DWORD permissions,
+                                     PSECURITY_DESCRIPTOR *psd,
+                                     PSID *networksid,
+                                     PACL *acl,
+                                     char **error);
+
 #endif