| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef REMOTING_HOST_WIN_COM_SECURITY_H_ |
| #define REMOTING_HOST_WIN_COM_SECURITY_H_ |
| |
| #include <string> |
| |
| // Concatenates ACE type, permissions and sid given as SDDL strings into an ACE |
| // definition in SDDL form. |
| #define SDDL_ACE(type, permissions, sid) \ |
| L"(" type L";;" permissions L";;;" sid L")" |
| |
| // Text representation of COM_RIGHTS_EXECUTE and COM_RIGHTS_EXECUTE_LOCAL |
| // permission bits that is used in the SDDL definition below. |
| #define SDDL_COM_EXECUTE_LOCAL L"0x3" |
| |
| namespace remoting { |
| |
| // Initializes COM security of the process applying the passed security |
| // descriptor. The function configures the following settings: |
| // - Server authenticates that all data received is from the expected client. |
| // - Server can impersonate clients to check their identity but cannot act on |
| // their behalf. |
| // - Caller's identity is verified on every call (Dynamic cloaking). |
| // - Unless |activate_as_activator| is true, activations where the server would |
| // run under this process's identity are prohibited. |
| bool InitializeComSecurity(const std::string& security_descriptor, |
| const std::string& mandatory_label, |
| bool activate_as_activator); |
| |
| } // namespace remoting |
| |
| #endif // REMOTING_HOST_WIN_COM_SECURITY_H_ |