grpc/cpp/grpc__security_8h_source.html

777 lines
195 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.58.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;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&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;stdbool.h&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</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="l00027"></a><span class="lineno"> 27</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="l00028"></a><span class="lineno"> 28</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="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553"> 36</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html"> 38</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="l00039"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58"> 39</a></span>&#160; <span class="keyword">const</span> <a class="code" href="grpc__security_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="l00040"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6"> 40</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="l00041"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7"> 41</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="l00042"></a><span class="lineno"> 42</span>&#160;} <a class="code" href="grpc__security_8h.html#aecf098f41bfd613c4c62ea2a963a7a23">grpc_auth_property_iterator</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html"> 45</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="l00046"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27"> 46</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="l00047"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e"> 47</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="l00048"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101"> 48</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="l00049"></a><span class="lineno"> 49</span>&#160;} <a class="code" href="grpc__security_8h.html#a7ddc1f2acf756950cc6c697c99f3e048">grpc_auth_property</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>* it);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</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="l00057"></a><span class="lineno"> 57</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__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</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="l00062"></a><span class="lineno"> 62</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__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</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="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc__security_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="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</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="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</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="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_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="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</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__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* context);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</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__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx,</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</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="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">size_t</span> value_length);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</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__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* ctx,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* name,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</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="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="grpc__security_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="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a7008e76d9e21a435a03267390c6f8a37"> 110</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a> <a class="code" href="grpc__security_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>* <a class="code" href="grpc__security_8h.html#ae175e13bfcab1b77f4cc7f193d898aff">grpc_ssl_session_cache_create_lru</a>(</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">size_t</span> capacity);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</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#a3f83f8a3390b8b1659b719b7f47005a1">grpc_ssl_session_cache_destroy</a>(<a class="code" href="grpc__security_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>* cache);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__arg.html">grpc_arg</a></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<a class="code" href="grpc__security_8h.html#a4fd0dd05b90f7dcebaaacf8a0088c46f">grpc_ssl_session_cache_create_channel_arg</a>(<a class="code" href="grpc__security_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>* cache);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072"> 130</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</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#aeb21611154f3defe05e4eac4cc25af5a">grpc_call_credentials_release</a>(<a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* creds);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#a42f9cca6c01fb5d8c03c4c1e1b0fbf82">grpc_google_default_credentials_create</a>(</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* call_credentials);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a81799db566912702502c280b163b12bc"> 163</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="grpc__security__constants_8h.html#a90c47ae1d8c33145342170fe615fa68c">grpc_ssl_roots_override_result</a> (*<a class="code" href="grpc__security_8h.html#a81799db566912702502c280b163b12bc">grpc_ssl_roots_override_callback</a>)(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">char</span>** pem_root_certs);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</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#a44c23e47832d9cc27bb56822d66bf436">grpc_set_ssl_roots_override_callback</a>(</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="grpc__security_8h.html#a81799db566912702502c280b163b12bc">grpc_ssl_roots_override_callback</a> cb);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html"> 175</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72"> 178</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">private_key</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656"> 182</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">cert_chain</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;} <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structverify__peer__options.html"> 189</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structverify__peer__options.html#afdb80b6131d0d3775010e96efcf062a3"> 196</a></span>&#160; int (*verify_peer_callback)(<span class="keyword">const</span> <span class="keywordtype">char</span>* target_name, <span class="keyword">const</span> <span class="keywordtype">char</span>* peer_pem,</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="structverify__peer__options.html#a11ac6021676266d96b66538545d277cc"> 200</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structverify__peer__options.html#a11ac6021676266d96b66538545d277cc">verify_peer_callback_userdata</a>;</div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structverify__peer__options.html#a7dd670d8234469ba71e25a76f07caa68"> 204</a></span>&#160; void (*verify_peer_destruct)(<span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;} <a class="code" href="structverify__peer__options.html">verify_peer_options</a>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html"> 209</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html#a8923d0f5340c92f28e2937ed78859489"> 216</a></span>&#160; int (*verify_peer_callback)(<span class="keyword">const</span> <span class="keywordtype">char</span>* target_name, <span class="keyword">const</span> <span class="keywordtype">char</span>* peer_pem,</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html#a6700c305b4af601ba4a38c05f8a9c898"> 220</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__ssl__verify__peer__options.html#a6700c305b4af601ba4a38c05f8a9c898">verify_peer_callback_userdata</a>;</div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html#a3c2e0c9f822bf4f55a105006ab6d9de4"> 224</a></span>&#160; void (*verify_peer_destruct)(<span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;} <a class="code" href="structgrpc__ssl__verify__peer__options.html">grpc_ssl_verify_peer_options</a>;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#a7440216a2192f7c5ecadf5704e7c7bda">grpc_ssl_credentials_create</a>(</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pair,</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">const</span> <a class="code" href="structverify__peer__options.html">verify_peer_options</a>* verify_options, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">/* Creates an SSL credentials object.</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> The security level of the resulting connection is GRPC_PRIVACY_AND_INTEGRITY.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> - pem_root_certs is the NULL-terminated string containing the PEM encoding</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> of the server root certificates. If this parameter is NULL, the</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> implementation will first try to dereference the file pointed by the</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable, and if that fails,</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"> try to get the roots set by grpc_override_ssl_default_roots. Eventually,</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> if all these fail, it will try to get the roots from a well-known place on</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> disk (in the grpc install directory).</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> gRPC has implemented root cache if the underlying OpenSSL library supports</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> it. The gRPC root certificates cache is only applicable on the default</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"> root certificates, which is used when this parameter is nullptr. If user</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment"> provides their own pem_root_certs, when creating an SSL credential object,</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment"> gRPC would not be able to cache it, and each subchannel will generate a</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"> copy of the root store. So it is recommended to avoid providing large room</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> pem with pem_root_certs parameter to avoid excessive memory consumption,</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment"> particularly on mobile platforms such as iOS.</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"> - pem_key_cert_pair is a pointer on the object containing client&#39;s private</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> key and certificate chain. This parameter can be NULL if the client does</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> not have such a key/cert pair.</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"> - verify_options is an optional verify_peer_options object which holds</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment"> additional options controlling how peer certificates are verified. For</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment"> example, you can supply a callback which receives the peer&#39;s certificate</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment"> with which you can do additional verification. Can be NULL, in which</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> case verification will retain default behavior. Any settings in</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> verify_options are copied during this call, so the verify_options</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> object can be released afterwards. */</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#a57e477a6fdd9a6a66cc37614701d9088">grpc_ssl_credentials_create_ex</a>(</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pair,</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__ssl__verify__peer__options.html">grpc_ssl_verify_peer_options</a>* verify_options, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; </div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#a8e4b35968eac741831a708224e207348">grpc_composite_channel_credentials_create</a>(</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* channel_creds, <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* call_creds,</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#a5fb84795d5b0306006fdb8d316262a82">grpc_composite_call_credentials_create</a>(</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* creds1, <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* creds2,</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#af66841ff2c26a95ff9cd18ea2cdf38cb">grpc_google_compute_engine_credentials_create</a>(</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; </div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgpr__timespec.html">gpr_timespec</a> <a class="code" href="grpc__security_8h.html#a4274ad26c037943386451f437c768961">grpc_max_auth_token_lifetime</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>*</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<a class="code" href="grpc__security_8h.html#ae8c4bf6c9657d6e19ea1481c1ea9a5d5">grpc_service_account_jwt_access_credentials_create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* json_key,</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="structgpr__timespec.html">gpr_timespec</a> token_lifetime,</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#afd7a8c73d8426bba563130f33252bfcb">grpc_external_account_credentials_create</a>(</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* json_string, <span class="keyword">const</span> <span class="keywordtype">char</span>* scopes_string);</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#aa2108431aea25ab0e9bef17becff7357">grpc_google_refresh_token_credentials_create</a>(</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* json_refresh_token, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; </div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#aa64d5173a15c51fdb2d80c3c187157ca">grpc_access_token_credentials_create</a>(</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* access_token, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#a060719c0b294858858dbf41b7ec2abb5">grpc_google_iam_credentials_create</a>(</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* authorization_token, <span class="keyword">const</span> <span class="keywordtype">char</span>* authority_selector,</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html"> 357</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#ac40c27040b88f70a8a51e5a854eee68d"> 358</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#ac40c27040b88f70a8a51e5a854eee68d">token_exchange_service_uri</a>; <span class="comment">/* Required. */</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#acccf3e0c9f7f8865718fbb8e51f2d5ab"> 359</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#acccf3e0c9f7f8865718fbb8e51f2d5ab">resource</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a91d3976529603354ce8bdf92394ef074"> 360</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a91d3976529603354ce8bdf92394ef074">audience</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a1da17c75496e5debe7b89d3f43fc511b"> 361</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a1da17c75496e5debe7b89d3f43fc511b">scope</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a139402921fe862ba5c177d28c3d1ea90"> 362</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a139402921fe862ba5c177d28c3d1ea90">requested_token_type</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a26907053e134770f20c2e3506a7b3979"> 363</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a26907053e134770f20c2e3506a7b3979">subject_token_path</a>; <span class="comment">/* Required. */</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a467b1184da37adc95e8180b66a3a628f"> 364</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a467b1184da37adc95e8180b66a3a628f">subject_token_type</a>; <span class="comment">/* Required. */</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a6085040c96239e50ee0650bd92b2a972"> 365</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a6085040c96239e50ee0650bd92b2a972">actor_token_path</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a238c61ccc9d4b8091d34a6e525290a4c"> 366</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a238c61ccc9d4b8091d34a6e525290a4c">actor_token_type</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;} <a class="code" href="structgrpc__sts__credentials__options.html">grpc_sts_credentials_options</a>;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#aa207ea7a0454b657fa79567784ff5cbf">grpc_sts_credentials_create</a>(</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__sts__credentials__options.html">grpc_sts_credentials_options</a>* options, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a08c13ff956af9e64b514c4af434faba2"> 387</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="grpc__security_8h.html#a08c13ff956af9e64b514c4af434faba2">grpc_credentials_plugin_metadata_cb</a>)(</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordtype">void</span>* user_data, <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* creds_md, <span class="keywordtype">size_t</span> num_creds_md,</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status, <span class="keyword">const</span> <span class="keywordtype">char</span>* error_details);</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html"> 393</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#a67ff8c2ebf38b5511da3d3194d72e01d"> 395</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__auth__metadata__context.html#a67ff8c2ebf38b5511da3d3194d72e01d">service_url</a>;</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#ad031faf41efeaae29c4f71d67a0d2cb3"> 400</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__auth__metadata__context.html#ad031faf41efeaae29c4f71d67a0d2cb3">method_name</a>;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; </div>
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#a7cb596d3af7463816fdde64f3e18dbde"> 403</a></span>&#160; <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* <a class="code" href="structgrpc__auth__metadata__context.html#a7cb596d3af7463816fdde64f3e18dbde">channel_auth_context</a>;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div>
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#a0ca2d1c0da619c1e50cef8437f1ef517"> 406</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__auth__metadata__context.html#a0ca2d1c0da619c1e50cef8437f1ef517">reserved</a>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;} <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</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#a7bc183a37ed9e5bda69952d1516c6a1e">grpc_auth_metadata_context_copy</a>(<a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>* from,</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>* to);</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</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#acfe9bcde4b5e10a77901c1900a2ad86f">grpc_auth_metadata_context_reset</a>(</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>* context);</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a33e259900dbbac0ea018352adf1a4af7"> 419</a></span>&#160;<span class="preprocessor">#define GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX 4</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; </div>
<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html"> 426</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#af8506ea31e5709124899e4e406b4a9f1"> 445</a></span>&#160; int (*get_metadata)(</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">void</span>* state, <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a> context,</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="grpc__security_8h.html#a08c13ff956af9e64b514c4af434faba2">grpc_credentials_plugin_metadata_cb</a> cb, <span class="keywordtype">void</span>* user_data,</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="structgrpc__metadata.html">grpc_metadata</a> creds_md[<a class="code" href="grpc__security_8h.html#a33e259900dbbac0ea018352adf1a4af7">GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX</a>],</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordtype">size_t</span>* num_creds_md, <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* status,</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** error_details);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; </div>
<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a58e0aae253e35575146dc6b3252e8f55"> 454</a></span>&#160; <span class="keywordtype">char</span>* (*debug_string)(<span class="keywordtype">void</span>* state);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; </div>
<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a445b45204d00f76d957a6065cc117cc6"> 457</a></span>&#160; void (*destroy)(<span class="keywordtype">void</span>* state);</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; </div>
<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a3b571f8cbf3cffd887dec1ed5a662571"> 460</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__metadata__credentials__plugin.html#a3b571f8cbf3cffd887dec1ed5a662571">state</a>;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; </div>
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a6c02843e7eff42cb3b397800bd64f2dc"> 463</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__metadata__credentials__plugin.html#a6c02843e7eff42cb3b397800bd64f2dc">type</a>;</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;} <a class="code" href="structgrpc__metadata__credentials__plugin.html">grpc_metadata_credentials_plugin</a>;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; </div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="grpc__security_8h.html#a510d270c67754176117dcc384cb3d44f">grpc_metadata_credentials_create_from_plugin</a>(</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <a class="code" href="structgrpc__metadata__credentials__plugin.html">grpc_metadata_credentials_plugin</a> plugin,</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a3c3165c49cd7a359ddb8656aae7e9dd6">grpc_security_level</a> min_security_level, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; </div>
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f"> 476</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>*</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<a class="code" href="grpc__security_8h.html#a0fbb46fa71b635516037e6b265f937f5">grpc_ssl_server_certificate_config_create</a>(</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs,</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pairs,</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordtype">size_t</span> num_key_cert_pairs);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</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#a077c39db13d0211eac9c6a952882bc31">grpc_ssl_server_certificate_config_destroy</a>(</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>* config);</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; </div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="keyword">typedef</span> <a class="code" href="grpc__security__constants_8h.html#a4f19e93998bbda68d9c24f27673ff627">grpc_ssl_certificate_config_reload_status</a> (</div>
<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a8c5f064d7d008bc46fa61e87d68898f3"> 506</a></span>&#160; *<a class="code" href="grpc__security_8h.html#a8c5f064d7d008bc46fa61e87d68898f3">grpc_ssl_server_certificate_config_callback</a>)(</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordtype">void</span>* user_data, <a class="code" href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>** config);</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; </div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="grpc__security_8h.html#adde6c7d191f88997fd82fd8b54f9420e">grpc_ssl_server_credentials_create</a>(</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pairs,</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordtype">size_t</span> num_key_cert_pairs, <span class="keywordtype">int</span> force_client_auth, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; </div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="grpc__security_8h.html#a5f8a4204d09f2b10a3986d25b6583a08">grpc_ssl_server_credentials_create_ex</a>(</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pairs,</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordtype">size_t</span> num_key_cert_pairs,</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> client_certificate_request,</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; </div>
<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8"> 535</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; </div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>*</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<a class="code" href="grpc__security_8h.html#a019828123e4b76b8a13f7d8045396d28">grpc_ssl_server_credentials_create_options_using_config</a>(</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> client_certificate_request,</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>* certificate_config);</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; </div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>*</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<a class="code" href="grpc__security_8h.html#a0bef5efe91a84e2c74b031759a9a7313">grpc_ssl_server_credentials_create_options_using_config_fetcher</a>(</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> client_certificate_request,</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="grpc__security_8h.html#a8c5f064d7d008bc46fa61e87d68898f3">grpc_ssl_server_certificate_config_callback</a> cb, <span class="keywordtype">void</span>* user_data);</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; </div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</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#aa22779b6b4ffefc0efdaf8de4c8314a8">grpc_ssl_server_credentials_options_destroy</a>(</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <a class="code" href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>* options);</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; </div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>*</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<a class="code" href="grpc__security_8h.html#aec838ac89bd393040f0c88dad25a72ca">grpc_ssl_server_credentials_create_with_options</a>(</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>* options);</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; </div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="code" href="grpc__security_8h.html#ab065a653f78111065e91a579fd2ce2d2">grpc_call_set_credentials</a>(<a class="code" href="grpc__types_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a>* call,</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* creds);</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; </div>
<div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4"> 587</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="grpc__security_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4">grpc_process_auth_metadata_done_cb</a>)(</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordtype">void</span>* user_data, <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* consumed_md, <span class="keywordtype">size_t</span> num_consumed_md,</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* response_md, <span class="keywordtype">size_t</span> num_response_md,</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status, <span class="keyword">const</span> <span class="keywordtype">char</span>* error_details);</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; </div>
<div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html"> 593</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html#aac9b9b7b0057c688c19fd7c5a2f2d808"> 598</a></span>&#160; void (*process)(<span class="keywordtype">void</span>* state, <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* context,</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* md, <span class="keywordtype">size_t</span> num_md,</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <a class="code" href="grpc__security_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4">grpc_process_auth_metadata_done_cb</a> cb, <span class="keywordtype">void</span>* user_data);</div>
<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html#a33be2059783190555aee0edb42bca475"> 601</a></span>&#160; void (*destroy)(<span class="keywordtype">void</span>* state);</div>
<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html#af85de1293dfd5e846339d5ef4b7b41dc"> 602</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__auth__metadata__processor.html#af85de1293dfd5e846339d5ef4b7b41dc">state</a>;</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;} <a class="code" href="structgrpc__auth__metadata__processor.html">grpc_auth_metadata_processor</a>;</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; </div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</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#a37da13e43ccc9b19e9f1a6051feaedc3">grpc_server_credentials_set_auth_metadata_processor</a>(</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* creds, <a class="code" href="structgrpc__auth__metadata__processor.html">grpc_auth_metadata_processor</a> processor);</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; </div>
<div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f"> 618</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a> <a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>;</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; </div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>*</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<a class="code" href="grpc__security_8h.html#adfe1c1af2f1ad4c241748f77b7f83585">grpc_alts_credentials_client_options_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; </div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>*</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<a class="code" href="grpc__security_8h.html#a2d689961c79ceaf254e7ba211ebe9b34">grpc_alts_credentials_server_options_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; </div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</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#a9915a0aad4c5b287af506f1ebe3ad505">grpc_alts_credentials_client_options_add_target_service_account</a>(</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* service_account);</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; </div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</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#a3a78f4ff1575a2c9e4a3d547b9aa2bb0">grpc_alts_credentials_options_destroy</a>(</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options);</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#ade3f89f1532e030b8f2afcf0df17b2fe">grpc_alts_credentials_create</a>(</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options);</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; </div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="grpc__security_8h.html#a5dde4a563a9f7b8b1fc595ecd8d357fa">grpc_alts_server_credentials_create</a>(</div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options);</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; </div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#a6c5c11ac702b466c9dd0773cff01e72f">grpc_local_credentials_create</a>(</div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a31d00ce5c064e1fff4261a6d6298dc11">grpc_local_connect_type</a> type);</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; </div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="grpc__security_8h.html#a39e8a41f7f9a8d7587343964b18fc464">grpc_local_server_credentials_create</a>(</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a31d00ce5c064e1fff4261a6d6298dc11">grpc_local_connect_type</a> type);</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; </div>
<div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be"> 714</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a> <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>;</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; </div>
<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028"> 722</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a> <a class="code" href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>;</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; </div>
<div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279"> 730</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a> <a class="code" href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>;</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; </div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* <a class="code" href="grpc__security_8h.html#a2cc13f6f55eeada1179a10e4f57aa8ec">grpc_tls_identity_pairs_create</a>();</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; </div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</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#a68c742a2421c6078ae87fb421a1a1f47">grpc_tls_identity_pairs_add_pair</a>(<a class="code" href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* pairs,</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* private_key,</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* cert_chain);</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; </div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</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#ac0ad89ed7803b8b71ee7f0b8d7b86a51">grpc_tls_identity_pairs_destroy</a>(<a class="code" href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* pairs);</div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; </div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>*</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<a class="code" href="grpc__security_8h.html#af2bc85e32b46689f20d6b8fe78954146">grpc_tls_certificate_provider_static_data_create</a>(</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* root_certificate, <a class="code" href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* pem_key_cert_pairs);</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; </div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>*</div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<a class="code" href="grpc__security_8h.html#ab1e7fd62504654f44e2aa1be61a0e338">grpc_tls_certificate_provider_file_watcher_create</a>(</div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* private_key_path, <span class="keyword">const</span> <span class="keywordtype">char</span>* identity_certificate_path,</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* root_cert_path, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> refresh_interval_sec);</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; </div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</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#aa224b04c356727ee0ea74e255e942b07">grpc_tls_certificate_provider_release</a>(</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>* provider);</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; </div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* <a class="code" href="grpc__security_8h.html#acf9de635e67ef9b6b41a3b72ebdbdcfc">grpc_tls_credentials_options_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; </div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</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#ad90140b3fe36a84b96a6a47ad7da77a7">grpc_tls_credentials_options_set_certificate_provider</a>(</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options,</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <a class="code" href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>* provider);</div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; </div>
<div class="line"><a name="l00840"></a><span class="lineno"> 840</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#a8ff29ccc59d1f44abb524641f4c93abb">grpc_tls_credentials_options_watch_root_certs</a>(</div>
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; </div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</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#a1e5ce0bf79a2a373b68a8d1d7e80dae2">grpc_tls_credentials_options_set_root_cert_name</a>(</div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* root_cert_name);</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; </div>
<div class="line"><a name="l00859"></a><span class="lineno"> 859</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#a3e087d3840d5d2d425a6253e8f2d3f82">grpc_tls_credentials_options_watch_identity_key_cert_pairs</a>(</div>
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; </div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</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#a740c02c53ed078ad1ceb499124c79342">grpc_tls_credentials_options_set_identity_cert_name</a>(</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* identity_cert_name);</div>
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; </div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</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#a0d667304bfe61aaa0c83ef5fc739b67b">grpc_tls_credentials_options_set_cert_request_type</a>(</div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options,</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> type);</div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</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#af185cf6d18cc63d0d2ba7df8348b4a23">grpc_tls_credentials_options_set_crl_directory</a>(</div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* crl_directory);</div>
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; </div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</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#a2a1bd0a20897756471d19c9adff72338">grpc_tls_credentials_options_set_verify_server_cert</a>(</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keywordtype">int</span> verify_server_cert);</div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; </div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</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#a865429446f46e48fd4729720b022e5bc">grpc_tls_credentials_options_set_send_client_ca_list</a>(</div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keywordtype">bool</span> send_client_ca_list);</div>
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; </div>
<div class="line"><a name="l00926"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request.html"> 926</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a> {</div>
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="comment">/* The target name of the server when the client initiates the connection. */</span></div>
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="comment">/* This field will be nullptr if on the server side. */</span></div>
<div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request.html#a6cef66348ced76d2eea1b3c1bf1d7fbe"> 929</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request.html#a6cef66348ced76d2eea1b3c1bf1d7fbe">target_name</a>;</div>
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="comment">/* The information contained in the certificate chain sent from the peer. */</span></div>
<div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html"> 931</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html">peer_info</a> {</div>
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="comment">/* The Common Name field on the peer leaf certificate. */</span></div>
<div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#ad1bfb09dd088bb196ac5f8abc358c8e0"> 933</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#ad1bfb09dd088bb196ac5f8abc358c8e0">common_name</a>;</div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="comment">/* The list of Subject Alternative Names on the peer leaf certificate. */</span></div>
<div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html"> 935</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html">san_names</a> {</div>
<div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a11297f5671b82f9dc3096bc0fa5d9bfb"> 936</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a11297f5671b82f9dc3096bc0fa5d9bfb">uri_names</a>;</div>
<div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a0747ae40496f2027313790cb6d9954fe"> 937</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a0747ae40496f2027313790cb6d9954fe">uri_names_size</a>;</div>
<div class="line"><a name="l00938"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8644b73e936abdbae4bc1ad6ab630cf9"> 938</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8644b73e936abdbae4bc1ad6ab630cf9">dns_names</a>;</div>
<div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#abb2c27c41795f8e84502c50fbdeae3cb"> 939</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#abb2c27c41795f8e84502c50fbdeae3cb">dns_names_size</a>;</div>
<div class="line"><a name="l00940"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#af00cc98ef4ae7dcbc8e40834dd8ca930"> 940</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#af00cc98ef4ae7dcbc8e40834dd8ca930">email_names</a>;</div>
<div class="line"><a name="l00941"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a7b0ec0120e9ca5856329009e8be5ce07"> 941</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a7b0ec0120e9ca5856329009e8be5ce07">email_names_size</a>;</div>
<div class="line"><a name="l00942"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8174afb41e1dca8688e0208e5beb1364"> 942</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8174afb41e1dca8688e0208e5beb1364">ip_names</a>;</div>
<div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#ad900dfa0e946edbef22f71e482ec665c"> 943</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#ad900dfa0e946edbef22f71e482ec665c">ip_names_size</a>;</div>
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; } <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a61cc5140744c3d8c37a503db430f8">san_names</a>;</div>
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="comment">/* The raw peer leaf certificate. */</span></div>
<div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a2a625f121217eff4459c12d5263e5"> 946</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a2a625f121217eff4459c12d5263e5">peer_cert</a>;</div>
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="comment">/* The raw peer certificate chain. Note that it is not always guaranteed to</span></div>
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="comment"> * get the peer full chain. For more, please refer to</span></div>
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;<span class="comment"> * GRPC_X509_PEM_CERT_CHAIN_PROPERTY_NAME defined in file</span></div>
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;<span class="comment"> * grpc_security_constants.h.</span></div>
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;<span class="comment"> * TODO(ZhenLian): Consider fixing this in the future. */</span></div>
<div class="line"><a name="l00952"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a59238e56ae0aefc6bf0c1e0c4698e970"> 952</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a59238e56ae0aefc6bf0c1e0c4698e970">peer_cert_full_chain</a>;</div>
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="comment">/* The verified root cert subject.</span></div>
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;<span class="comment"> * This value will only be filled if the cryptographic peer certificate</span></div>
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;<span class="comment"> * verification was successful */</span></div>
<div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a08df5fee5502f0830fce31741f67de31"> 956</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a08df5fee5502f0830fce31741f67de31">verified_root_cert_subject</a>;</div>
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; } <a class="code" href="structgrpc__tls__custom__verification__check__request.html#a90f27d860c67f1f61a39e964b06bfe13">peer_info</a>;</div>
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;} <a class="code" href="grpc__security_8h.html#aaac530cd68851c41b8817ec9749f5df1">grpc_tls_custom_verification_check_request</a>;</div>
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; </div>
<div class="line"><a name="l00969"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#acb2cccf44dad8776d1a0abbd36781ee7"> 969</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="grpc__security_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a>)(</div>
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request, <span class="keywordtype">void</span>* callback_arg,</div>
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status, <span class="keyword">const</span> <span class="keywordtype">char</span>* error_details);</div>
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; </div>
<div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138"> 978</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a> <a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>;</div>
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; </div>
<div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html"> 986</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__tls__certificate__verifier__external.html">grpc_tls_certificate_verifier_external</a> {</div>
<div class="line"><a name="l00987"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b"> 987</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>;</div>
<div class="line"><a name="l01021"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#a6eb957132a37782a572b5c2f0a3ee532"> 1021</a></span>&#160; int (*<a class="code" href="structgrpc__tls__certificate__verifier__external.html#a6eb957132a37782a572b5c2f0a3ee532">verify</a>)(<span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>,</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request,</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <a class="code" href="grpc__security_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a> callback,</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordtype">void</span>* callback_arg, <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* sync_status,</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordtype">char</span>** sync_error_details);</div>
<div class="line"><a name="l01041"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#ad107cc92fee39f42179f4ff647469db1"> 1041</a></span>&#160; void (*<a class="code" href="structgrpc__tls__certificate__verifier__external.html#ad107cc92fee39f42179f4ff647469db1">cancel</a>)(<span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>,</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request);</div>
<div class="line"><a name="l01060"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#ad8faa48358d0336a49d7a79c42204df5"> 1060</a></span>&#160; void (*<a class="code" href="structgrpc__tls__certificate__verifier__external.html#ad8faa48358d0336a49d7a79c42204df5">destruct</a>)(<span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>);</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;} <a class="code" href="grpc__security_8h.html#a02ce84a849538d46352f38553d1df8f1">grpc_tls_certificate_verifier_external</a>;</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; </div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* <a class="code" href="grpc__security_8h.html#a129d8fd8e77cde679368f6ae03f990d4">grpc_tls_certificate_verifier_external_create</a>(</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <a class="code" href="structgrpc__tls__certificate__verifier__external.html">grpc_tls_certificate_verifier_external</a>* external_verifier);</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* <a class="code" href="grpc__security_8h.html#a91c9dca2867decd1478590e7f5c380a4">grpc_tls_certificate_verifier_no_op_create</a>();</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; </div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* <a class="code" href="grpc__security_8h.html#a576605b5b21536662c29d135ee19e07b">grpc_tls_certificate_verifier_host_name_create</a>();</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; </div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a08134898a71be96ee8dec28202cb35c8">grpc_tls_certificate_verifier_release</a>(</div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier);</div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; </div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#ab769e5404a5eb2320c8303cfaa009a0b">grpc_tls_credentials_options_set_certificate_verifier</a>(</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options,</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier);</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; </div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</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#a65dc90782c79b436ec8b824f3ebf7de8">grpc_tls_credentials_options_set_check_call_host</a>(</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keywordtype">int</span> check_call_host);</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; </div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="keywordtype">int</span> <a class="code" href="grpc__security_8h.html#a58468125c41dff87e75921e9e24a3453">grpc_tls_certificate_verifier_verify</a>(</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier,</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request,</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <a class="code" href="grpc__security_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a> callback, <span class="keywordtype">void</span>* callback_arg,</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <a class="code" href="grpc_2status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* sync_status, <span class="keywordtype">char</span>** sync_error_details);</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; </div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a8650518e6108ff6ed8624e0c00f8a55c">grpc_tls_certificate_verifier_cancel</a>(</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <a class="code" href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier,</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request);</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; </div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#a823a0fe621fd8b638e560d84fac6fcee">grpc_tls_credentials_create</a>(</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; </div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="grpc__security_8h.html#a1ef8332e1edf68afd4cf5a8dda804de7">grpc_tls_server_credentials_create</a>(</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; </div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#a1102618931ed9019fcd46ea420d0d61e">grpc_insecure_credentials_create</a>();</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; </div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="grpc__security_8h.html#a13c18c9718b925cea457878eb93c4eea">grpc_insecure_server_credentials_create</a>();</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; </div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="grpc__security_8h.html#abc5db1c10eab731ca32f825c877fd5ce">grpc_xds_credentials_create</a>(</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* fallback_credentials);</div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; </div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="grpc__security_8h.html#a8c174b05503f727c5c020f0a6464da19">grpc_xds_server_credentials_create</a>(</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* fallback_credentials);</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; </div>
<div class="line"><a name="l01224"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21"> 1224</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="l01225"></a><span class="lineno"> 1225</span>&#160; <a class="code" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a>;</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; </div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</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="l01239"></a><span class="lineno"> 1239</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="l01240"></a><span class="lineno"> 1240</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="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** error_details);</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; </div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</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="l01257"></a><span class="lineno"> 1257</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="l01258"></a><span class="lineno"> 1258</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="l01259"></a><span class="lineno"> 1259</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="l01260"></a><span class="lineno"> 1260</span>&#160; </div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</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="l01267"></a><span class="lineno"> 1267</span>&#160; <a class="code" href="grpc__security_8h.html#a0a971586c2e177c739bfe180ef440d21">grpc_authorization_policy_provider</a>* provider);</div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; </div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</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#a50f8a772b8c673a67b7c640e51b840da">grpc_tls_credentials_options_set_tls_session_key_log_file_path</a>(</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <a class="code" href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* path);</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; </div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;}</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; </div>
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</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__arg_html"><div class="ttname"><a href="structgrpc__arg.html">grpc_arg</a></div><div class="ttdoc">A single argument...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:103</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a93a2a625f121217eff4459c12d5263e5"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a2a625f121217eff4459c12d5263e5">grpc_tls_custom_verification_check_request::peer_info::peer_cert</a></div><div class="ttdeci">const char * peer_cert</div><div class="ttdef"><b>Definition:</b> grpc_security.h:946</div></div>
<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:41</div></div>
<div class="ttc" id="agrpc__security_8h_html_ad90140b3fe36a84b96a6a47ad7da77a7"><div class="ttname"><a href="grpc__security_8h.html#ad90140b3fe36a84b96a6a47ad7da77a7">grpc_tls_credentials_options_set_certificate_provider</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_certificate_provider(grpc_tls_credentials_options *options, grpc_tls_certificate_provider *provider)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a3a78f4ff1575a2c9e4a3d547b9aa2bb0"><div class="ttname"><a href="grpc__security_8h.html#a3a78f4ff1575a2c9e4a3d547b9aa2bb0">grpc_alts_credentials_options_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_alts_credentials_options_destroy(grpc_alts_credentials_options *options)</div><div class="ttdoc">This method destroys a grpc_alts_credentials_options instance by de-allocating all of its occupied me...</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a59238e56ae0aefc6bf0c1e0c4698e970"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a59238e56ae0aefc6bf0c1e0c4698e970">grpc_tls_custom_verification_check_request::peer_info::peer_cert_full_chain</a></div><div class="ttdeci">const char * peer_cert_full_chain</div><div class="ttdef"><b>Definition:</b> grpc_security.h:952</div></div>
<div class="ttc" id="agrpc__security_8h_html_a33e259900dbbac0ea018352adf1a4af7"><div class="ttname"><a href="grpc__security_8h.html#a33e259900dbbac0ea018352adf1a4af7">GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX</a></div><div class="ttdeci">#define GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX</div><div class="ttdoc">Maximum number of metadata entries returnable by a credentials plugin via a synchronous return.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:419</div></div>
<div class="ttc" id="agrpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785b"><div class="ttname"><a href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a></div><div class="ttdeci">grpc_call_error</div><div class="ttdoc">Result of a grpc call.</div><div class="ttdef"><b>Definition:</b> grpc_types.h:141</div></div>
<div class="ttc" id="agrpc__security_8h_html_a57e477a6fdd9a6a66cc37614701d9088"><div class="ttname"><a href="grpc__security_8h.html#a57e477a6fdd9a6a66cc37614701d9088">grpc_ssl_credentials_create_ex</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_ssl_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const grpc_ssl_verify_peer_options *verify_options, void *reserved)</div></div>
<div class="ttc" id="astructverify__peer__options_html_a11ac6021676266d96b66538545d277cc"><div class="ttname"><a href="structverify__peer__options.html#a11ac6021676266d96b66538545d277cc">verify_peer_options::verify_peer_callback_userdata</a></div><div class="ttdeci">void * verify_peer_callback_userdata</div><div class="ttdoc">Arbitrary userdata that will be passed as the last argument to verify_peer_callback.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:200</div></div>
<div class="ttc" id="agrpc__security_8h_html_acb8bbd3a6006aee7f7b254d4a91d914f"><div class="ttname"><a href="grpc__security_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a></div><div class="ttdeci">struct grpc_ssl_server_certificate_config grpc_ssl_server_certificate_config</div><div class="ttdoc">Server certificate config object holds the server's public certificates and associated private keys,...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:476</div></div>
<div class="ttc" id="agrpc__security_8h_html_a08c13ff956af9e64b514c4af434faba2"><div class="ttname"><a href="grpc__security_8h.html#a08c13ff956af9e64b514c4af434faba2">grpc_credentials_plugin_metadata_cb</a></div><div class="ttdeci">void(* grpc_credentials_plugin_metadata_cb)(void *user_data, const grpc_metadata *creds_md, size_t num_creds_md, grpc_status_code status, const char *error_details)</div><div class="ttdoc">Callback function to be called by the metadata credentials plugin implementation when the metadata is...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:387</div></div>
<div class="ttc" id="agrpc__security_8h_html_a2cc13f6f55eeada1179a10e4f57aa8ec"><div class="ttname"><a href="grpc__security_8h.html#a2cc13f6f55eeada1179a10e4f57aa8ec">grpc_tls_identity_pairs_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_identity_pairs * grpc_tls_identity_pairs_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__ssl__verify__peer__options_html"><div class="ttname"><a href="structgrpc__ssl__verify__peer__options.html">grpc_ssl_verify_peer_options</a></div><div class="ttdoc">Object that holds additional peer-verification options on a secure channel.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:209</div></div>
<div class="ttc" id="agrpc__security_8h_html_aa13f0724cb7ff99995d7f0881c01d553"><div class="ttname"><a href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a></div><div class="ttdeci">struct grpc_auth_context grpc_auth_context</div><div class="ttdoc">— Authentication Context.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:36</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a26907053e134770f20c2e3506a7b3979"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a26907053e134770f20c2e3506a7b3979">grpc_sts_credentials_options::subject_token_path</a></div><div class="ttdeci">const char * subject_token_path</div><div class="ttdef"><b>Definition:</b> grpc_security.h:363</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_ad107cc92fee39f42179f4ff647469db1"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#ad107cc92fee39f42179f4ff647469db1">grpc_tls_certificate_verifier_external::cancel</a></div><div class="ttdeci">void(* cancel)(void *user_data, grpc_tls_custom_verification_check_request *request)</div><div class="ttdoc">A function pointer that cleans up the caller-specified resources when the verifier is still running b...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:1041</div></div>
<div class="ttc" id="agrpc__security_8h_html_a50f8a772b8c673a67b7c640e51b840da"><div class="ttname"><a href="grpc__security_8h.html#a50f8a772b8c673a67b7c640e51b840da">grpc_tls_credentials_options_set_tls_session_key_log_file_path</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_tls_session_key_log_file_path(grpc_tls_credentials_options *options, const char *path)</div><div class="ttdoc">— TLS session key logging.</div></div>
<div class="ttc" id="astructgrpc__ssl__pem__key__cert__pair_html_a2d4e3bdbc59d906bc9ca8b873120fd72"><div class="ttname"><a href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">grpc_ssl_pem_key_cert_pair::private_key</a></div><div class="ttdeci">const char * private_key</div><div class="ttdoc">private_key is the NULL-terminated string containing the PEM encoding of the client's private key.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:178</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="agrpc__security_8h_html_a019828123e4b76b8a13f7d8045396d28"><div class="ttname"><a href="grpc__security_8h.html#a019828123e4b76b8a13f7d8045396d28">grpc_ssl_server_credentials_create_options_using_config</a></div><div class="ttdeci">GRPCAPI grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config *certificate_config)</div><div class="ttdoc">Creates an options object using a certificate config.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a39e8a41f7f9a8d7587343964b18fc464"><div class="ttname"><a href="grpc__security_8h.html#a39e8a41f7f9a8d7587343964b18fc464">grpc_local_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_local_server_credentials_create(grpc_local_connect_type type)</div><div class="ttdoc">This method creates a local server credential object.</div></div>
<div class="ttc" id="astructgrpc__ssl__verify__peer__options_html_a6700c305b4af601ba4a38c05f8a9c898"><div class="ttname"><a href="structgrpc__ssl__verify__peer__options.html#a6700c305b4af601ba4a38c05f8a9c898">grpc_ssl_verify_peer_options::verify_peer_callback_userdata</a></div><div class="ttdeci">void * verify_peer_callback_userdata</div><div class="ttdoc">Arbitrary userdata that will be passed as the last argument to verify_peer_callback.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:220</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:657</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_acccf3e0c9f7f8865718fbb8e51f2d5ab"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#acccf3e0c9f7f8865718fbb8e51f2d5ab">grpc_sts_credentials_options::resource</a></div><div class="ttdeci">const char * resource</div><div class="ttdef"><b>Definition:</b> grpc_security.h:359</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_af00cc98ef4ae7dcbc8e40834dd8ca930"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#af00cc98ef4ae7dcbc8e40834dd8ca930">grpc_tls_custom_verification_check_request::peer_info::san_names::email_names</a></div><div class="ttdeci">char ** email_names</div><div class="ttdef"><b>Definition:</b> grpc_security.h:940</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html"><div class="ttname"><a href="structgrpc__sts__credentials__options.html">grpc_sts_credentials_options</a></div><div class="ttdoc">Options for creating STS Oauth Token Exchange credentials following the IETF draft https://tools....</div><div class="ttdef"><b>Definition:</b> grpc_security.h:357</div></div>
<div class="ttc" id="astructgrpc__metadata__credentials__plugin_html_a3b571f8cbf3cffd887dec1ed5a662571"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html#a3b571f8cbf3cffd887dec1ed5a662571">grpc_metadata_credentials_plugin::state</a></div><div class="ttdeci">void * state</div><div class="ttdoc">State that will be set as the first parameter of the methods above.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:460</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html_a4f19e93998bbda68d9c24f27673ff627"><div class="ttname"><a href="grpc__security__constants_8h.html#a4f19e93998bbda68d9c24f27673ff627">grpc_ssl_certificate_config_reload_status</a></div><div class="ttdeci">grpc_ssl_certificate_config_reload_status</div><div class="ttdoc">Callback results for dynamically loading a SSL certificate config.</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:73</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a91d3976529603354ce8bdf92394ef074"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a91d3976529603354ce8bdf92394ef074">grpc_sts_credentials_options::audience</a></div><div class="ttdeci">const char * audience</div><div class="ttdef"><b>Definition:</b> grpc_security.h:360</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html_a67ff8c2ebf38b5511da3d3194d72e01d"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#a67ff8c2ebf38b5511da3d3194d72e01d">grpc_auth_metadata_context::service_url</a></div><div class="ttdeci">const char * service_url</div><div class="ttdoc">The fully qualifed service url.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:395</div></div>
<div class="ttc" id="agrpc__security_8h_html_a060719c0b294858858dbf41b7ec2abb5"><div class="ttname"><a href="grpc__security_8h.html#a060719c0b294858858dbf41b7ec2abb5">grpc_google_iam_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_iam_credentials_create(const char *authorization_token, const char *authority_selector, void *reserved)</div><div class="ttdoc">Creates an IAM credentials object for connecting to Google.</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_ab769e5404a5eb2320c8303cfaa009a0b"><div class="ttname"><a href="grpc__security_8h.html#ab769e5404a5eb2320c8303cfaa009a0b">grpc_tls_credentials_options_set_certificate_verifier</a></div><div class="ttdeci">void grpc_tls_credentials_options_set_certificate_verifier(grpc_tls_credentials_options *options, grpc_tls_certificate_verifier *verifier)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a34b93b8c1e0dbdaae9dc11bbce706cb4"><div class="ttname"><a href="grpc__security_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4">grpc_process_auth_metadata_done_cb</a></div><div class="ttdeci">void(* grpc_process_auth_metadata_done_cb)(void *user_data, const grpc_metadata *consumed_md, size_t num_consumed_md, const grpc_metadata *response_md, size_t num_response_md, grpc_status_code status, const char *error_details)</div><div class="ttdoc">— Auth Metadata Processing —</div><div class="ttdef"><b>Definition:</b> grpc_security.h:587</div></div>
<div class="ttc" id="agrpc__security_8h_html_aa22779b6b4ffefc0efdaf8de4c8314a8"><div class="ttname"><a href="grpc__security_8h.html#aa22779b6b4ffefc0efdaf8de4c8314a8">grpc_ssl_server_credentials_options_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_ssl_server_credentials_options_destroy(grpc_ssl_server_credentials_options *options)</div><div class="ttdoc">Destroys a grpc_ssl_server_credentials_options object.</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_aa224b04c356727ee0ea74e255e942b07"><div class="ttname"><a href="grpc__security_8h.html#aa224b04c356727ee0ea74e255e942b07">grpc_tls_certificate_provider_release</a></div><div class="ttdeci">GRPCAPI void grpc_tls_certificate_provider_release(grpc_tls_certificate_provider *provider)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_ad1bfb09dd088bb196ac5f8abc358c8e0"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#ad1bfb09dd088bb196ac5f8abc358c8e0">grpc_tls_custom_verification_check_request::peer_info::common_name</a></div><div class="ttdeci">const char * common_name</div><div class="ttdef"><b>Definition:</b> grpc_security.h:933</div></div>
<div class="ttc" id="agrpc__security_8h_html_a510d270c67754176117dcc384cb3d44f"><div class="ttname"><a href="grpc__security_8h.html#a510d270c67754176117dcc384cb3d44f">grpc_metadata_credentials_create_from_plugin</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_metadata_credentials_create_from_plugin(grpc_metadata_credentials_plugin plugin, grpc_security_level min_security_level, void *reserved)</div><div class="ttdoc">Creates a credentials object from a plugin with a specified minimum security level.</div></div>
<div class="ttc" id="agrpc__security_8h_html_ac0ad89ed7803b8b71ee7f0b8d7b86a51"><div class="ttname"><a href="grpc__security_8h.html#ac0ad89ed7803b8b71ee7f0b8d7b86a51">grpc_tls_identity_pairs_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_tls_identity_pairs_destroy(grpc_tls_identity_pairs *pairs)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a65dc90782c79b436ec8b824f3ebf7de8"><div class="ttname"><a href="grpc__security_8h.html#a65dc90782c79b436ec8b824f3ebf7de8">grpc_tls_credentials_options_set_check_call_host</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_check_call_host(grpc_tls_credentials_options *options, int check_call_host)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_af66841ff2c26a95ff9cd18ea2cdf38cb"><div class="ttname"><a href="grpc__security_8h.html#af66841ff2c26a95ff9cd18ea2cdf38cb">grpc_google_compute_engine_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_compute_engine_credentials_create(void *reserved)</div><div class="ttdoc">Creates a compute engine credentials object for connecting to Google.</div></div>
<div class="ttc" id="agrpc__security_8h_html_aaac530cd68851c41b8817ec9749f5df1"><div class="ttname"><a href="grpc__security_8h.html#aaac530cd68851c41b8817ec9749f5df1">grpc_tls_custom_verification_check_request</a></div><div class="ttdeci">struct grpc_tls_custom_verification_check_request grpc_tls_custom_verification_check_request</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_aeb21611154f3defe05e4eac4cc25af5a"><div class="ttname"><a href="grpc__security_8h.html#aeb21611154f3defe05e4eac4cc25af5a">grpc_call_credentials_release</a></div><div class="ttdeci">GRPCAPI void grpc_call_credentials_release(grpc_call_credentials *creds)</div><div class="ttdoc">Releases a call credentials object.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a68c742a2421c6078ae87fb421a1a1f47"><div class="ttname"><a href="grpc__security_8h.html#a68c742a2421c6078ae87fb421a1a1f47">grpc_tls_identity_pairs_add_pair</a></div><div class="ttdeci">GRPCAPI void grpc_tls_identity_pairs_add_pair(grpc_tls_identity_pairs *pairs, const char *private_key, const char *cert_chain)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a823a0fe621fd8b638e560d84fac6fcee"><div class="ttname"><a href="grpc__security_8h.html#a823a0fe621fd8b638e560d84fac6fcee">grpc_tls_credentials_create</a></div><div class="ttdeci">grpc_channel_credentials * grpc_tls_credentials_create(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a8ff29ccc59d1f44abb524641f4c93abb"><div class="ttname"><a href="grpc__security_8h.html#a8ff29ccc59d1f44abb524641f4c93abb">grpc_tls_credentials_options_watch_root_certs</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_watch_root_certs(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a5fb84795d5b0306006fdb8d316262a82"><div class="ttname"><a href="grpc__security_8h.html#a5fb84795d5b0306006fdb8d316262a82">grpc_composite_call_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_composite_call_credentials_create(grpc_call_credentials *creds1, grpc_call_credentials *creds2, void *reserved)</div><div class="ttdoc">— composite credentials.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a0fbb46fa71b635516037e6b265f937f5"><div class="ttname"><a href="grpc__security_8h.html#a0fbb46fa71b635516037e6b265f937f5">grpc_ssl_server_certificate_config_create</a></div><div class="ttdeci">GRPCAPI grpc_ssl_server_certificate_config * grpc_ssl_server_certificate_config_create(const char *pem_root_certs, const grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs)</div><div class="ttdoc">Creates a grpc_ssl_server_certificate_config object.</div></div>
<div class="ttc" id="agrpc__security_8h_html_acfe9bcde4b5e10a77901c1900a2ad86f"><div class="ttname"><a href="grpc__security_8h.html#acfe9bcde4b5e10a77901c1900a2ad86f">grpc_auth_metadata_context_reset</a></div><div class="ttdeci">GRPCAPI void grpc_auth_metadata_context_reset(grpc_auth_metadata_context *context)</div><div class="ttdoc">Releases internal resources held by context.</div></div>
<div class="ttc" id="agrpc__security_8h_html_acb2cccf44dad8776d1a0abbd36781ee7"><div class="ttname"><a href="grpc__security_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a></div><div class="ttdeci">void(* grpc_tls_on_custom_verification_check_done_cb)(grpc_tls_custom_verification_check_request *request, void *callback_arg, grpc_status_code status, const char *error_details)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:969</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="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a8644b73e936abdbae4bc1ad6ab630cf9"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8644b73e936abdbae4bc1ad6ab630cf9">grpc_tls_custom_verification_check_request::peer_info::san_names::dns_names</a></div><div class="ttdeci">char ** dns_names</div><div class="ttdef"><b>Definition:</b> grpc_security.h:938</div></div>
<div class="ttc" id="astructgrpc__ssl__pem__key__cert__pair_html_a483c3601705853f48dfbc8ee66d5e656"><div class="ttname"><a href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">grpc_ssl_pem_key_cert_pair::cert_chain</a></div><div class="ttdeci">const char * cert_chain</div><div class="ttdoc">cert_chain is the NULL-terminated string containing the PEM encoding of the client's certificate chai...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:182</div></div>
<div class="ttc" id="agrpc__security_8h_html_a740c02c53ed078ad1ceb499124c79342"><div class="ttname"><a href="grpc__security_8h.html#a740c02c53ed078ad1ceb499124c79342">grpc_tls_credentials_options_set_identity_cert_name</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_identity_cert_name(grpc_tls_credentials_options *options, const char *identity_cert_name)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a8650518e6108ff6ed8624e0c00f8a55c"><div class="ttname"><a href="grpc__security_8h.html#a8650518e6108ff6ed8624e0c00f8a55c">grpc_tls_certificate_verifier_cancel</a></div><div class="ttdeci">void grpc_tls_certificate_verifier_cancel(grpc_tls_certificate_verifier *verifier, grpc_tls_custom_verification_check_request *request)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_ae175e13bfcab1b77f4cc7f193d898aff"><div class="ttname"><a href="grpc__security_8h.html#ae175e13bfcab1b77f4cc7f193d898aff">grpc_ssl_session_cache_create_lru</a></div><div class="ttdeci">GRPCAPI grpc_ssl_session_cache * grpc_ssl_session_cache_create_lru(size_t capacity)</div><div class="ttdoc">Create LRU cache for client-side SSL sessions with the given capacity.</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_a37da13e43ccc9b19e9f1a6051feaedc3"><div class="ttname"><a href="grpc__security_8h.html#a37da13e43ccc9b19e9f1a6051feaedc3">grpc_server_credentials_set_auth_metadata_processor</a></div><div class="ttdeci">GRPCAPI void grpc_server_credentials_set_auth_metadata_processor(grpc_server_credentials *creds, grpc_auth_metadata_processor processor)</div></div>
<div class="ttc" id="agrpc__security_8h_html_aa64d5173a15c51fdb2d80c3c187157ca"><div class="ttname"><a href="grpc__security_8h.html#aa64d5173a15c51fdb2d80c3c187157ca">grpc_access_token_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_access_token_credentials_create(const char *access_token, void *reserved)</div><div class="ttdoc">Creates an Oauth2 Access Token credentials with an access token that was acquired by an out of band m...</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a93a61cc5140744c3d8c37a503db430f8"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a61cc5140744c3d8c37a503db430f8">grpc_tls_custom_verification_check_request::peer_info::san_names</a></div><div class="ttdeci">struct grpc_tls_custom_verification_check_request::peer_info::san_names san_names</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html_a0ca2d1c0da619c1e50cef8437f1ef517"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#a0ca2d1c0da619c1e50cef8437f1ef517">grpc_auth_metadata_context::reserved</a></div><div class="ttdeci">void * reserved</div><div class="ttdoc">Reserved for future use.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:406</div></div>
<div class="ttc" id="agrpc__security_8h_html_a1ef8332e1edf68afd4cf5a8dda804de7"><div class="ttname"><a href="grpc__security_8h.html#a1ef8332e1edf68afd4cf5a8dda804de7">grpc_tls_server_credentials_create</a></div><div class="ttdeci">grpc_server_credentials * grpc_tls_server_credentials_create(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</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="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html">grpc_tls_custom_verification_check_request::peer_info</a></div><div class="ttdef"><b>Definition:</b> grpc_security.h:931</div></div>
<div class="ttc" id="agrpc__security_8h_html_a7440216a2192f7c5ecadf5704e7c7bda"><div class="ttname"><a href="grpc__security_8h.html#a7440216a2192f7c5ecadf5704e7c7bda">grpc_ssl_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_ssl_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const verify_peer_options *verify_options, void *reserved)</div><div class="ttdoc">Deprecated in favor of grpc_ssl_server_credentials_create_ex.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a13c18c9718b925cea457878eb93c4eea"><div class="ttname"><a href="grpc__security_8h.html#a13c18c9718b925cea457878eb93c4eea">grpc_insecure_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_insecure_server_credentials_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_ae8c4bf6c9657d6e19ea1481c1ea9a5d5"><div class="ttname"><a href="grpc__security_8h.html#ae8c4bf6c9657d6e19ea1481c1ea9a5d5">grpc_service_account_jwt_access_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_service_account_jwt_access_credentials_create(const char *json_key, gpr_timespec token_lifetime, void *reserved)</div><div class="ttdoc">Creates a JWT credentials object.</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__metadata_html"><div class="ttname"><a href="structgrpc__metadata.html">grpc_metadata</a></div><div class="ttdoc">A single metadata element.</div><div class="ttdef"><b>Definition:</b> grpc_types.h:211</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a11297f5671b82f9dc3096bc0fa5d9bfb"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a11297f5671b82f9dc3096bc0fa5d9bfb">grpc_tls_custom_verification_check_request::peer_info::san_names::uri_names</a></div><div class="ttdeci">char ** uri_names</div><div class="ttdef"><b>Definition:</b> grpc_security.h:936</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html_ad031faf41efeaae29c4f71d67a0d2cb3"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#ad031faf41efeaae29c4f71d67a0d2cb3">grpc_auth_metadata_context::method_name</a></div><div class="ttdeci">const char * method_name</div><div class="ttdoc">The method name of the RPC being called (not fully qualified).</div><div class="ttdef"><b>Definition:</b> grpc_security.h:400</div></div>
<div class="ttc" id="agrpc__security_8h_html_ab7eb1d297905525b6c1f0508de55c028"><div class="ttname"><a href="grpc__security_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a></div><div class="ttdeci">struct grpc_tls_certificate_provider grpc_tls_certificate_provider</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:722</div></div>
<div class="ttc" id="agrpc__security_8h_html_a5f8a4204d09f2b10a3986d25b6583a08"><div class="ttname"><a href="grpc__security_8h.html#a5f8a4204d09f2b10a3986d25b6583a08">grpc_ssl_server_credentials_create_ex</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, grpc_ssl_client_certificate_request_type client_certificate_request, void *reserved)</div><div class="ttdoc">Deprecated in favor of grpc_ssl_server_credentials_create_with_options.</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:39</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html">grpc_tls_certificate_verifier_external</a></div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:986</div></div>
<div class="ttc" id="agrpc__security_8h_html_adfe1c1af2f1ad4c241748f77b7f83585"><div class="ttname"><a href="grpc__security_8h.html#adfe1c1af2f1ad4c241748f77b7f83585">grpc_alts_credentials_client_options_create</a></div><div class="ttdeci">GRPCAPI grpc_alts_credentials_options * grpc_alts_credentials_client_options_create(void)</div><div class="ttdoc">This method creates a grpc ALTS credentials client options instance.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_ad900dfa0e946edbef22f71e482ec665c"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#ad900dfa0e946edbef22f71e482ec665c">grpc_tls_custom_verification_check_request::peer_info::san_names::ip_names_size</a></div><div class="ttdeci">size_t ip_names_size</div><div class="ttdef"><b>Definition:</b> grpc_security.h:943</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_html_a6cef66348ced76d2eea1b3c1bf1d7fbe"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request.html#a6cef66348ced76d2eea1b3c1bf1d7fbe">grpc_tls_custom_verification_check_request::target_name</a></div><div class="ttdeci">const char * target_name</div><div class="ttdef"><b>Definition:</b> grpc_security.h:929</div></div>
<div class="ttc" id="agrpc__security_8h_html_aa207ea7a0454b657fa79567784ff5cbf"><div class="ttname"><a href="grpc__security_8h.html#aa207ea7a0454b657fa79567784ff5cbf">grpc_sts_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_sts_credentials_create(const grpc_sts_credentials_options *options, void *reserved)</div><div class="ttdoc">Creates an STS credentials following the STS Token Exchanged specifed in the IETF draft https://tools...</div></div>
<div class="ttc" id="agrpc_8h_html_ab4ed40ea84a2f70ffd81a84bd8ee634b"><div class="ttname"><a href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a></div><div class="ttdeci">struct grpc_channel_credentials grpc_channel_credentials</div><div class="ttdoc">— grpc_channel_credentials object.</div><div class="ttdef"><b>Definition:</b> grpc.h:294</div></div>
<div class="ttc" id="agrpc__security_8h_html_adde6c7d191f88997fd82fd8b54f9420e"><div class="ttname"><a href="grpc__security_8h.html#adde6c7d191f88997fd82fd8b54f9420e">grpc_ssl_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, int force_client_auth, void *reserved)</div><div class="ttdoc">Deprecated in favor of grpc_ssl_server_credentials_create_ex.</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a6085040c96239e50ee0650bd92b2a972"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a6085040c96239e50ee0650bd92b2a972">grpc_sts_credentials_options::actor_token_path</a></div><div class="ttdeci">const char * actor_token_path</div><div class="ttdef"><b>Definition:</b> grpc_security.h:365</div></div>
<div class="ttc" id="agrpc__security_8h_html_afd7a8c73d8426bba563130f33252bfcb"><div class="ttname"><a href="grpc__security_8h.html#afd7a8c73d8426bba563130f33252bfcb">grpc_external_account_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_external_account_credentials_create(const char *json_string, const char *scopes_string)</div><div class="ttdoc">Builds External Account credentials.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a4274ad26c037943386451f437c768961"><div class="ttname"><a href="grpc__security_8h.html#a4274ad26c037943386451f437c768961">grpc_max_auth_token_lifetime</a></div><div class="ttdeci">GRPCAPI gpr_timespec grpc_max_auth_token_lifetime(void)</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a1da17c75496e5debe7b89d3f43fc511b"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a1da17c75496e5debe7b89d3f43fc511b">grpc_sts_credentials_options::scope</a></div><div class="ttdeci">const char * scope</div><div class="ttdef"><b>Definition:</b> grpc_security.h:361</div></div>
<div class="ttc" id="agrpc__security_8h_html_a9915a0aad4c5b287af506f1ebe3ad505"><div class="ttname"><a href="grpc__security_8h.html#a9915a0aad4c5b287af506f1ebe3ad505">grpc_alts_credentials_client_options_add_target_service_account</a></div><div class="ttdeci">GRPCAPI void grpc_alts_credentials_client_options_add_target_service_account(grpc_alts_credentials_options *options, const char *service_account)</div><div class="ttdoc">This method adds a target service account to grpc client's ALTS credentials options instance.</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:46</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:38</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_ad8faa48358d0336a49d7a79c42204df5"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#ad8faa48358d0336a49d7a79c42204df5">grpc_tls_certificate_verifier_external::destruct</a></div><div class="ttdeci">void(* destruct)(void *user_data)</div><div class="ttdoc">A function pointer that does some additional destruction work when the verifier is destroyed.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:1060</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__security__constants_8h_html_a90c47ae1d8c33145342170fe615fa68c"><div class="ttname"><a href="grpc__security__constants_8h.html#a90c47ae1d8c33145342170fe615fa68c">grpc_ssl_roots_override_result</a></div><div class="ttdeci">grpc_ssl_roots_override_result</div><div class="ttdoc">Results for the SSL roots override callback.</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:66</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:70</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_a4426af18abaac5dde24da04e796d251b"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">grpc_tls_certificate_verifier_external::user_data</a></div><div class="ttdeci">void * user_data</div><div class="ttdef"><b>Definition:</b> grpc_security.h:987</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:48</div></div>
<div class="ttc" id="agrpc__security_8h_html_a865429446f46e48fd4729720b022e5bc"><div class="ttname"><a href="grpc__security_8h.html#a865429446f46e48fd4729720b022e5bc">grpc_tls_credentials_options_set_send_client_ca_list</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_send_client_ca_list(grpc_tls_credentials_options *options, bool send_client_ca_list)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a1102618931ed9019fcd46ea420d0d61e"><div class="ttname"><a href="grpc__security_8h.html#a1102618931ed9019fcd46ea420d0d61e">grpc_insecure_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_insecure_credentials_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_afc10060e41d23b0e31f5c5a312d49138"><div class="ttname"><a href="grpc__security_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a></div><div class="ttdeci">struct grpc_tls_certificate_verifier grpc_tls_certificate_verifier</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:978</div></div>
<div class="ttc" id="agrpc__security_8h_html_a5dde4a563a9f7b8b1fc595ecd8d357fa"><div class="ttname"><a href="grpc__security_8h.html#a5dde4a563a9f7b8b1fc595ecd8d357fa">grpc_alts_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_alts_server_credentials_create(const grpc_alts_credentials_options *options)</div><div class="ttdoc">This method creates an ALTS server credential object.</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_a6eb957132a37782a572b5c2f0a3ee532"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#a6eb957132a37782a572b5c2f0a3ee532">grpc_tls_certificate_verifier_external::verify</a></div><div class="ttdeci">int(* verify)(void *user_data, grpc_tls_custom_verification_check_request *request, grpc_tls_on_custom_verification_check_done_cb callback, void *callback_arg, grpc_status_code *sync_status, char **sync_error_details)</div><div class="ttdoc">A function pointer containing the verification logic that will be performed after the TLS handshake i...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:1021</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="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a0747ae40496f2027313790cb6d9954fe"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a0747ae40496f2027313790cb6d9954fe">grpc_tls_custom_verification_check_request::peer_info::san_names::uri_names_size</a></div><div class="ttdeci">size_t uri_names_size</div><div class="ttdef"><b>Definition:</b> grpc_security.h:937</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a></div><div class="ttdeci">grpc_ssl_client_certificate_request_type</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:79</div></div>
<div class="ttc" id="astructgrpc__metadata__credentials__plugin_html"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html">grpc_metadata_credentials_plugin</a></div><div class="ttdoc">grpc_metadata_credentials plugin is an API user provided structure used to create grpc_credentials ob...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:426</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:47</div></div>
<div class="ttc" id="agrpc__security_8h_html_a7008e76d9e21a435a03267390c6f8a37"><div class="ttname"><a href="grpc__security_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a></div><div class="ttdeci">struct grpc_ssl_session_cache grpc_ssl_session_cache</div><div class="ttdoc">— SSL Session Cache.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:110</div></div>
<div class="ttc" id="agrpc__security_8h_html_a8e4b35968eac741831a708224e207348"><div class="ttname"><a href="grpc__security_8h.html#a8e4b35968eac741831a708224e207348">grpc_composite_channel_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_composite_channel_credentials_create(grpc_channel_credentials *channel_creds, grpc_call_credentials *call_creds, void *reserved)</div><div class="ttdoc">Creates a composite channel credentials object.</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_ac40c27040b88f70a8a51e5a854eee68d"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#ac40c27040b88f70a8a51e5a854eee68d">grpc_sts_credentials_options::token_exchange_service_uri</a></div><div class="ttdeci">const char * token_exchange_service_uri</div><div class="ttdef"><b>Definition:</b> grpc_security.h:358</div></div>
<div class="ttc" id="astructverify__peer__options_html"><div class="ttname"><a href="structverify__peer__options.html">verify_peer_options</a></div><div class="ttdoc">Deprecated in favor of grpc_ssl_verify_peer_options.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:189</div></div>
<div class="ttc" id="agrpc__security_8h_html_a81799db566912702502c280b163b12bc"><div class="ttname"><a href="grpc__security_8h.html#a81799db566912702502c280b163b12bc">grpc_ssl_roots_override_callback</a></div><div class="ttdeci">grpc_ssl_roots_override_result(* grpc_ssl_roots_override_callback)(char **pem_root_certs)</div><div class="ttdoc">Callback for getting the SSL roots override from the application.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:163</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:45</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_a91c9dca2867decd1478590e7f5c380a4"><div class="ttname"><a href="grpc__security_8h.html#a91c9dca2867decd1478590e7f5c380a4">grpc_tls_certificate_verifier_no_op_create</a></div><div class="ttdeci">grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_no_op_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_ab065a653f78111065e91a579fd2ce2d2"><div class="ttname"><a href="grpc__security_8h.html#ab065a653f78111065e91a579fd2ce2d2">grpc_call_set_credentials</a></div><div class="ttdeci">GRPCAPI grpc_call_error grpc_call_set_credentials(grpc_call *call, grpc_call_credentials *creds)</div><div class="ttdoc">— Call specific credentials.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a8174afb41e1dca8688e0208e5beb1364"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8174afb41e1dca8688e0208e5beb1364">grpc_tls_custom_verification_check_request::peer_info::san_names::ip_names</a></div><div class="ttdeci">char ** ip_names</div><div class="ttdef"><b>Definition:</b> grpc_security.h:942</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:1224</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html">grpc_tls_custom_verification_check_request::peer_info::san_names</a></div><div class="ttdef"><b>Definition:</b> grpc_security.h:935</div></div>
<div class="ttc" id="agrpc__security_8h_html_a8fe8a5a9b93ff8671a7843add47d57be"><div class="ttname"><a href="grpc__security_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a></div><div class="ttdeci">struct grpc_tls_credentials_options grpc_tls_credentials_options</div><div class="ttdoc">— TLS channel/server credentials — It is used for experimental purpose for now and subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:714</div></div>
<div class="ttc" id="agrpc__security_8h_html_ade3f89f1532e030b8f2afcf0df17b2fe"><div class="ttname"><a href="grpc__security_8h.html#ade3f89f1532e030b8f2afcf0df17b2fe">grpc_alts_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_alts_credentials_create(const grpc_alts_credentials_options *options)</div><div class="ttdoc">This method creates an ALTS channel credential object.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a576605b5b21536662c29d135ee19e07b"><div class="ttname"><a href="grpc__security_8h.html#a576605b5b21536662c29d135ee19e07b">grpc_tls_certificate_verifier_host_name_create</a></div><div class="ttdeci">grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_host_name_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html_a3c3165c49cd7a359ddb8656aae7e9dd6"><div class="ttname"><a href="grpc__security__constants_8h.html#a3c3165c49cd7a359ddb8656aae7e9dd6">grpc_security_level</a></div><div class="ttdeci">grpc_security_level</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:131</div></div>
<div class="ttc" id="agrpc__security_8h_html_a2d689961c79ceaf254e7ba211ebe9b34"><div class="ttname"><a href="grpc__security_8h.html#a2d689961c79ceaf254e7ba211ebe9b34">grpc_alts_credentials_server_options_create</a></div><div class="ttdeci">GRPCAPI grpc_alts_credentials_options * grpc_alts_credentials_server_options_create(void)</div><div class="ttdoc">This method creates a grpc ALTS credentials server options instance.</div></div>
<div class="ttc" id="agrpc__security_8h_html_aa2108431aea25ab0e9bef17becff7357"><div class="ttname"><a href="grpc__security_8h.html#aa2108431aea25ab0e9bef17becff7357">grpc_google_refresh_token_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_refresh_token_credentials_create(const char *json_refresh_token, void *reserved)</div><div class="ttdoc">Creates an Oauth2 Refresh Token credentials object for connecting to Google.</div></div>
<div class="ttc" id="astructgrpc__metadata__credentials__plugin_html_a6c02843e7eff42cb3b397800bd64f2dc"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html#a6c02843e7eff42cb3b397800bd64f2dc">grpc_metadata_credentials_plugin::type</a></div><div class="ttdeci">const char * type</div><div class="ttdoc">Type of credentials that this plugin is implementing.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:463</div></div>
<div class="ttc" id="agrpc__security_8h_html_a0d667304bfe61aaa0c83ef5fc739b67b"><div class="ttname"><a href="grpc__security_8h.html#a0d667304bfe61aaa0c83ef5fc739b67b">grpc_tls_credentials_options_set_cert_request_type</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_cert_request_type(grpc_tls_credentials_options *options, grpc_ssl_client_certificate_request_type type)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_acf9de635e67ef9b6b41a3b72ebdbdcfc"><div class="ttname"><a href="grpc__security_8h.html#acf9de635e67ef9b6b41a3b72ebdbdcfc">grpc_tls_credentials_options_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_credentials_options * grpc_tls_credentials_options_create(void)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a2a1bd0a20897756471d19c9adff72338"><div class="ttname"><a href="grpc__security_8h.html#a2a1bd0a20897756471d19c9adff72338">grpc_tls_credentials_options_set_verify_server_cert</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_verify_server_cert(grpc_tls_credentials_options *options, int verify_server_cert)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a58468125c41dff87e75921e9e24a3453"><div class="ttname"><a href="grpc__security_8h.html#a58468125c41dff87e75921e9e24a3453">grpc_tls_certificate_verifier_verify</a></div><div class="ttdeci">int grpc_tls_certificate_verifier_verify(grpc_tls_certificate_verifier *verifier, grpc_tls_custom_verification_check_request *request, grpc_tls_on_custom_verification_check_done_cb callback, void *callback_arg, grpc_status_code *sync_status, char **sync_error_details)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a0bef5efe91a84e2c74b031759a9a7313"><div class="ttname"><a href="grpc__security_8h.html#a0bef5efe91a84e2c74b031759a9a7313">grpc_ssl_server_credentials_create_options_using_config_fetcher</a></div><div class="ttdeci">GRPCAPI grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config_fetcher(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config_callback cb, void *user_data)</div><div class="ttdoc">Creates an options object using a certificate config fetcher.</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html_a7cb596d3af7463816fdde64f3e18dbde"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#a7cb596d3af7463816fdde64f3e18dbde">grpc_auth_metadata_context::channel_auth_context</a></div><div class="ttdeci">const grpc_auth_context * channel_auth_context</div><div class="ttdoc">The auth_context of the channel which gives the server's identity.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:403</div></div>
<div class="ttc" id="agrpc__security_8h_html_a8c5f064d7d008bc46fa61e87d68898f3"><div class="ttname"><a href="grpc__security_8h.html#a8c5f064d7d008bc46fa61e87d68898f3">grpc_ssl_server_certificate_config_callback</a></div><div class="ttdeci">grpc_ssl_certificate_config_reload_status(* grpc_ssl_server_certificate_config_callback)(void *user_data, grpc_ssl_server_certificate_config **config)</div><div class="ttdoc">Callback to retrieve updated SSL server certificates, private keys, and trusted CAs (for client authe...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:506</div></div>
<div class="ttc" id="agrpc__security_8h_html_a5221eaf9ffa015b04d60d0005cf9b279"><div class="ttname"><a href="grpc__security_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a></div><div class="ttdeci">struct grpc_tls_identity_pairs grpc_tls_identity_pairs</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:730</div></div>
<div class="ttc" id="agrpc__security_8h_html_a129d8fd8e77cde679368f6ae03f990d4"><div class="ttname"><a href="grpc__security_8h.html#a129d8fd8e77cde679368f6ae03f990d4">grpc_tls_certificate_verifier_external_create</a></div><div class="ttdeci">grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_external_create(grpc_tls_certificate_verifier_external *external_verifier)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</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="astructgrpc__sts__credentials__options_html_a139402921fe862ba5c177d28c3d1ea90"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a139402921fe862ba5c177d28c3d1ea90">grpc_sts_credentials_options::requested_token_type</a></div><div class="ttdeci">const char * requested_token_type</div><div class="ttdef"><b>Definition:</b> grpc_security.h:362</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="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_abb2c27c41795f8e84502c50fbdeae3cb"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#abb2c27c41795f8e84502c50fbdeae3cb">grpc_tls_custom_verification_check_request::peer_info::san_names::dns_names_size</a></div><div class="ttdeci">size_t dns_names_size</div><div class="ttdef"><b>Definition:</b> grpc_security.h:939</div></div>
<div class="ttc" id="agrpc__security_8h_html_a44c23e47832d9cc27bb56822d66bf436"><div class="ttname"><a href="grpc__security_8h.html#a44c23e47832d9cc27bb56822d66bf436">grpc_set_ssl_roots_override_callback</a></div><div class="ttdeci">GRPCAPI void grpc_set_ssl_roots_override_callback(grpc_ssl_roots_override_callback cb)</div><div class="ttdoc">Setup a callback to override the default TLS/SSL roots.</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__processor_html"><div class="ttname"><a href="structgrpc__auth__metadata__processor.html">grpc_auth_metadata_processor</a></div><div class="ttdoc">Pluggable server-side metadata processor object.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:593</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_a3e087d3840d5d2d425a6253e8f2d3f82"><div class="ttname"><a href="grpc__security_8h.html#a3e087d3840d5d2d425a6253e8f2d3f82">grpc_tls_credentials_options_watch_identity_key_cert_pairs</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_watch_identity_key_cert_pairs(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a08134898a71be96ee8dec28202cb35c8"><div class="ttname"><a href="grpc__security_8h.html#a08134898a71be96ee8dec28202cb35c8">grpc_tls_certificate_verifier_release</a></div><div class="ttdeci">void grpc_tls_certificate_verifier_release(grpc_tls_certificate_verifier *verifier)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</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_a1e5ce0bf79a2a373b68a8d1d7e80dae2"><div class="ttname"><a href="grpc__security_8h.html#a1e5ce0bf79a2a373b68a8d1d7e80dae2">grpc_tls_credentials_options_set_root_cert_name</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_root_cert_name(grpc_tls_credentials_options *options, const char *root_cert_name)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_html"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a></div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:926</div></div>
<div class="ttc" id="agrpc__security_8h_html_a7bc183a37ed9e5bda69952d1516c6a1e"><div class="ttname"><a href="grpc__security_8h.html#a7bc183a37ed9e5bda69952d1516c6a1e">grpc_auth_metadata_context_copy</a></div><div class="ttdeci">GRPCAPI void grpc_auth_metadata_context_copy(grpc_auth_metadata_context *from, grpc_auth_metadata_context *to)</div><div class="ttdoc">Performs a deep copy from from to to.</div></div>
<div class="ttc" id="agrpc__security_8h_html_ade0da78380603c2e26c81695f09ea4c8"><div class="ttname"><a href="grpc__security_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a></div><div class="ttdeci">struct grpc_ssl_server_credentials_options grpc_ssl_server_credentials_options</div><div class="ttdef"><b>Definition:</b> grpc_security.h:535</div></div>
<div class="ttc" id="agrpc__security_8h_html_af185cf6d18cc63d0d2ba7df8348b4a23"><div class="ttname"><a href="grpc__security_8h.html#af185cf6d18cc63d0d2ba7df8348b4a23">grpc_tls_credentials_options_set_crl_directory</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_crl_directory(grpc_tls_credentials_options *options, const char *crl_directory)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</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_a3f83f8a3390b8b1659b719b7f47005a1"><div class="ttname"><a href="grpc__security_8h.html#a3f83f8a3390b8b1659b719b7f47005a1">grpc_ssl_session_cache_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_ssl_session_cache_destroy(grpc_ssl_session_cache *cache)</div><div class="ttdoc">Destroy SSL session cache.</div></div>
<div class="ttc" id="agrpc__security_8h_html_aec838ac89bd393040f0c88dad25a72ca"><div class="ttname"><a href="grpc__security_8h.html#aec838ac89bd393040f0c88dad25a72ca">grpc_ssl_server_credentials_create_with_options</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create_with_options(grpc_ssl_server_credentials_options *options)</div><div class="ttdoc">Creates an SSL server_credentials object using the provided options struct.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a42f9cca6c01fb5d8c03c4c1e1b0fbf82"><div class="ttname"><a href="grpc__security_8h.html#a42f9cca6c01fb5d8c03c4c1e1b0fbf82">grpc_google_default_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_google_default_credentials_create(grpc_call_credentials *call_credentials)</div><div class="ttdoc">Creates default credentials to connect to a google gRPC service.</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__sts__credentials__options_html_a238c61ccc9d4b8091d34a6e525290a4c"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a238c61ccc9d4b8091d34a6e525290a4c">grpc_sts_credentials_options::actor_token_type</a></div><div class="ttdeci">const char * actor_token_type</div><div class="ttdef"><b>Definition:</b> grpc_security.h:366</div></div>
<div class="ttc" id="agrpc__security_8h_html_ab1e7fd62504654f44e2aa1be61a0e338"><div class="ttname"><a href="grpc__security_8h.html#ab1e7fd62504654f44e2aa1be61a0e338">grpc_tls_certificate_provider_file_watcher_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_certificate_provider * grpc_tls_certificate_provider_file_watcher_create(const char *private_key_path, const char *identity_certificate_path, const char *root_cert_path, unsigned int refresh_interval_sec)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</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:40</div></div>
<div class="ttc" id="agrpc__security_8h_html_abc5db1c10eab731ca32f825c877fd5ce"><div class="ttname"><a href="grpc__security_8h.html#abc5db1c10eab731ca32f825c877fd5ce">grpc_xds_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_xds_credentials_create(grpc_channel_credentials *fallback_credentials)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</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="astructgpr__timespec_html"><div class="ttname"><a href="structgpr__timespec.html">gpr_timespec</a></div><div class="ttdoc">Analogous to struct timespec.</div><div class="ttdef"><b>Definition:</b> time.h:48</div></div>
<div class="ttc" id="agrpc_8h_html_aa724192e56fdc03827846f16752deccc"><div class="ttname"><a href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a></div><div class="ttdeci">struct grpc_server_credentials grpc_server_credentials</div><div class="ttdoc">— grpc_server_credentials object.</div><div class="ttdef"><b>Definition:</b> grpc.h:306</div></div>
<div class="ttc" id="agrpc__security_8h_html_a8c174b05503f727c5c020f0a6464da19"><div class="ttname"><a href="grpc__security_8h.html#a8c174b05503f727c5c020f0a6464da19">grpc_xds_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_xds_server_credentials_create(grpc_server_credentials *fallback_credentials)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html"><div class="ttname"><a href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a></div><div class="ttdoc">Context that can be used by metadata credentials plugin in order to create auth related metadata.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:393</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a467b1184da37adc95e8180b66a3a628f"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a467b1184da37adc95e8180b66a3a628f">grpc_sts_credentials_options::subject_token_type</a></div><div class="ttdeci">const char * subject_token_type</div><div class="ttdef"><b>Definition:</b> grpc_security.h:364</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_html_a90f27d860c67f1f61a39e964b06bfe13"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request.html#a90f27d860c67f1f61a39e964b06bfe13">grpc_tls_custom_verification_check_request::peer_info</a></div><div class="ttdeci">struct grpc_tls_custom_verification_check_request::peer_info peer_info</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a08df5fee5502f0830fce31741f67de31"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a08df5fee5502f0830fce31741f67de31">grpc_tls_custom_verification_check_request::peer_info::verified_root_cert_subject</a></div><div class="ttdeci">const char * verified_root_cert_subject</div><div class="ttdef"><b>Definition:</b> grpc_security.h:956</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html_a31d00ce5c064e1fff4261a6d6298dc11"><div class="ttname"><a href="grpc__security__constants_8h.html#a31d00ce5c064e1fff4261a6d6298dc11">grpc_local_connect_type</a></div><div class="ttdeci">grpc_local_connect_type</div><div class="ttdoc">Type of local connections for which local channel/server credentials will be applied.</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:143</div></div>
<div class="ttc" id="agrpc__security_8h_html_a02ce84a849538d46352f38553d1df8f1"><div class="ttname"><a href="grpc__security_8h.html#a02ce84a849538d46352f38553d1df8f1">grpc_tls_certificate_verifier_external</a></div><div class="ttdeci">struct grpc_tls_certificate_verifier_external grpc_tls_certificate_verifier_external</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__security_8h_html_af2bc85e32b46689f20d6b8fe78954146"><div class="ttname"><a href="grpc__security_8h.html#af2bc85e32b46689f20d6b8fe78954146">grpc_tls_certificate_provider_static_data_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_certificate_provider * grpc_tls_certificate_provider_static_data_create(const char *root_certificate, grpc_tls_identity_pairs *pem_key_cert_pairs)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__ssl__pem__key__cert__pair_html"><div class="ttname"><a href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a></div><div class="ttdoc">Object that holds a private key / certificate chain pair in PEM format.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:175</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a7b0ec0120e9ca5856329009e8be5ce07"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a7b0ec0120e9ca5856329009e8be5ce07">grpc_tls_custom_verification_check_request::peer_info::san_names::email_names_size</a></div><div class="ttdeci">size_t email_names_size</div><div class="ttdef"><b>Definition:</b> grpc_security.h:941</div></div>
<div class="ttc" id="agrpc__security_8h_html_a4fd0dd05b90f7dcebaaacf8a0088c46f"><div class="ttname"><a href="grpc__security_8h.html#a4fd0dd05b90f7dcebaaacf8a0088c46f">grpc_ssl_session_cache_create_channel_arg</a></div><div class="ttdeci">GRPCAPI grpc_arg grpc_ssl_session_cache_create_channel_arg(grpc_ssl_session_cache *cache)</div><div class="ttdoc">Create a channel arg with the given cache object.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a077c39db13d0211eac9c6a952882bc31"><div class="ttname"><a href="grpc__security_8h.html#a077c39db13d0211eac9c6a952882bc31">grpc_ssl_server_certificate_config_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_ssl_server_certificate_config_destroy(grpc_ssl_server_certificate_config *config)</div><div class="ttdoc">Destroys a grpc_ssl_server_certificate_config object.</div></div>
<div class="ttc" id="agrpc__security_8h_html_a6c5c11ac702b466c9dd0773cff01e72f"><div class="ttname"><a href="grpc__security_8h.html#a6c5c11ac702b466c9dd0773cff01e72f">grpc_local_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_local_credentials_create(grpc_local_connect_type type)</div><div class="ttdoc">— Local channel/server credentials —</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__processor_html_af85de1293dfd5e846339d5ef4b7b41dc"><div class="ttname"><a href="structgrpc__auth__metadata__processor.html#af85de1293dfd5e846339d5ef4b7b41dc">grpc_auth_metadata_processor::state</a></div><div class="ttdeci">void * state</div><div class="ttdef"><b>Definition:</b> grpc_security.h:602</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>
<div class="ttc" id="agrpc__security_8h_html_a2350ef1b38c4f69d0ff8510dcbe40072"><div class="ttname"><a href="grpc__security_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a></div><div class="ttdeci">struct grpc_call_credentials grpc_call_credentials</div><div class="ttdoc">— grpc_call_credentials object.</div><div class="ttdef"><b>Definition:</b> grpc_security.h:130</div></div>
<div class="ttc" id="agrpc__security_8h_html_a196ff73c6ff0dc0d7846635e02016b0f"><div class="ttname"><a href="grpc__security_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a></div><div class="ttdeci">struct grpc_alts_credentials_options grpc_alts_credentials_options</div><div class="ttdoc">— ALTS channel/server credentials —</div><div class="ttdef"><b>Definition:</b> grpc_security.h:618</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Sep 6 2023 16:09:16 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>