<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.3.1"/> <title>libssh: include/libssh/libssh.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="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 style="padding-left: 0.5em;"> <div id="projectname">libssh  <span id="projectnumber">0.5.5</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.3.1 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </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_b9682cd10a3f48e47321de8901f87a77.html">libssh</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">libssh.h</div> </div> </div><!--header--> <div class="contents"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * This file is part of the SSH Library</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (c) 2003-2009 by Aris Adamantiadis</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * The SSH Library is free software; you can redistribute it and/or modify</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * it under the terms of the GNU Lesser General Public License as published by</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * the Free Software Foundation; either version 2.1 of the License, or (at your</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * option) any later version.</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * The SSH Library is distributed in the hope that it will be useful, but</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * License for more details.</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * along with the SSH Library; see the file COPYING. If not, write to</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MA 02111-1307, USA.</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef _LIBSSH_H</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span><span class="preprocessor">#define _LIBSSH_H</span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#if defined _WIN32 || defined __CYGWIN__</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span><span class="preprocessor"> #ifdef LIBSSH_STATIC</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor"> #define LIBSSH_API</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span><span class="preprocessor"> #else</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span><span class="preprocessor"> #ifdef LIBSSH_EXPORTS</span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"></span><span class="preprocessor"> #ifdef __GNUC__</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"></span><span class="preprocessor"> #define LIBSSH_API __attribute__((dllexport))</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor"> #else</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor"> #define LIBSSH_API __declspec(dllexport)</span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor"> #endif</span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="preprocessor"> #else</span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor"> #ifdef __GNUC__</span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor"> #define LIBSSH_API __attribute__((dllimport))</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span><span class="preprocessor"> #else</span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span><span class="preprocessor"> #define LIBSSH_API __declspec(dllimport)</span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span><span class="preprocessor"> #endif</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span><span class="preprocessor"> #endif</span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"></span><span class="preprocessor"> #endif</span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span><span class="preprocessor"> #if __GNUC__ >= 4 && !defined(__OS2__)</span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"></span><span class="preprocessor"> #define LIBSSH_API __attribute__((visibility("default")))</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span><span class="preprocessor"> #else</span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"></span><span class="preprocessor"> #define LIBSSH_API</span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span><span class="preprocessor"> #endif</span></div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#ifdef _MSC_VER</span></div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span> <span class="comment">/* Visual Studio hasn't inttypes.h so it doesn't know uint32_t */</span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span> int32_t;</div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t;</div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> uint16_t;</div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> uint8_t;</div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> uint64_t;</div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span> mode_t;</div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#else </span><span class="comment">/* _MSC_VER */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span><span class="preprocessor"> #include <unistd.h></span></div> <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"> #include <inttypes.h></span></div> <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif </span><span class="comment">/* _MSC_VER */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#ifdef _WIN32</span></div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span><span class="preprocessor"> #include <winsock2.h></span></div> <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#else </span><span class="comment">/* _WIN32 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span><span class="preprocessor"> #include <sys/select.h></span> <span class="comment">/* for fd_set * */</span></div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"> #include <netdb.h></span></div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif </span><span class="comment">/* _WIN32 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#define SSH_STRINGIFY(s) SSH_TOSTRING(s)</span></div> <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_TOSTRING(s) #s</span></div> <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/* libssh version macros */</span></div> <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#define SSH_VERSION_INT(a, b, c) ((a) << 16 | (b) << 8 | (c))</span></div> <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_VERSION_DOT(a, b, c) a ##.## b ##.## c</span></div> <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_VERSION(a, b, c) SSH_VERSION_DOT(a, b, c)</span></div> <div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">/* libssh version */</span></div> <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#define LIBSSH_VERSION_MAJOR 0</span></div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"></span><span class="preprocessor">#define LIBSSH_VERSION_MINOR 5</span></div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span><span class="preprocessor">#define LIBSSH_VERSION_MICRO 5</span></div> <div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#define LIBSSH_VERSION_INT SSH_VERSION_INT(LIBSSH_VERSION_MAJOR, \</span></div> <div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"> LIBSSH_VERSION_MINOR, \</span></div> <div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"> LIBSSH_VERSION_MICRO)</span></div> <div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"></span><span class="preprocessor">#define LIBSSH_VERSION SSH_VERSION(LIBSSH_VERSION_MAJOR, \</span></div> <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"> LIBSSH_VERSION_MINOR, \</span></div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"> LIBSSH_VERSION_MICRO)</span></div> <div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">/* GCC have printf type attribute check. */</span></div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#ifdef __GNUC__</span></div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"></span><span class="preprocessor">#define PRINTF_ATTRIBUTE(a,b) __attribute__ ((__format__ (__printf__, a, b)))</span></div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"></span><span class="preprocessor">#define PRINTF_ATTRIBUTE(a,b)</span></div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* __GNUC__ */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#ifdef __GNUC__</span></div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_DEPRECATED __attribute__ ((deprecated))</span></div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_DEPRECATED</span></div> <div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> <div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div> <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_agent_struct* ssh_agent;</div> <div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_buffer_struct* ssh_buffer;</div> <div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_channel_struct* ssh_channel;</div> <div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_message_struct* ssh_message;</div> <div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_pcap_file_struct* ssh_pcap_file;</div> <div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_private_key_struct* ssh_private_key;</div> <div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_public_key_struct* ssh_public_key;</div> <div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_key_struct* ssh_key;</div> <div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_scp_struct* ssh_scp;</div> <div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_session_struct* ssh_session;</div> <div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ssh_string_struct* ssh_string;</div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div> <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">/* Socket type */</span></div> <div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#ifdef _WIN32</span></div> <div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef socket_t</span></div> <div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"></span><span class="keyword">typedef</span> SOCKET socket_t;</div> <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#endif </span><span class="comment">/* socket_t */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* _WIN32 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef socket_t</span></div> <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">int</span> socket_t;</div> <div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _WIN32 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#define SSH_INVALID_SOCKET ((socket_t) -1)</span></div> <div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">/* the offsets of methods */</span></div> <div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">enum</span> ssh_kex_types_e {</div> <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  SSH_KEX=0,</div> <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  SSH_HOSTKEYS,</div> <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  SSH_CRYPT_C_S,</div> <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  SSH_CRYPT_S_C,</div> <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  SSH_MAC_C_S,</div> <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  SSH_MAC_S_C,</div> <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  SSH_COMP_C_S,</div> <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  SSH_COMP_S_C,</div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  SSH_LANG_C_S,</div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  SSH_LANG_S_C</div> <div class="line"><a name="l00146"></a><span class="lineno"> 146</span> };</div> <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div> <div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#define SSH_CRYPT 2</span></div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_MAC 3</span></div> <div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_COMP 4</span></div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_LANG 5</span></div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">enum</span> ssh_auth_e {</div> <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  SSH_AUTH_SUCCESS=0,</div> <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  SSH_AUTH_DENIED,</div> <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  SSH_AUTH_PARTIAL,</div> <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  SSH_AUTH_INFO,</div> <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  SSH_AUTH_AGAIN,</div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  SSH_AUTH_ERROR=-1</div> <div class="line"><a name="l00160"></a><span class="lineno"> 160</span> };</div> <div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div> <div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">/* auth flags */</span></div> <div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#define SSH_AUTH_METHOD_UNKNOWN 0</span></div> <div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_AUTH_METHOD_NONE 0x0001</span></div> <div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_AUTH_METHOD_PASSWORD 0x0002</span></div> <div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_AUTH_METHOD_PUBLICKEY 0x0004</span></div> <div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_AUTH_METHOD_HOSTBASED 0x0008</span></div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_AUTH_METHOD_INTERACTIVE 0x0010</span></div> <div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">/* messages */</span></div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">enum</span> ssh_requests_e {</div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  SSH_REQUEST_AUTH=1,</div> <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  SSH_REQUEST_CHANNEL_OPEN,</div> <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  SSH_REQUEST_CHANNEL,</div> <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  SSH_REQUEST_SERVICE,</div> <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  SSH_REQUEST_GLOBAL</div> <div class="line"><a name="l00177"></a><span class="lineno"> 177</span> };</div> <div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">enum</span> ssh_channel_type_e {</div> <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  SSH_CHANNEL_UNKNOWN=0,</div> <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  SSH_CHANNEL_SESSION,</div> <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  SSH_CHANNEL_DIRECT_TCPIP,</div> <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  SSH_CHANNEL_FORWARDED_TCPIP,</div> <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  SSH_CHANNEL_X11</div> <div class="line"><a name="l00185"></a><span class="lineno"> 185</span> };</div> <div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div> <div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">enum</span> ssh_channel_requests_e {</div> <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  SSH_CHANNEL_REQUEST_UNKNOWN=0,</div> <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  SSH_CHANNEL_REQUEST_PTY,</div> <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  SSH_CHANNEL_REQUEST_EXEC,</div> <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  SSH_CHANNEL_REQUEST_SHELL,</div> <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  SSH_CHANNEL_REQUEST_ENV,</div> <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  SSH_CHANNEL_REQUEST_SUBSYSTEM,</div> <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  SSH_CHANNEL_REQUEST_WINDOW_CHANGE</div> <div class="line"><a name="l00195"></a><span class="lineno"> 195</span> };</div> <div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div> <div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">enum</span> ssh_global_requests_e {</div> <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  SSH_GLOBAL_REQUEST_UNKNOWN=0,</div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  SSH_GLOBAL_REQUEST_TCPIP_FORWARD,</div> <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  SSH_GLOBAL_REQUEST_CANCEL_TCPIP_FORWARD,</div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span> };</div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div> <div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">enum</span> ssh_publickey_state_e {</div> <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  SSH_PUBLICKEY_STATE_ERROR=-1,</div> <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  SSH_PUBLICKEY_STATE_NONE=0,</div> <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  SSH_PUBLICKEY_STATE_VALID=1,</div> <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  SSH_PUBLICKEY_STATE_WRONG=2</div> <div class="line"><a name="l00208"></a><span class="lineno"> 208</span> };</div> <div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div> <div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">/* status flags */</span></div> <div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#define SSH_CLOSED 0x01</span></div> <div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_READ_PENDING 0x02</span></div> <div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_CLOSED_ERROR 0x04</span></div> <div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">enum</span> ssh_server_known_e {</div> <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  SSH_SERVER_ERROR=-1,</div> <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  SSH_SERVER_NOT_KNOWN=0,</div> <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  SSH_SERVER_KNOWN_OK,</div> <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  SSH_SERVER_KNOWN_CHANGED,</div> <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  SSH_SERVER_FOUND_OTHER,</div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  SSH_SERVER_FILE_NOT_FOUND</div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span> };</div> <div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div> <div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor">#ifndef MD5_DIGEST_LEN</span></div> <div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"></span><span class="preprocessor"> #define MD5_DIGEST_LEN 16</span></div> <div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"></span><span class="comment">/* errors */</span></div> <div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div> <div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">enum</span> ssh_error_types_e {</div> <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  SSH_NO_ERROR=0,</div> <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  SSH_REQUEST_DENIED,</div> <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  SSH_FATAL,</div> <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  SSH_EINTR</div> <div class="line"><a name="l00234"></a><span class="lineno"> 234</span> };</div> <div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div> <div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">/* some types for keys */</span></div> <div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">enum</span> ssh_keytypes_e{</div> <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  SSH_KEYTYPE_UNKNOWN=0,</div> <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  SSH_KEYTYPE_DSS=1,</div> <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  SSH_KEYTYPE_RSA,</div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  SSH_KEYTYPE_RSA1</div> <div class="line"><a name="l00242"></a><span class="lineno"> 242</span> };</div> <div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div> <div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment">/* Error return codes */</span></div> <div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor">#define SSH_OK 0 </span><span class="comment">/* No error */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_ERROR -1 </span><span class="comment">/* Error of some kind */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_AGAIN -2 </span><span class="comment">/* The nonblocking call must be repeated */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"></span><span class="preprocessor">#define SSH_EOF -127 </span><span class="comment">/* We have already a eof */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00262"></a><span class="lineno"><a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba95c5ce872b66ec03f3336970c1e0a774"> 262</a></span>  <a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba95c5ce872b66ec03f3336970c1e0a774" title="No logging at all.">SSH_LOG_NOLOG</a>=0,</div> <div class="line"><a name="l00265"></a><span class="lineno"><a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba1d3fcdd7b5218f2dcc6471c436792075"> 265</a></span>  <a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba1d3fcdd7b5218f2dcc6471c436792075" title="Only rare and noteworthy events.">SSH_LOG_RARE</a>,</div> <div class="line"><a name="l00268"></a><span class="lineno"><a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba75fa79e63947b66462db977d9b5ae27c"> 268</a></span>  <a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba75fa79e63947b66462db977d9b5ae27c" title="High level protocol information.">SSH_LOG_PROTOCOL</a>,</div> <div class="line"><a name="l00271"></a><span class="lineno"><a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba6445dfe21592d69d9741d319538b6673"> 271</a></span>  <a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba6445dfe21592d69d9741d319538b6673" title="Lower level protocol infomations, packet level.">SSH_LOG_PACKET</a>,</div> <div class="line"><a name="l00274"></a><span class="lineno"><a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba926c933f61d1afa64003c1cc66f6a01c"> 274</a></span>  <a class="code" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba926c933f61d1afa64003c1cc66f6a01c" title="Every function path.">SSH_LOG_FUNCTIONS</a></div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span> };</div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">enum</span> ssh_options_e {</div> <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  SSH_OPTIONS_HOST,</div> <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  SSH_OPTIONS_PORT,</div> <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  SSH_OPTIONS_PORT_STR,</div> <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  SSH_OPTIONS_FD,</div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  SSH_OPTIONS_USER,</div> <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  SSH_OPTIONS_SSH_DIR,</div> <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  SSH_OPTIONS_IDENTITY,</div> <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  SSH_OPTIONS_ADD_IDENTITY,</div> <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  SSH_OPTIONS_KNOWNHOSTS,</div> <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  SSH_OPTIONS_TIMEOUT,</div> <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  SSH_OPTIONS_TIMEOUT_USEC,</div> <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  SSH_OPTIONS_SSH1,</div> <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  SSH_OPTIONS_SSH2,</div> <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  SSH_OPTIONS_LOG_VERBOSITY,</div> <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  SSH_OPTIONS_LOG_VERBOSITY_STR,</div> <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  SSH_OPTIONS_CIPHERS_C_S,</div> <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  SSH_OPTIONS_CIPHERS_S_C,</div> <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  SSH_OPTIONS_COMPRESSION_C_S,</div> <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  SSH_OPTIONS_COMPRESSION_S_C,</div> <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  SSH_OPTIONS_PROXYCOMMAND,</div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  SSH_OPTIONS_BINDADDR,</div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  SSH_OPTIONS_STRICTHOSTKEYCHECK,</div> <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  SSH_OPTIONS_COMPRESSION,</div> <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  SSH_OPTIONS_COMPRESSION_LEVEL</div> <div class="line"><a name="l00303"></a><span class="lineno"> 303</span> };</div> <div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div> <div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  SSH_SCP_WRITE,</div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  SSH_SCP_READ,</div> <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  SSH_SCP_RECURSIVE=0x10</div> <div class="line"><a name="l00311"></a><span class="lineno"> 311</span> };</div> <div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="keyword">enum</span> ssh_scp_request_types {</div> <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  SSH_SCP_REQUEST_NEWDIR=1,</div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  SSH_SCP_REQUEST_NEWFILE,</div> <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  SSH_SCP_REQUEST_EOF,</div> <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  SSH_SCP_REQUEST_ENDDIR,</div> <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  SSH_SCP_REQUEST_WARNING</div> <div class="line"><a name="l00324"></a><span class="lineno"> 324</span> };</div> <div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div> <div class="line"><a name="l00326"></a><span class="lineno"> 326</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga60da8e2c47897a209a455923c35d52d8" title="Blocking flush of the outgoing buffer.">ssh_blocking_flush</a>(ssh_session session, <span class="keywordtype">int</span> timeout);</div> <div class="line"><a name="l00327"></a><span class="lineno"> 327</span> LIBSSH_API ssh_channel <a class="code" href="group__libssh__channel.html#ga548bd0f77a50b7c8180942544b375866" title="Accept an X11 forwarding channel.">ssh_channel_accept_x11</a>(ssh_channel channel, <span class="keywordtype">int</span> timeout_ms);</div> <div class="line"><a name="l00328"></a><span class="lineno"> 328</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gaf5d55c90f3d98c583df23d21905c1127" title="Change the size of the terminal associated to a channel.">ssh_channel_change_pty_size</a>(ssh_channel channel,<span class="keywordtype">int</span> cols,<span class="keywordtype">int</span> rows);</div> <div class="line"><a name="l00329"></a><span class="lineno"> 329</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga238f07e0455456a5bfd8a49ead917732" title="Close a channel.">ssh_channel_close</a>(ssh_channel channel);</div> <div class="line"><a name="l00330"></a><span class="lineno"> 330</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__channel.html#gad1417f9eae8928fed20faafe2d9dbfff" title="Close and free a channel.">ssh_channel_free</a>(ssh_channel channel);</div> <div class="line"><a name="l00331"></a><span class="lineno"> 331</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga9eea019dd0bbaa8a817fff2c762d1a2d" title="Get the exit status of the channel (error code from the executed instruction).">ssh_channel_get_exit_status</a>(ssh_channel channel);</div> <div class="line"><a name="l00332"></a><span class="lineno"> 332</span> LIBSSH_API ssh_session <a class="code" href="group__libssh__channel.html#ga747aa5315575aa7ac9d8367c7372d8dd" title="Recover the session in which belongs a channel.">ssh_channel_get_session</a>(ssh_channel channel);</div> <div class="line"><a name="l00333"></a><span class="lineno"> 333</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gab2720b44cb7f1dfe2b38ffe07c2f45c7" title="Check if the channel is closed or not.">ssh_channel_is_closed</a>(ssh_channel channel);</div> <div class="line"><a name="l00334"></a><span class="lineno"> 334</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gab535264029443d77214c0615a0788b0a" title="Check if remote has sent an EOF.">ssh_channel_is_eof</a>(ssh_channel channel);</div> <div class="line"><a name="l00335"></a><span class="lineno"> 335</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gaaafcda943c96ddb91e5c28c0bdee7045" title="Check if the channel is open or not.">ssh_channel_is_open</a>(ssh_channel channel);</div> <div class="line"><a name="l00336"></a><span class="lineno"> 336</span> LIBSSH_API ssh_channel <a class="code" href="group__libssh__channel.html#gada8ccda7bf65165fe145d3096a252dcc" title="Allocate a new channel.">ssh_channel_new</a>(ssh_session session);</div> <div class="line"><a name="l00337"></a><span class="lineno"> 337</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gae86b0704a1f2bdebb268b55567f7f47b" title="Open a TCP/IP forwarding channel.">ssh_channel_open_forward</a>(ssh_channel channel, <span class="keyword">const</span> <span class="keywordtype">char</span> *remotehost,</div> <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordtype">int</span> remoteport, <span class="keyword">const</span> <span class="keywordtype">char</span> *sourcehost, <span class="keywordtype">int</span> localport);</div> <div class="line"><a name="l00339"></a><span class="lineno"> 339</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gaf051dd30d75bf6dc45d1a5088cf970bd" title="Open a session channel (suited for a shell, not TCP forwarding).">ssh_channel_open_session</a>(ssh_channel channel);</div> <div class="line"><a name="l00340"></a><span class="lineno"> 340</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga157f7d1df5de07ec6c6976e2034ba6e2" title="Polls a channel for data to read.">ssh_channel_poll</a>(ssh_channel channel, <span class="keywordtype">int</span> is_stderr);</div> <div class="line"><a name="l00341"></a><span class="lineno"> 341</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gac92381c4c5d4a7eab35f6e84686f033d" title="Reads data from a channel.">ssh_channel_read</a>(ssh_channel channel, <span class="keywordtype">void</span> *dest, uint32_t count, <span class="keywordtype">int</span> is_stderr);</div> <div class="line"><a name="l00342"></a><span class="lineno"> 342</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gaaca5a3fbe9839c3ffb37b746afc35f4c" title="Do a nonblocking read on the channel.">ssh_channel_read_nonblocking</a>(ssh_channel channel, <span class="keywordtype">void</span> *dest, uint32_t count,</div> <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordtype">int</span> is_stderr);</div> <div class="line"><a name="l00344"></a><span class="lineno"> 344</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga7aede2f9af4c494ff9e41fc08a4572f1" title="Set environment variables.">ssh_channel_request_env</a>(ssh_channel channel, <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="l00345"></a><span class="lineno"> 345</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga567d509183ade0a77190f390e2b5747d" title="Run a shell command without an interactive shell.">ssh_channel_request_exec</a>(ssh_channel channel, <span class="keyword">const</span> <span class="keywordtype">char</span> *cmd);</div> <div class="line"><a name="l00346"></a><span class="lineno"> 346</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga37c1cec33fe5a2f184768aba52e3a0db" title="Request a PTY.">ssh_channel_request_pty</a>(ssh_channel channel);</div> <div class="line"><a name="l00347"></a><span class="lineno"> 347</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gabb175414352256e1602286e0ab50886c" title="Request a pty with a specific type and size.">ssh_channel_request_pty_size</a>(ssh_channel channel, <span class="keyword">const</span> <span class="keywordtype">char</span> *term,</div> <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordtype">int</span> cols, <span class="keywordtype">int</span> rows);</div> <div class="line"><a name="l00349"></a><span class="lineno"> 349</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gaed4c5fb30c9df2b2548421ccf4e81bf1" title="Request a shell.">ssh_channel_request_shell</a>(ssh_channel channel);</div> <div class="line"><a name="l00350"></a><span class="lineno"> 350</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gaa98315fca818b561970a6950683f4053" title="Send a signal to remote process (as described in RFC 4254, section 6.9).">ssh_channel_request_send_signal</a>(ssh_channel channel, <span class="keyword">const</span> <span class="keywordtype">char</span> *signum);</div> <div class="line"><a name="l00351"></a><span class="lineno"> 351</span> LIBSSH_API <span class="keywordtype">int</span> ssh_channel_request_sftp(ssh_channel channel);</div> <div class="line"><a name="l00352"></a><span class="lineno"> 352</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga06024b070f9b2a3d6964b79ae36695b7" title="Request a subsystem (for example "sftp").">ssh_channel_request_subsystem</a>(ssh_channel channel, <span class="keyword">const</span> <span class="keywordtype">char</span> *subsystem);</div> <div class="line"><a name="l00353"></a><span class="lineno"> 353</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gadfa34624c28164bd73453cd04aa64c1f" title="Sends the "x11-req" channel request over an existing session channel.">ssh_channel_request_x11</a>(ssh_channel channel, <span class="keywordtype">int</span> single_connection, <span class="keyword">const</span> <span class="keywordtype">char</span> *protocol,</div> <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *cookie, <span class="keywordtype">int</span> screen_number);</div> <div class="line"><a name="l00355"></a><span class="lineno"> 355</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga072f82fdf3e50514f747653af2c99004" title="Send an end of file on the channel.">ssh_channel_send_eof</a>(ssh_channel channel);</div> <div class="line"><a name="l00356"></a><span class="lineno"> 356</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga1026cfa48ecfc0b4898d4ea443acfc5d" title="Act like the standard select(2) on channels.">ssh_channel_select</a>(ssh_channel *readchans, ssh_channel *writechans, ssh_channel *exceptchans, <span class="keyword">struct</span></div> <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  timeval * timeout);</div> <div class="line"><a name="l00358"></a><span class="lineno"> 358</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__channel.html#ga1c00ed18679d9a8c5b971260b5df13a2" title="Put the channel into blocking or nonblocking mode.">ssh_channel_set_blocking</a>(ssh_channel channel, <span class="keywordtype">int</span> blocking);</div> <div class="line"><a name="l00359"></a><span class="lineno"> 359</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga5d658df773ba854b35ff9f905341e2fb" title="Blocking write on a channel.">ssh_channel_write</a>(ssh_channel channel, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, uint32_t len);</div> <div class="line"><a name="l00360"></a><span class="lineno"> 360</span> LIBSSH_API uint32_t ssh_channel_window_size(ssh_channel channel);</div> <div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div> <div class="line"><a name="l00362"></a><span class="lineno"> 362</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#gabe2888b00515e95f2e1dc50269f62027" title="Try to read the public key from a given file.">ssh_try_publickey_from_file</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *keyfile,</div> <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  ssh_string *publickey, <span class="keywordtype">int</span> *type);</div> <div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div> <div class="line"><a name="l00365"></a><span class="lineno"> 365</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga45af3e96b41cb6aff8982295ad089ea2" title="retrieves available authentication methods for this session">ssh_auth_list</a>(ssh_session session);</div> <div class="line"><a name="l00366"></a><span class="lineno"> 366</span> LIBSSH_API <span class="keywordtype">char</span> *<a class="code" href="group__libssh__misc.html#ga83b053a8bdf80eea5ebc662e5098a52b" title="basename - parse filename component.">ssh_basename</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div> <div class="line"><a name="l00367"></a><span class="lineno"> 367</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#ga07827fd70a51ddc4030364f220eb4c9c" title="Deallocate the hash obtained by ssh_get_pubkey_hash.">ssh_clean_pubkey_hash</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **hash);</div> <div class="line"><a name="l00368"></a><span class="lineno"> 368</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga032e07cbd8bc3f14cb2dd375db0b03d7" title="Connect to the ssh server.">ssh_connect</a>(ssh_session session);</div> <div class="line"><a name="l00369"></a><span class="lineno"> 369</span> LIBSSH_API <span class="keyword">const</span> <span class="keywordtype">char</span> *ssh_copyright(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00370"></a><span class="lineno"> 370</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#ga0f048a4c0dbe02cfb7e9c5b6d0db0f27" title="Disconnect from a session (client or server).">ssh_disconnect</a>(ssh_session session);</div> <div class="line"><a name="l00371"></a><span class="lineno"> 371</span> LIBSSH_API <span class="keywordtype">char</span> *<a class="code" href="group__libssh__misc.html#gad36f0f8dbde59aefedd385dff76384fa" title="Parse directory component.">ssh_dirname</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div> <div class="line"><a name="l00372"></a><span class="lineno"> 372</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh.html#ga94a851d00248acde9cd7da084b491242" title="Finalize and cleanup all libssh and cryptographic data structures.">ssh_finalize</a>(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00373"></a><span class="lineno"> 373</span> LIBSSH_API ssh_channel <a class="code" href="group__libssh__channel.html#ga205d5ea76fb140075ebb1c20b8f193d3" title="Accept an incoming TCP/IP forwarding channel.">ssh_forward_accept</a>(ssh_session session, <span class="keywordtype">int</span> timeout_ms);</div> <div class="line"><a name="l00374"></a><span class="lineno"> 374</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#gac474d071d80e725c8b5633cb1d35c010" title="Sends the "cancel-tcpip-forward" global request to ask the server to cancel the tcpip-forward request...">ssh_forward_cancel</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *address, <span class="keywordtype">int</span> port);</div> <div class="line"><a name="l00375"></a><span class="lineno"> 375</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__channel.html#ga041a495f0230bb017cdf7459e6773664" title="Sends the "tcpip-forward" global request to ask the server to begin listening for inbound connections...">ssh_forward_listen</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *address, <span class="keywordtype">int</span> port, <span class="keywordtype">int</span> *bound_port);</div> <div class="line"><a name="l00376"></a><span class="lineno"> 376</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#gae5af27a98a7488e9f5ded6b37c274156" title="Deallocate a SSH session handle.">ssh_free</a>(ssh_session session);</div> <div class="line"><a name="l00377"></a><span class="lineno"> 377</span> LIBSSH_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__libssh__session.html#gad19e368e35d48e02ba95970a7d1e87f5" title="Get the disconnect message from the server.">ssh_get_disconnect_message</a>(ssh_session session);</div> <div class="line"><a name="l00378"></a><span class="lineno"> 378</span> LIBSSH_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__libssh__error.html#ga9241586665bf21f823806473fc386258" title="Retrieve the error text message from the last error.">ssh_get_error</a>(<span class="keywordtype">void</span> *error);</div> <div class="line"><a name="l00379"></a><span class="lineno"> 379</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__error.html#ga036433b7bf3d4ca94206253f58d136f9" title="Retrieve the error code from the last error.">ssh_get_error_code</a>(<span class="keywordtype">void</span> *error);</div> <div class="line"><a name="l00380"></a><span class="lineno"> 380</span> LIBSSH_API socket_t <a class="code" href="group__libssh__session.html#gafe509fcea47714b5cd277d1e35e83276" title="Get the fd of a connection.">ssh_get_fd</a>(ssh_session session);</div> <div class="line"><a name="l00381"></a><span class="lineno"> 381</span> LIBSSH_API <span class="keywordtype">char</span> *ssh_get_hexa(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *what, <span class="keywordtype">size_t</span> len);</div> <div class="line"><a name="l00382"></a><span class="lineno"> 382</span> LIBSSH_API <span class="keywordtype">char</span> *<a class="code" href="group__libssh__session.html#ga89864d4d5cc6d3d6ef1c39652f2a688f" title="Get the issue banner from the server.">ssh_get_issue_banner</a>(ssh_session session);</div> <div class="line"><a name="l00383"></a><span class="lineno"> 383</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#gac55d2895467a1e898ee75b4710d836a5" title="Get the version of the OpenSSH server, if it is not an OpenSSH server then 0 will be returned...">ssh_get_openssh_version</a>(ssh_session session);</div> <div class="line"><a name="l00384"></a><span class="lineno"> 384</span> LIBSSH_API ssh_string ssh_get_pubkey(ssh_session session);</div> <div class="line"><a name="l00385"></a><span class="lineno"> 385</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#gaf8ff0e2236d54d964a82f68d7323a741" title="Allocates a buffer with the MD5 hash of the server public key.">ssh_get_pubkey_hash</a>(ssh_session session, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **hash);</div> <div class="line"><a name="l00386"></a><span class="lineno"> 386</span> LIBSSH_API <span class="keywordtype">int</span> ssh_get_random(<span class="keywordtype">void</span> *where,<span class="keywordtype">int</span> len,<span class="keywordtype">int</span> strong);</div> <div class="line"><a name="l00387"></a><span class="lineno"> 387</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga8467735e4735165336f68ee82e24de0e" title="Get the protocol version of the session.">ssh_get_version</a>(ssh_session session);</div> <div class="line"><a name="l00388"></a><span class="lineno"> 388</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#gac199314d1646372c566ef14b9b6dca53" title="Get session status.">ssh_get_status</a>(ssh_session session);</div> <div class="line"><a name="l00389"></a><span class="lineno"> 389</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh.html#ga3ebf8d6920e563f3b032e3cd5277598e" title="Initialize global cryptographic data structures.">ssh_init</a>(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00390"></a><span class="lineno"> 390</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga0c959bde817801ac5de2db1e64b52f26" title="Return the blocking mode of libssh.">ssh_is_blocking</a>(ssh_session session);</div> <div class="line"><a name="l00391"></a><span class="lineno"> 391</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga49d8f413a3c7879070a112703de1d6e2" title="Check if we are connected.">ssh_is_connected</a>(ssh_session session);</div> <div class="line"><a name="l00392"></a><span class="lineno"> 392</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga6f37e3d7bb6b938b44d6a34a76fdfa0b" title="Check if the server is known.">ssh_is_server_known</a>(ssh_session session);</div> <div class="line"><a name="l00393"></a><span class="lineno"> 393</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__log.html#ga0bb252b81e0c497fc559c9e4007cf6c5" title="Log a SSH event.">ssh_log</a>(ssh_session session, <span class="keywordtype">int</span> prioriry, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...) PRINTF_ATTRIBUTE(3, 4);</div> <div class="line"><a name="l00394"></a><span class="lineno"> 394</span> LIBSSH_API ssh_channel ssh_message_channel_request_open_reply_accept(ssh_message msg);</div> <div class="line"><a name="l00395"></a><span class="lineno"> 395</span> LIBSSH_API <span class="keywordtype">int</span> ssh_message_channel_request_reply_success(ssh_message msg);</div> <div class="line"><a name="l00396"></a><span class="lineno"> 396</span> LIBSSH_API <span class="keywordtype">void</span> ssh_message_free(ssh_message msg);</div> <div class="line"><a name="l00397"></a><span class="lineno"> 397</span> LIBSSH_API ssh_message <a class="code" href="group__libssh__messages.html#ga8e536b6f1c824b7ca43d0e8f954b3bd4" title="Retrieve a SSH message from a SSH session.">ssh_message_get</a>(ssh_session session);</div> <div class="line"><a name="l00398"></a><span class="lineno"> 398</span> LIBSSH_API <span class="keywordtype">int</span> ssh_message_subtype(ssh_message msg);</div> <div class="line"><a name="l00399"></a><span class="lineno"> 399</span> LIBSSH_API <span class="keywordtype">int</span> ssh_message_type(ssh_message msg);</div> <div class="line"><a name="l00400"></a><span class="lineno"> 400</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__misc.html#ga5e15e93beecaef3af67d02b7ba55309f" title="Attempts to create a directory with the given pathname.">ssh_mkdir</a> (const <span class="keywordtype">char</span> *pathname, mode_t mode);</div> <div class="line"><a name="l00401"></a><span class="lineno"> 401</span> LIBSSH_API ssh_session <a class="code" href="group__libssh__session.html#gaadadc0f9601547c30db7c4d62017d32c" title="Create a new ssh session.">ssh_new</a>(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div> <div class="line"><a name="l00403"></a><span class="lineno"> 403</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#gaead8cef1f39e785139bc510852ce1dff" title="Duplicate the options of a session structure.">ssh_options_copy</a>(ssh_session src, ssh_session *dest);</div> <div class="line"><a name="l00404"></a><span class="lineno"> 404</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga93f7f7159893f3ce62c9b178724eff75" title="Parse command line arguments.">ssh_options_getopt</a>(ssh_session session, <span class="keywordtype">int</span> *argcptr, <span class="keywordtype">char</span> **argv);</div> <div class="line"><a name="l00405"></a><span class="lineno"> 405</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga82371e723260c7572ea061edecc2e9f1" title="Parse the ssh config file.">ssh_options_parse_config</a>(ssh_session session, const <span class="keywordtype">char</span> *filename);</div> <div class="line"><a name="l00406"></a><span class="lineno"> 406</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga7a801b85800baa3f4e16f5b47db0a73d" title="This function can set all possible ssh options.">ssh_options_set</a>(ssh_session session, enum ssh_options_e type,</div> <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  const <span class="keywordtype">void</span> *value);</div> <div class="line"><a name="l00408"></a><span class="lineno"> 408</span> LIBSSH_API <span class="keywordtype">int</span> ssh_pcap_file_close(ssh_pcap_file pcap);</div> <div class="line"><a name="l00409"></a><span class="lineno"> 409</span> LIBSSH_API <span class="keywordtype">void</span> ssh_pcap_file_free(ssh_pcap_file pcap);</div> <div class="line"><a name="l00410"></a><span class="lineno"> 410</span> LIBSSH_API ssh_pcap_file ssh_pcap_file_new(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00411"></a><span class="lineno"> 411</span> LIBSSH_API <span class="keywordtype">int</span> ssh_pcap_file_open(ssh_pcap_file pcap, const <span class="keywordtype">char</span> *filename);</div> <div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div> <div class="line"><a name="l00413"></a><span class="lineno"> 413</span> LIBSSH_API enum ssh_keytypes_e <a class="code" href="group__libssh__auth.html#ga86b529340a41566aa8fafb231d99f57f" title="returns the type of a private key">ssh_privatekey_type</a>(ssh_private_key privatekey);</div> <div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div> <div class="line"><a name="l00415"></a><span class="lineno"> 415</span> LIBSSH_API <span class="keywordtype">void</span> ssh_print_hexa(const <span class="keywordtype">char</span> *descr, const <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *what, <span class="keywordtype">size_t</span> len);</div> <div class="line"><a name="l00416"></a><span class="lineno"> 416</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#gad3bb38b15f02597cc1e155c526a51e51" title="Accepts transfer of a file or creation of a directory coming from the remote party.">ssh_scp_accept_request</a>(ssh_scp scp);</div> <div class="line"><a name="l00417"></a><span class="lineno"> 417</span> LIBSSH_API <span class="keywordtype">int</span> ssh_scp_close(ssh_scp scp);</div> <div class="line"><a name="l00418"></a><span class="lineno"> 418</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#gad36438c6b1e235d96cec43ca350e9b4f" title="Deny the transfer of a file or creation of a directory coming from the remote party.">ssh_scp_deny_request</a>(ssh_scp scp, const <span class="keywordtype">char</span> *reason);</div> <div class="line"><a name="l00419"></a><span class="lineno"> 419</span> LIBSSH_API <span class="keywordtype">void</span> ssh_scp_free(ssh_scp scp);</div> <div class="line"><a name="l00420"></a><span class="lineno"> 420</span> LIBSSH_API <span class="keywordtype">int</span> ssh_scp_init(ssh_scp scp);</div> <div class="line"><a name="l00421"></a><span class="lineno"> 421</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#ga2ca698c1e49612c083d9f8a72df52188" title="Leave a directory.">ssh_scp_leave_directory</a>(ssh_scp scp);</div> <div class="line"><a name="l00422"></a><span class="lineno"> 422</span> LIBSSH_API ssh_scp <a class="code" href="group__libssh__scp.html#ga9fcd39a2bb6438e39cf19ff859dc2f2e" title="Create a new scp session.">ssh_scp_new</a>(ssh_session session, <span class="keywordtype">int</span> mode, const <span class="keywordtype">char</span> *location);</div> <div class="line"><a name="l00423"></a><span class="lineno"> 423</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#gaba59cd8cc77d219cac93f865445c6e47" title="Wait for a scp request (file, directory).">ssh_scp_pull_request</a>(ssh_scp scp);</div> <div class="line"><a name="l00424"></a><span class="lineno"> 424</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#gaa584f03d4e3d582ac10a3a19818ec56d" title="Create a directory in a scp in sink mode.">ssh_scp_push_directory</a>(ssh_scp scp, const <span class="keywordtype">char</span> *dirname, <span class="keywordtype">int</span> mode);</div> <div class="line"><a name="l00425"></a><span class="lineno"> 425</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#ga544f4b9c525071910110ada94148adc6" title="Initialize the sending of a file to a scp in sink mode.">ssh_scp_push_file</a>(ssh_scp scp, const <span class="keywordtype">char</span> *filename, <span class="keywordtype">size_t</span> size, <span class="keywordtype">int</span> perms);</div> <div class="line"><a name="l00426"></a><span class="lineno"> 426</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#ga10bf627407959b51a7c39b37e8d46460" title="Read from a remote scp file.">ssh_scp_read</a>(ssh_scp scp, <span class="keywordtype">void</span> *buffer, <span class="keywordtype">size_t</span> size);</div> <div class="line"><a name="l00427"></a><span class="lineno"> 427</span> LIBSSH_API const <span class="keywordtype">char</span> *<a class="code" href="group__libssh__scp.html#gab41ede14208dea4bbd3600077008ccf3" title="Get the name of the directory or file being pushed from the other party.">ssh_scp_request_get_filename</a>(ssh_scp scp);</div> <div class="line"><a name="l00428"></a><span class="lineno"> 428</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#ga3386eb6df0cc620e74a039974c6280d4" title="Get the permissions of the directory or file being pushed from the other party.">ssh_scp_request_get_permissions</a>(ssh_scp scp);</div> <div class="line"><a name="l00429"></a><span class="lineno"> 429</span> LIBSSH_API <span class="keywordtype">size_t</span> <a class="code" href="group__libssh__scp.html#ga8b6f736a5b5af73cf59c7825d7e61966" title="Get the size of the file being pushed from the other party.">ssh_scp_request_get_size</a>(ssh_scp scp);</div> <div class="line"><a name="l00430"></a><span class="lineno"> 430</span> LIBSSH_API const <span class="keywordtype">char</span> *<a class="code" href="group__libssh__scp.html#gafa91c1569e4d22d58a928b232264bbcb" title="Get the warning string from a scp handle.">ssh_scp_request_get_warning</a>(ssh_scp scp);</div> <div class="line"><a name="l00431"></a><span class="lineno"> 431</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__scp.html#ga11f48e2cf62bcec20d9232ed3ca41752" title="Write into a remote scp file.">ssh_scp_write</a>(ssh_scp scp, const <span class="keywordtype">void</span> *buffer, <span class="keywordtype">size_t</span> len);</div> <div class="line"><a name="l00432"></a><span class="lineno"> 432</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#ga86cbf041bced56d18a2a5248c46cecb4" title="A wrapper for the select syscall.">ssh_select</a>(ssh_channel *channels, ssh_channel *outchannels, socket_t maxfd,</div> <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  fd_set *readfds, struct timeval *timeout);</div> <div class="line"><a name="l00434"></a><span class="lineno"> 434</span> LIBSSH_API <span class="keywordtype">int</span> ssh_service_request(ssh_session session, const <span class="keywordtype">char</span> *service);</div> <div class="line"><a name="l00435"></a><span class="lineno"> 435</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#ga2a29cff08855611be84d050e5bec73bc" title="Set the session in blocking/nonblocking mode.">ssh_set_blocking</a>(ssh_session session, <span class="keywordtype">int</span> blocking);</div> <div class="line"><a name="l00436"></a><span class="lineno"> 436</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#ga06453278350fd9e940c5c1b0d5225f19" title="Tell the session it has an exception to catch on the file descriptor.">ssh_set_fd_except</a>(ssh_session session);</div> <div class="line"><a name="l00437"></a><span class="lineno"> 437</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#ga0e05c91c6f475eabc8d221914d25a425" title="Tell the session it has data to read on the file descriptor without blocking.">ssh_set_fd_toread</a>(ssh_session session);</div> <div class="line"><a name="l00438"></a><span class="lineno"> 438</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#ga3f1b3c59662464eec3649d3d72a40543" title="Tell the session it may write to the file descriptor without blocking.">ssh_set_fd_towrite</a>(ssh_session session);</div> <div class="line"><a name="l00439"></a><span class="lineno"> 439</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__session.html#gae1bd16255ba373325adf76307d0c8c42" title="Disconnect impolitely from a remote host by closing the socket.">ssh_silent_disconnect</a>(ssh_session session);</div> <div class="line"><a name="l00440"></a><span class="lineno"> 440</span> LIBSSH_API <span class="keywordtype">int</span> ssh_set_pcap_file(ssh_session session, ssh_pcap_file pcapfile);</div> <div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#ifndef _WIN32</span></div> <div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"></span>LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga5cc49db459d6e27c8645a20bbd0f5f88" title="Try to authenticate through public key with an ssh agent.">ssh_userauth_agent_pubkey</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *username,</div> <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  ssh_public_key publickey);</div> <div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"></span>LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda" title="Tries to automatically authenticate with public key and "none".">ssh_userauth_autopubkey</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *passphrase);</div> <div class="line"><a name="l00446"></a><span class="lineno"> 446</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the "keyboard-interactive" method.">ssh_userauth_kbdint</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *user, <span class="keyword">const</span> <span class="keywordtype">char</span> *submethods);</div> <div class="line"><a name="l00447"></a><span class="lineno"> 447</span> LIBSSH_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__libssh__auth.html#gaa757fbdbd4f95261bbbbc12b1ec33078" title="Get the "instruction" of the message block.">ssh_userauth_kbdint_getinstruction</a>(ssh_session session);</div> <div class="line"><a name="l00448"></a><span class="lineno"> 448</span> LIBSSH_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__libssh__auth.html#gaf920b6f8ed1e3c53cc2a683230098657" title="Get the "name" of the message block.">ssh_userauth_kbdint_getname</a>(ssh_session session);</div> <div class="line"><a name="l00449"></a><span class="lineno"> 449</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#gacb996ff4979670db009a71a90172ece9" title="Get the number of prompts (questions) the server has given.">ssh_userauth_kbdint_getnprompts</a>(ssh_session session);</div> <div class="line"><a name="l00450"></a><span class="lineno"> 450</span> LIBSSH_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__libssh__auth.html#ga4e7466c30852a3339003af7046fab396" title="Get a prompt from a message block.">ssh_userauth_kbdint_getprompt</a>(ssh_session session, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keywordtype">char</span> *echo);</div> <div class="line"><a name="l00451"></a><span class="lineno"> 451</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga75e44b1f27059a00080f80fac0107a20" title="Set the answer for a question from a message block.">ssh_userauth_kbdint_setanswer</a>(ssh_session session, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i,</div> <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *answer);</div> <div class="line"><a name="l00453"></a><span class="lineno"> 453</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga35d44897a44b4bb3b7c01108c1812a37" title="retrieves available authentication methods for this session">ssh_userauth_list</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *username);</div> <div class="line"><a name="l00454"></a><span class="lineno"> 454</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga58e7c265236edbc97a2f117d3f23b4dd" title="Try to authenticate through the "none" method.">ssh_userauth_none</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *username);</div> <div class="line"><a name="l00455"></a><span class="lineno"> 455</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga78b485bf5c4e68ddfbc25f17de8b6521" title="Try to authenticate through public key.">ssh_userauth_offer_pubkey</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *username, <span class="keywordtype">int</span> type, ssh_string publickey);</div> <div class="line"><a name="l00456"></a><span class="lineno"> 456</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga50c0c150f8c4703e7ee49b3e3e3ca215" title="Try to authenticate by password.">ssh_userauth_password</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *username, <span class="keyword">const</span> <span class="keywordtype">char</span> *password);</div> <div class="line"><a name="l00457"></a><span class="lineno"> 457</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5" title="Try to authenticate through public key.">ssh_userauth_pubkey</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *username, ssh_string publickey, ssh_private_key privatekey);</div> <div class="line"><a name="l00458"></a><span class="lineno"> 458</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__auth.html#ga60e80b5020e6182da7790c1f0cb220c1" title="Try to authenticate through a private key file.">ssh_userauth_privatekey_file</a>(ssh_session session, <span class="keyword">const</span> <span class="keywordtype">char</span> *username,</div> <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keyword">const</span> <span class="keywordtype">char</span> *passphrase);</div> <div class="line"><a name="l00460"></a><span class="lineno"> 460</span> LIBSSH_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__libssh__misc.html#gaeda71ed34a62fa332762f25b14dac6eb" title="Check if libssh is the required version or get the version string.">ssh_version</a>(<span class="keywordtype">int</span> req_version);</div> <div class="line"><a name="l00461"></a><span class="lineno"> 461</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__session.html#gaf61a9cfdc40c76ffce9f9a8543755d36" title="Write the current server as known in the known hosts file.">ssh_write_knownhost</a>(ssh_session session);</div> <div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div> <div class="line"><a name="l00463"></a><span class="lineno"> 463</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__string.html#gaca1c58e13e7bdb72ea8410592fa0cbf6" title="Destroy the data in a string so it couldn't appear in a core dump.">ssh_string_burn</a>(ssh_string str);</div> <div class="line"><a name="l00464"></a><span class="lineno"> 464</span> LIBSSH_API ssh_string <a class="code" href="group__libssh__string.html#gac71b531c19ead0990fd23d0b28d92e02" title="Copy a string, return a newly allocated string.">ssh_string_copy</a>(ssh_string str);</div> <div class="line"><a name="l00465"></a><span class="lineno"> 465</span> LIBSSH_API <span class="keywordtype">void</span> *<a class="code" href="group__libssh__string.html#gaf01673d22adbff92c88bcb6e30946ea6" title="Get the payload of the string.">ssh_string_data</a>(ssh_string str);</div> <div class="line"><a name="l00466"></a><span class="lineno"> 466</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__string.html#gad5626768334f4837c4a31e5b4a68d130" title="Fill a string with given data.">ssh_string_fill</a>(ssh_string str, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len);</div> <div class="line"><a name="l00467"></a><span class="lineno"> 467</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8" title="Deallocate a SSH string object.">ssh_string_free</a>(ssh_string str);</div> <div class="line"><a name="l00468"></a><span class="lineno"> 468</span> LIBSSH_API ssh_string <a class="code" href="group__libssh__string.html#ga4154ea16ba2dc5bd5dcb2579686aaac2" title="Create a ssh string using a C string.">ssh_string_from_char</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *what);</div> <div class="line"><a name="l00469"></a><span class="lineno"> 469</span> LIBSSH_API <span class="keywordtype">size_t</span> <a class="code" href="group__libssh__string.html#ga331553369afbfcb4f5300729ed65d0fe" title="Return the size of a SSH string.">ssh_string_len</a>(ssh_string str);</div> <div class="line"><a name="l00470"></a><span class="lineno"> 470</span> LIBSSH_API ssh_string <a class="code" href="group__libssh__string.html#gaedd3d6073cee901aaa288712896d0f28" title="Create a new SSH String object.">ssh_string_new</a>(<span class="keywordtype">size_t</span> size);</div> <div class="line"><a name="l00471"></a><span class="lineno"> 471</span> LIBSSH_API <span class="keywordtype">char</span> *<a class="code" href="group__libssh__string.html#ga65cbd5f2c5f02599c1c285efd1f06351" title="Convert a SSH string to a C nul-terminated string.">ssh_string_to_char</a>(ssh_string str);</div> <div class="line"><a name="l00472"></a><span class="lineno"> 472</span> LIBSSH_API <span class="keywordtype">void</span> <a class="code" href="group__libssh__string.html#gafc10700722d6cafc468c2ee97585449a" title="Deallocate a char string object.">ssh_string_free_char</a>(<span class="keywordtype">char</span> *s);</div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span> LIBSSH_API <span class="keywordtype">int</span> <a class="code" href="group__libssh__misc.html#gad6effc9fcc3529ae5d7301fb096aa71c" title="Get a password from the console.">ssh_getpass</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *prompt, <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> echo,</div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordtype">int</span> verify);</div> <div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div> <div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor">#ifndef LIBSSH_LEGACY_0_4</span></div> <div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"></span><span class="preprocessor">#include "libssh/legacy.h"</span></div> <div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIBSSH_H */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"></span><span class="comment">/* vim: set ts=2 sw=2 et cindent: */</span></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.3.1 </small></address> </body> </html>