rcl  master
C API providing common ROS client library functionality.
security.h
1 // Copyright 2018-2020 Open Source Robotics Foundation, Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef RCL__SECURITY_H_
16 #define RCL__SECURITY_H_
17 
18 #ifdef __cplusplus
19 extern "C"
20 {
21 #endif
22 
23 #include <stdbool.h>
24 
25 #include "rcl/allocator.h"
26 #include "rcl/types.h"
27 #include "rcl/visibility_control.h"
28 #include "rmw/security_options.h"
29 
30 #ifndef ROS_SECURITY_ENCLAVE_OVERRIDE
31 # define ROS_SECURITY_ENCLAVE_OVERRIDE "ROS_SECURITY_ENCLAVE_OVERRIDE"
32 #endif
33 
34 #ifndef ROS_SECURITY_KEYSTORE_VAR_NAME
35 # define ROS_SECURITY_KEYSTORE_VAR_NAME "ROS_SECURITY_KEYSTORE"
36 #endif
37 
38 #ifndef ROS_SECURITY_STRATEGY_VAR_NAME
39 # define ROS_SECURITY_STRATEGY_VAR_NAME "ROS_SECURITY_STRATEGY"
40 #endif
41 
42 #ifndef ROS_SECURITY_ENABLE_VAR_NAME
43 # define ROS_SECURITY_ENABLE_VAR_NAME "ROS_SECURITY_ENABLE"
44 #endif
45 
47 
62 RCL_PUBLIC
63 rcl_ret_t
64 rcl_get_security_options_from_environment(
65  const char * name,
66  const rcutils_allocator_t * allocator,
67  rmw_security_options_t * security_options);
68 
70 
79 RCL_PUBLIC
80 rcl_ret_t
81 rcl_security_enabled(bool * use_security);
82 
84 
94 RCL_PUBLIC
95 rcl_ret_t
96 rcl_get_enforcement_policy(rmw_security_enforcement_policy_t * policy);
97 
99 
119 RCL_PUBLIC
120 char *
121 rcl_get_secure_root(const char * name, const rcl_allocator_t * allocator);
122 
123 #ifdef __cplusplus
124 }
125 #endif
126 
127 #endif // RCL__SECURITY_H_
rmw_security_options_t
rmw_security_enforcement_policy_t
enum RMW_PUBLIC_TYPE rmw_security_enforcement_policy_t rmw_security_enforcement_policy_t
rcutils_allocator_t
security_options.h