grpc/cpp/grpc__security_8h_source.html

215 lines
35 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GRPC C++: include/grpc/grpc_security.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC C++
&#160;<span id="projectnumber">1.64.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">grpc_security.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="grpc__security_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright 2015 gRPC authors.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * you may not use this file except in compliance with the License.</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GRPC_GRPC_SECURITY_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define GRPC_GRPC_SECURITY_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc__security__constants_8h.html">grpc/grpc_security_constants.h</a>&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_2status_8h.html">grpc/status.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553"> 35</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html"> 37</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> {</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58"> 38</a></span>&#160; <span class="keyword">const</span> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* <a class="code" href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58">ctx</a>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6"> 39</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6">index</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7"> 40</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7">name</a>;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;} <a class="code" href="grpc__security_8h.html#aecf098f41bfd613c4c62ea2a963a7a23">grpc_auth_property_iterator</a>;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html"> 44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__auth__property.html">grpc_auth_property</a> {</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27"> 45</a></span>&#160; <span class="keywordtype">char</span>* <a class="code" href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27">name</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e"> 46</a></span>&#160; <span class="keywordtype">char</span>* <a class="code" href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e">value</a>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101"> 47</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101">value_length</a>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;} <a class="code" href="grpc__security_8h.html#a7ddc1f2acf756950cc6c697c99f3e048">grpc_auth_property</a>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keyword">const</span> <a class="code" href="structgrpc__auth__property.html">grpc_auth_property</a>* <a class="code" href="grpc__security_8h.html#ab10bd417749a79405d601516fbf5e5f4">grpc_auth_property_iterator_next</a>(</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>* it);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<a class="code" href="grpc__security_8h.html#aedee02a7f6ed58e9bd41b00a518350c2">grpc_auth_context_property_iterator</a>(<span class="keyword">const</span> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<a class="code" href="grpc__security_8h.html#a4d6409cf4a261297cd327bd49e72fcea">grpc_auth_context_peer_identity</a>(<span class="keyword">const</span> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> <a class="code" href="grpc__security_8h.html#a9d3ce2db2aa6fb1c21dd2789ee7c2d18">grpc_auth_context_find_properties_by_name</a>(</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="grpc__security_8h.html#acf812326f742584f336b3777dba08f11">grpc_auth_context_peer_identity_property_name</a>(</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="grpc__security_8h.html#a5bb56dbcba0b0c54e3c6da0635391959">grpc_auth_context_peer_is_authenticated</a>(</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* <a class="code" href="grpc__security_8h.html#a3c1860cddc9edaa7f657a98a35b77e80">grpc_call_auth_context</a>(<a class="code" href="grpc__types_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a>* call);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#aa9dbfdabaca2ab86c9d7e71cbc81d3d4">grpc_auth_context_release</a>(<a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* context);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a93f543166de70abb3a725bdca1d79996">grpc_auth_context_add_property</a>(<a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx,</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value,</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">size_t</span> value_length);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a73068ca89b430bb9004f8c3e86a2886a">grpc_auth_context_add_cstring_property</a>(<a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx,</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* name,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="grpc__security_8h.html#a9cff913051370085b7cc58aa3ccbd4a4">grpc_auth_context_set_peer_identity_property_name</a>(</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21"> 109</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a>*</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<a class="code" href="grpc__security_8h.html#a7baf4df54030f3d5c7afb562e6cecf4d">grpc_authorization_policy_provider_static_data_create</a>(</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* authz_policy, <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* code,</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** error_details);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a>*</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="grpc__security_8h.html#a1af848db3753b7bd14aaf3565d3c4102">grpc_authorization_policy_provider_file_watcher_create</a>(</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* authz_policy_path, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> refresh_interval_sec,</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* code, <span class="keyword">const</span> <span class="keywordtype">char</span>** error_details);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a5367215eba06ef320f4999abc378e663">grpc_authorization_policy_provider_release</a>(</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a>* provider);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_GRPC_SECURITY_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructgrpc__auth__property__iterator_html_a3838efa5eb622c7e2c071497132b1cc7"><div class="ttname"><a href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7">grpc_auth_property_iterator::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> grpc_security.h:40</div></div>
<div class="ttc" id="agrpc_2status_8h_html_a35ab2a68917eb836de84cb23253108eb"><div class="ttname"><a href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a></div><div class="ttdeci">grpc_status_code</div><div class="ttdef"><b>Definition:</b> status.h:28</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html_a2865c3b28ea7db75be4c725adb1edc7d"><div class="ttname"><a href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a></div><div class="ttdeci">#define GRPCAPI</div><div class="ttdef"><b>Definition:</b> port_platform.h:722</div></div>
<div class="ttc" id="agrpc__security_8h_html_aecf098f41bfd613c4c62ea2a963a7a23"><div class="ttname"><a href="grpc__security_8h.html#aecf098f41bfd613c4c62ea2a963a7a23">grpc_auth_property_iterator</a></div><div class="ttdeci">struct grpc_auth_property_iterator grpc_auth_property_iterator</div></div>
<div class="ttc" id="agrpc__security_8h_html_a5bb56dbcba0b0c54e3c6da0635391959"><div class="ttname"><a href="grpc__security_8h.html#a5bb56dbcba0b0c54e3c6da0635391959">grpc_auth_context_peer_is_authenticated</a></div><div class="ttdeci">GRPCAPI int grpc_auth_context_peer_is_authenticated(const grpc_auth_context *ctx)</div><div class="ttdoc">Returns 1 if the peer is authenticated, 0 otherwise.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a1af848db3753b7bd14aaf3565d3c4102"><div class="ttname"><a href="grpc__security_8h.html#a1af848db3753b7bd14aaf3565d3c4102">grpc_authorization_policy_provider_file_watcher_create</a></div><div class="ttdeci">GRPCAPI grpc_authorization_policy_provider * grpc_authorization_policy_provider_file_watcher_create(const char *authz_policy_path, unsigned int refresh_interval_sec, grpc_status_code *code, const char **error_details)</div><div class="ttdoc">EXPERIMENTAL - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_aa9dbfdabaca2ab86c9d7e71cbc81d3d4"><div class="ttname"><a href="grpc__security_8h.html#aa9dbfdabaca2ab86c9d7e71cbc81d3d4">grpc_auth_context_release</a></div><div class="ttdeci">GRPCAPI void grpc_auth_context_release(grpc_auth_context *context)</div><div class="ttdoc">Releases the auth context returned from grpc_call_auth_context.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a7ddc1f2acf756950cc6c697c99f3e048"><div class="ttname"><a href="grpc__security_8h.html#a7ddc1f2acf756950cc6c697c99f3e048">grpc_auth_property</a></div><div class="ttdeci">struct grpc_auth_property grpc_auth_property</div><div class="ttdoc">value, if not NULL, is guaranteed to be NULL terminated.</div></div>
<div class="ttc" id="agrpc__security_8h_html_ab10bd417749a79405d601516fbf5e5f4"><div class="ttname"><a href="grpc__security_8h.html#ab10bd417749a79405d601516fbf5e5f4">grpc_auth_property_iterator_next</a></div><div class="ttdeci">const GRPCAPI grpc_auth_property * grpc_auth_property_iterator_next(grpc_auth_property_iterator *it)</div><div class="ttdoc">Returns NULL when the iterator is at the end.</div></div>
<div class="ttc" id="agrpc_2status_8h_html"><div class="ttname"><a href="grpc_2status_8h.html">status.h</a></div></div>
<div class="ttc" id="agrpc__security_8h_html_a9cff913051370085b7cc58aa3ccbd4a4"><div class="ttname"><a href="grpc__security_8h.html#a9cff913051370085b7cc58aa3ccbd4a4">grpc_auth_context_set_peer_identity_property_name</a></div><div class="ttdeci">GRPCAPI int grpc_auth_context_set_peer_identity_property_name(grpc_auth_context *ctx, const char *name)</div><div class="ttdoc">Sets the property name.</div></div>
<div class="ttc" id="astructgrpc__auth__property__iterator_html_a971904d29fa6f6ca6a853d078cae2f58"><div class="ttname"><a href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58">grpc_auth_property_iterator::ctx</a></div><div class="ttdeci">const grpc_auth_context * ctx</div><div class="ttdef"><b>Definition:</b> grpc_security.h:38</div></div>
<div class="ttc" id="astructgrpc__auth__property_html_a83fb830ffe7321265dc9b628e9246a27"><div class="ttname"><a href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27">grpc_auth_property::name</a></div><div class="ttdeci">char * name</div><div class="ttdef"><b>Definition:</b> grpc_security.h:45</div></div>
<div class="ttc" id="astructgrpc__auth__property__iterator_html"><div class="ttname"><a href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a></div><div class="ttdef"><b>Definition:</b> grpc_security.h:37</div></div>
<div class="ttc" id="agrpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
<div class="ttc" id="agrpc__types_8h_html_a122f8f4f0a585396d993d9b55848f222"><div class="ttname"><a href="grpc__types_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a></div><div class="ttdeci">struct grpc_call grpc_call</div><div class="ttdoc">A Call represents an RPC.</div><div class="ttdef"><b>Definition:</b> grpc_types.h:69</div></div>
<div class="ttc" id="astructgrpc__auth__property_html_a07359a178c29240cab42a89ef047b101"><div class="ttname"><a href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101">grpc_auth_property::value_length</a></div><div class="ttdeci">size_t value_length</div><div class="ttdef"><b>Definition:</b> grpc_security.h:47</div></div>
<div class="ttc" id="agrpc__security_8h_html_a73068ca89b430bb9004f8c3e86a2886a"><div class="ttname"><a href="grpc__security_8h.html#a73068ca89b430bb9004f8c3e86a2886a">grpc_auth_context_add_cstring_property</a></div><div class="ttdeci">GRPCAPI void grpc_auth_context_add_cstring_property(grpc_auth_context *ctx, const char *name, const char *value)</div><div class="ttdoc">Add a C string property.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a3c1860cddc9edaa7f657a98a35b77e80"><div class="ttname"><a href="grpc__security_8h.html#a3c1860cddc9edaa7f657a98a35b77e80">grpc_call_auth_context</a></div><div class="ttdeci">GRPCAPI grpc_auth_context * grpc_call_auth_context(grpc_call *call)</div><div class="ttdoc">Gets the auth context from the call.</div></div>
<div class="ttc" id="astructgrpc__auth__property_html_af44f45ac4673a0298d00354c47d0907e"><div class="ttname"><a href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e">grpc_auth_property::value</a></div><div class="ttdeci">char * value</div><div class="ttdef"><b>Definition:</b> grpc_security.h:46</div></div>
<div class="ttc" id="agrpc_2credentials_8h_html_aa13f0724cb7ff99995d7f0881c01d553"><div class="ttname"><a href="grpc_2credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a></div><div class="ttdeci">struct grpc_auth_context grpc_auth_context</div><div class="ttdef"><b>Definition:</b> credentials.h:39</div></div>
<div class="ttc" id="astructgrpc__auth__property_html"><div class="ttname"><a href="structgrpc__auth__property.html">grpc_auth_property</a></div><div class="ttdoc">value, if not NULL, is guaranteed to be NULL terminated.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:44</div></div>
<div class="ttc" id="agrpc__security_8h_html_aedee02a7f6ed58e9bd41b00a518350c2"><div class="ttname"><a href="grpc__security_8h.html#aedee02a7f6ed58e9bd41b00a518350c2">grpc_auth_context_property_iterator</a></div><div class="ttdeci">GRPCAPI grpc_auth_property_iterator grpc_auth_context_property_iterator(const grpc_auth_context *ctx)</div><div class="ttdoc">Iterates over the auth context.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a0a971586c2e177c739bfe180ef440d21"><div class="ttname"><a href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a></div><div class="ttdeci">struct grpc_authorization_policy_provider grpc_authorization_policy_provider</div><div class="ttdoc">EXPERIMENTAL - Subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:109</div></div>
<div class="ttc" id="agrpc__security_8h_html_a4d6409cf4a261297cd327bd49e72fcea"><div class="ttname"><a href="grpc__security_8h.html#a4d6409cf4a261297cd327bd49e72fcea">grpc_auth_context_peer_identity</a></div><div class="ttdeci">GRPCAPI grpc_auth_property_iterator grpc_auth_context_peer_identity(const grpc_auth_context *ctx)</div><div class="ttdoc">Gets the peer identity.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a7baf4df54030f3d5c7afb562e6cecf4d"><div class="ttname"><a href="grpc__security_8h.html#a7baf4df54030f3d5c7afb562e6cecf4d">grpc_authorization_policy_provider_static_data_create</a></div><div class="ttdeci">GRPCAPI grpc_authorization_policy_provider * grpc_authorization_policy_provider_static_data_create(const char *authz_policy, grpc_status_code *code, const char **error_details)</div><div class="ttdoc">EXPERIMENTAL - Subject to change.</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html"><div class="ttname"><a href="grpc__security__constants_8h.html">grpc_security_constants.h</a></div></div>
<div class="ttc" id="agrpc__security_8h_html_a93f543166de70abb3a725bdca1d79996"><div class="ttname"><a href="grpc__security_8h.html#a93f543166de70abb3a725bdca1d79996">grpc_auth_context_add_property</a></div><div class="ttdeci">GRPCAPI void grpc_auth_context_add_property(grpc_auth_context *ctx, const char *name, const char *value, size_t value_length)</div><div class="ttdoc"> The following auth context methods should only be called by a server metadata</div></div>
<div class="ttc" id="agrpc__security_8h_html_acf812326f742584f336b3777dba08f11"><div class="ttname"><a href="grpc__security_8h.html#acf812326f742584f336b3777dba08f11">grpc_auth_context_peer_identity_property_name</a></div><div class="ttdeci">const GRPCAPI char * grpc_auth_context_peer_identity_property_name(const grpc_auth_context *ctx)</div><div class="ttdoc">Gets the name of the property that indicates the peer identity.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a9d3ce2db2aa6fb1c21dd2789ee7c2d18"><div class="ttname"><a href="grpc__security_8h.html#a9d3ce2db2aa6fb1c21dd2789ee7c2d18">grpc_auth_context_find_properties_by_name</a></div><div class="ttdeci">GRPCAPI grpc_auth_property_iterator grpc_auth_context_find_properties_by_name(const grpc_auth_context *ctx, const char *name)</div><div class="ttdoc">Finds a property in the context.</div></div>
<div class="ttc" id="astructgrpc__auth__property__iterator_html_ac2b2a0501f097562a6d8856e3da5e7e6"><div class="ttname"><a href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6">grpc_auth_property_iterator::index</a></div><div class="ttdeci">size_t index</div><div class="ttdef"><b>Definition:</b> grpc_security.h:39</div></div>
<div class="ttc" id="agrpc__security_8h_html_a5367215eba06ef320f4999abc378e663"><div class="ttname"><a href="grpc__security_8h.html#a5367215eba06ef320f4999abc378e663">grpc_authorization_policy_provider_release</a></div><div class="ttdeci">GRPCAPI void grpc_authorization_policy_provider_release(grpc_authorization_policy_provider *provider)</div><div class="ttdoc">EXPERIMENTAL - Subject to change.</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri May 17 2024 01:17:15 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>