Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > ee8fafc31a7ba3ce3ae4499cedf4e1bc > files > 62

libssh-devel-0.5.5-1.fc18.i686.rpm

<!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: The SSH authentication functions.</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
   &#160;<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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">The SSH authentication functions.<div class="ingroups"><a class="el" href="group__libssh.html">The libssh API</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Functions to authenticate with a server.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga083af6f8d42a71fab6185137bf155de2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2">privatekey_free</a> (ssh_private_key prv)</td></tr>
<tr class="memdesc:ga083af6f8d42a71fab6185137bf155de2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocate a private key object.  <a href="#ga083af6f8d42a71fab6185137bf155de2">More...</a><br/></td></tr>
<tr class="separator:ga083af6f8d42a71fab6185137bf155de2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c8517fd342dd68a94045b1e00e15a9d"><td class="memItemLeft" align="right" valign="top">ssh_private_key&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d">privatekey_from_file</a> (ssh_session session, const char *filename, int type, const char *passphrase)</td></tr>
<tr class="memdesc:ga9c8517fd342dd68a94045b1e00e15a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a SSH private key from a file.  <a href="#ga9c8517fd342dd68a94045b1e00e15a9d">More...</a><br/></td></tr>
<tr class="separator:ga9c8517fd342dd68a94045b1e00e15a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40c8ac05358aa941496fd1243ac9ee00"><td class="memItemLeft" align="right" valign="top">ssh_string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00">publickey_from_file</a> (ssh_session session, const char *filename, int *type)</td></tr>
<tr class="memdesc:ga40c8ac05358aa941496fd1243ac9ee00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a public key from a file.  <a href="#ga40c8ac05358aa941496fd1243ac9ee00">More...</a><br/></td></tr>
<tr class="separator:ga40c8ac05358aa941496fd1243ac9ee00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae11c083974e8bfb0ebeb7c6fb9a06baf"><td class="memItemLeft" align="right" valign="top">ssh_public_key&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#gae11c083974e8bfb0ebeb7c6fb9a06baf">publickey_from_privatekey</a> (ssh_private_key prv)</td></tr>
<tr class="memdesc:gae11c083974e8bfb0ebeb7c6fb9a06baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a public_key object out of a private_key object.  <a href="#gae11c083974e8bfb0ebeb7c6fb9a06baf">More...</a><br/></td></tr>
<tr class="separator:gae11c083974e8bfb0ebeb7c6fb9a06baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bd48caa6d4fc91a0cbedd04ba56f901"><td class="memItemLeft" align="right" valign="top">ssh_string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga1bd48caa6d4fc91a0cbedd04ba56f901">publickey_to_string</a> (ssh_public_key key)</td></tr>
<tr class="memdesc:ga1bd48caa6d4fc91a0cbedd04ba56f901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a public_key object into a a SSH string.  <a href="#ga1bd48caa6d4fc91a0cbedd04ba56f901">More...</a><br/></td></tr>
<tr class="separator:ga1bd48caa6d4fc91a0cbedd04ba56f901"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45af3e96b41cb6aff8982295ad089ea2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga45af3e96b41cb6aff8982295ad089ea2">ssh_auth_list</a> (ssh_session session)</td></tr>
<tr class="memdesc:ga45af3e96b41cb6aff8982295ad089ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">retrieves available authentication methods for this session  <a href="#ga45af3e96b41cb6aff8982295ad089ea2">More...</a><br/></td></tr>
<tr class="separator:ga45af3e96b41cb6aff8982295ad089ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86b529340a41566aa8fafb231d99f57f"><td class="memItemLeft" align="right" valign="top">enum ssh_keytypes_e&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga86b529340a41566aa8fafb231d99f57f">ssh_privatekey_type</a> (ssh_private_key privatekey)</td></tr>
<tr class="memdesc:ga86b529340a41566aa8fafb231d99f57f"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the type of a private key  <a href="#ga86b529340a41566aa8fafb231d99f57f">More...</a><br/></td></tr>
<tr class="separator:ga86b529340a41566aa8fafb231d99f57f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21dbd716d13837aa8c70cb3603977606"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga21dbd716d13837aa8c70cb3603977606">ssh_publickey_to_file</a> (ssh_session session, const char *file, ssh_string pubkey, int type)</td></tr>
<tr class="memdesc:ga21dbd716d13837aa8c70cb3603977606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a public key to a file.  <a href="#ga21dbd716d13837aa8c70cb3603977606">More...</a><br/></td></tr>
<tr class="separator:ga21dbd716d13837aa8c70cb3603977606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe2888b00515e95f2e1dc50269f62027"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#gabe2888b00515e95f2e1dc50269f62027">ssh_try_publickey_from_file</a> (ssh_session session, const char *keyfile, ssh_string *publickey, int *type)</td></tr>
<tr class="memdesc:gabe2888b00515e95f2e1dc50269f62027"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to read the public key from a given file.  <a href="#gabe2888b00515e95f2e1dc50269f62027">More...</a><br/></td></tr>
<tr class="separator:gabe2888b00515e95f2e1dc50269f62027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5cc49db459d6e27c8645a20bbd0f5f88"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga5cc49db459d6e27c8645a20bbd0f5f88">ssh_userauth_agent_pubkey</a> (ssh_session session, const char *username, ssh_public_key publickey)</td></tr>
<tr class="memdesc:ga5cc49db459d6e27c8645a20bbd0f5f88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to authenticate through public key with an ssh agent.  <a href="#ga5cc49db459d6e27c8645a20bbd0f5f88">More...</a><br/></td></tr>
<tr class="separator:ga5cc49db459d6e27c8645a20bbd0f5f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad07655f2c742ce68271422197cf2acda"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey</a> (ssh_session session, const char *passphrase)</td></tr>
<tr class="memdesc:gad07655f2c742ce68271422197cf2acda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to automatically authenticate with public key and "none".  <a href="#gad07655f2c742ce68271422197cf2acda">More...</a><br/></td></tr>
<tr class="separator:gad07655f2c742ce68271422197cf2acda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b3b1c2a045286d9476b0252791a07d2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2">ssh_userauth_kbdint</a> (ssh_session session, const char *user, const char *submethods)</td></tr>
<tr class="memdesc:ga6b3b1c2a045286d9476b0252791a07d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to authenticate through the "keyboard-interactive" method.  <a href="#ga6b3b1c2a045286d9476b0252791a07d2">More...</a><br/></td></tr>
<tr class="separator:ga6b3b1c2a045286d9476b0252791a07d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa757fbdbd4f95261bbbbc12b1ec33078"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#gaa757fbdbd4f95261bbbbc12b1ec33078">ssh_userauth_kbdint_getinstruction</a> (ssh_session session)</td></tr>
<tr class="memdesc:gaa757fbdbd4f95261bbbbc12b1ec33078"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the "instruction" of the message block.  <a href="#gaa757fbdbd4f95261bbbbc12b1ec33078">More...</a><br/></td></tr>
<tr class="separator:gaa757fbdbd4f95261bbbbc12b1ec33078"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf920b6f8ed1e3c53cc2a683230098657"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#gaf920b6f8ed1e3c53cc2a683230098657">ssh_userauth_kbdint_getname</a> (ssh_session session)</td></tr>
<tr class="memdesc:gaf920b6f8ed1e3c53cc2a683230098657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the "name" of the message block.  <a href="#gaf920b6f8ed1e3c53cc2a683230098657">More...</a><br/></td></tr>
<tr class="separator:gaf920b6f8ed1e3c53cc2a683230098657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb996ff4979670db009a71a90172ece9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#gacb996ff4979670db009a71a90172ece9">ssh_userauth_kbdint_getnprompts</a> (ssh_session session)</td></tr>
<tr class="memdesc:gacb996ff4979670db009a71a90172ece9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of prompts (questions) the server has given.  <a href="#gacb996ff4979670db009a71a90172ece9">More...</a><br/></td></tr>
<tr class="separator:gacb996ff4979670db009a71a90172ece9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e7466c30852a3339003af7046fab396"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga4e7466c30852a3339003af7046fab396">ssh_userauth_kbdint_getprompt</a> (ssh_session session, unsigned int i, char *echo)</td></tr>
<tr class="memdesc:ga4e7466c30852a3339003af7046fab396"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a prompt from a message block.  <a href="#ga4e7466c30852a3339003af7046fab396">More...</a><br/></td></tr>
<tr class="separator:ga4e7466c30852a3339003af7046fab396"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75e44b1f27059a00080f80fac0107a20"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga75e44b1f27059a00080f80fac0107a20">ssh_userauth_kbdint_setanswer</a> (ssh_session session, unsigned int i, const char *answer)</td></tr>
<tr class="memdesc:ga75e44b1f27059a00080f80fac0107a20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the answer for a question from a message block.  <a href="#ga75e44b1f27059a00080f80fac0107a20">More...</a><br/></td></tr>
<tr class="separator:ga75e44b1f27059a00080f80fac0107a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35d44897a44b4bb3b7c01108c1812a37"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga35d44897a44b4bb3b7c01108c1812a37">ssh_userauth_list</a> (ssh_session session, const char *username)</td></tr>
<tr class="memdesc:ga35d44897a44b4bb3b7c01108c1812a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">retrieves available authentication methods for this session  <a href="#ga35d44897a44b4bb3b7c01108c1812a37">More...</a><br/></td></tr>
<tr class="separator:ga35d44897a44b4bb3b7c01108c1812a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58e7c265236edbc97a2f117d3f23b4dd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga58e7c265236edbc97a2f117d3f23b4dd">ssh_userauth_none</a> (ssh_session session, const char *username)</td></tr>
<tr class="memdesc:ga58e7c265236edbc97a2f117d3f23b4dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to authenticate through the "none" method.  <a href="#ga58e7c265236edbc97a2f117d3f23b4dd">More...</a><br/></td></tr>
<tr class="separator:ga58e7c265236edbc97a2f117d3f23b4dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78b485bf5c4e68ddfbc25f17de8b6521"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga78b485bf5c4e68ddfbc25f17de8b6521">ssh_userauth_offer_pubkey</a> (ssh_session session, const char *username, int type, ssh_string publickey)</td></tr>
<tr class="memdesc:ga78b485bf5c4e68ddfbc25f17de8b6521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to authenticate through public key.  <a href="#ga78b485bf5c4e68ddfbc25f17de8b6521">More...</a><br/></td></tr>
<tr class="separator:ga78b485bf5c4e68ddfbc25f17de8b6521"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50c0c150f8c4703e7ee49b3e3e3ca215"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga50c0c150f8c4703e7ee49b3e3e3ca215">ssh_userauth_password</a> (ssh_session session, const char *username, const char *password)</td></tr>
<tr class="memdesc:ga50c0c150f8c4703e7ee49b3e3e3ca215"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to authenticate by password.  <a href="#ga50c0c150f8c4703e7ee49b3e3e3ca215">More...</a><br/></td></tr>
<tr class="separator:ga50c0c150f8c4703e7ee49b3e3e3ca215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60e80b5020e6182da7790c1f0cb220c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga60e80b5020e6182da7790c1f0cb220c1">ssh_userauth_privatekey_file</a> (ssh_session session, const char *username, const char *filename, const char *passphrase)</td></tr>
<tr class="memdesc:ga60e80b5020e6182da7790c1f0cb220c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to authenticate through a private key file.  <a href="#ga60e80b5020e6182da7790c1f0cb220c1">More...</a><br/></td></tr>
<tr class="separator:ga60e80b5020e6182da7790c1f0cb220c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18f0c63c75b9af6c28c032e93628a7c5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5">ssh_userauth_pubkey</a> (ssh_session session, const char *username, ssh_string publickey, ssh_private_key privatekey)</td></tr>
<tr class="memdesc:ga18f0c63c75b9af6c28c032e93628a7c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to authenticate through public key.  <a href="#ga18f0c63c75b9af6c28c032e93628a7c5">More...</a><br/></td></tr>
<tr class="separator:ga18f0c63c75b9af6c28c032e93628a7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Functions to authenticate with a server. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga083af6f8d42a71fab6185137bf155de2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void privatekey_free </td>
          <td>(</td>
          <td class="paramtype">ssh_private_key&#160;</td>
          <td class="paramname"><em>prv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deallocate a private key object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">prv</td><td>The private_key object to free. </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="group__libssh__server.html#ga6609243446f1650243101e0a779dc822">ssh_bind_accept()</a>, <a class="el" href="group__libssh__session.html#gae5af27a98a7488e9f5ded6b37c274156">ssh_free()</a>, <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>, and <a class="el" href="group__libssh__auth.html#ga60e80b5020e6182da7790c1f0cb220c1">ssh_userauth_privatekey_file()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9c8517fd342dd68a94045b1e00e15a9d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_private_key privatekey_from_file </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>passphrase</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a SSH private key from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The SSH Session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The filename of the the private key.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The type of the private key. This could be SSH_KEYTYPE_DSS or SSH_KEYTYPE_RSA. Pass 0 to automatically detect the type.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">passphrase</td><td>The passphrase to decrypt the private key. Set to null if none is needed or it is unknown.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A private_key object containing the private key, or NULL on error. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2" title="Deallocate a private key object.">privatekey_free()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#gae11c083974e8bfb0ebeb7c6fb9a06baf" title="Make a public_key object out of a private_key object.">publickey_from_privatekey()</a> </dd></dl>

<p>References <a class="el" href="group__libssh.html#ga3ebf8d6920e563f3b032e3cd5277598e">ssh_init()</a>, <a class="el" href="group__libssh__log.html#ga0bb252b81e0c497fc559c9e4007cf6c5">ssh_log()</a>, and <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba1d3fcdd7b5218f2dcc6471c436792075">SSH_LOG_RARE</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__pki.html#ga006a01fce17d24d5e83d946c78b0e252">ssh_key_import_private()</a>, <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>, and <a class="el" href="group__libssh__auth.html#ga60e80b5020e6182da7790c1f0cb220c1">ssh_userauth_privatekey_file()</a>.</p>

</div>
</div>
<a class="anchor" id="ga40c8ac05358aa941496fd1243ac9ee00"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_string publickey_from_file </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve a public key from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The SSH session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The filename of the public key.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">type</td><td>The Pointer to a integer. If it is not NULL, it will contain the type of the key after execution.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A SSH String containing the public key, or NULL if it failed.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd>string_free() </dd>
<dd>
<a class="el" href="group__libssh__auth.html#gae11c083974e8bfb0ebeb7c6fb9a06baf" title="Make a public_key object out of a private_key object.">publickey_from_privatekey()</a> </dd></dl>

<p>References <a class="el" href="group__libssh__buffer.html#ga608cf73226454f21e8b2f9f1d838c5fc">ssh_buffer_free()</a>, <a class="el" href="group__libssh__string.html#gad5626768334f4837c4a31e5b4a68d130">ssh_string_fill()</a>, and <a class="el" href="group__libssh__string.html#gaedd3d6073cee901aaa288712896d0f28">ssh_string_new()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gabe2888b00515e95f2e1dc50269f62027">ssh_try_publickey_from_file()</a>, and <a class="el" href="group__libssh__auth.html#ga60e80b5020e6182da7790c1f0cb220c1">ssh_userauth_privatekey_file()</a>.</p>

</div>
</div>
<a class="anchor" id="gae11c083974e8bfb0ebeb7c6fb9a06baf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_public_key publickey_from_privatekey </td>
          <td>(</td>
          <td class="paramtype">ssh_private_key&#160;</td>
          <td class="paramname"><em>prv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make a public_key object out of a private_key object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">prv</td><td>The private key to generate the public key.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The generated public key, NULL on error.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga1bd48caa6d4fc91a0cbedd04ba56f901" title="Convert a public_key object into a a SSH string.">publickey_to_string()</a> </dd></dl>

<p>References <a class="el" href="group__libssh__string.html#gaca1c58e13e7bdb72ea8410592fa0cbf6">ssh_string_burn()</a>, <a class="el" href="group__libssh__string.html#gaf01673d22adbff92c88bcb6e30946ea6">ssh_string_data()</a>, <a class="el" href="group__libssh__string.html#gad5626768334f4837c4a31e5b4a68d130">ssh_string_fill()</a>, <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, <a class="el" href="group__libssh__string.html#ga331553369afbfcb4f5300729ed65d0fe">ssh_string_len()</a>, and <a class="el" href="group__libssh__string.html#gaedd3d6073cee901aaa288712896d0f28">ssh_string_new()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>, and <a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5">ssh_userauth_pubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1bd48caa6d4fc91a0cbedd04ba56f901"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_string publickey_to_string </td>
          <td>(</td>
          <td class="paramtype">ssh_public_key&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a public_key object into a a SSH string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The public key to convert.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An allocated SSH String containing the public key, NULL on error.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd>string_free() </dd></dl>

<p>References <a class="el" href="group__libssh__buffer.html#ga608cf73226454f21e8b2f9f1d838c5fc">ssh_buffer_free()</a>, <a class="el" href="group__libssh__buffer.html#ga7ecc914104a5bf0da485d3e42f6a7d3b">ssh_buffer_new()</a>, <a class="el" href="group__libssh__string.html#gad5626768334f4837c4a31e5b4a68d130">ssh_string_fill()</a>, <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, <a class="el" href="group__libssh__string.html#ga4154ea16ba2dc5bd5dcb2579686aaac2">ssh_string_from_char()</a>, and <a class="el" href="group__libssh__string.html#gaedd3d6073cee901aaa288712896d0f28">ssh_string_new()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#ga5cc49db459d6e27c8645a20bbd0f5f88">ssh_userauth_agent_pubkey()</a>, <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>, and <a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5">ssh_userauth_pubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="ga45af3e96b41cb6aff8982295ad089ea2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_auth_list </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>retrieves available authentication methods for this session </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd></dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga35d44897a44b4bb3b7c01108c1812a37" title="retrieves available authentication methods for this session">ssh_userauth_list</a> </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#ga35d44897a44b4bb3b7c01108c1812a37">ssh_userauth_list()</a>.</p>

</div>
</div>
<a class="anchor" id="ga86b529340a41566aa8fafb231d99f57f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum ssh_keytypes_e ssh_privatekey_type </td>
          <td>(</td>
          <td class="paramtype">ssh_private_key&#160;</td>
          <td class="paramname"><em>privatekey</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>returns the type of a private key </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">privatekey</td><td>the private key handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>one of SSH_KEYTYPE_RSA,SSH_KEYTYPE_DSS,SSH_KEYTYPE_RSA1 </dd>
<dd>
SSH_KEYTYPE_UNKNOWN if the type is unknown </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d" title="Reads a SSH private key from a file.">privatekey_from_file</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga78b485bf5c4e68ddfbc25f17de8b6521" title="Try to authenticate through public key.">ssh_userauth_offer_pubkey</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga21dbd716d13837aa8c70cb3603977606"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_publickey_to_file </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_string&#160;</td>
          <td class="paramname"><em>pubkey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a public key to a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The filename to write the key into.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pubkey</td><td>The public key to write.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The type of the public key.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, -1 on error. </dd></dl>

<p>References <a class="el" href="group__libssh__log.html#ga0bb252b81e0c497fc559c9e4007cf6c5">ssh_log()</a>, <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba6445dfe21592d69d9741d319538b6673">SSH_LOG_PACKET</a>, <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba1d3fcdd7b5218f2dcc6471c436792075">SSH_LOG_RARE</a>, and <a class="el" href="group__libssh__string.html#ga331553369afbfcb4f5300729ed65d0fe">ssh_string_len()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="gabe2888b00515e95f2e1dc50269f62027"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_try_publickey_from_file </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>keyfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_string *&#160;</td>
          <td class="paramname"><em>publickey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to read the public key from a given file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">keyfile</td><td>The name of the private keyfile.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">publickey</td><td>A ssh_string to store the public key.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">type</td><td>A pointer to an integer to store the type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, -1 on error or the private key doesn't exist, 1 if the public key doesn't exist. </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00">publickey_from_file()</a>, <a class="el" href="group__libssh__error.html#ga9241586665bf21f823806473fc386258">ssh_get_error()</a>, <a class="el" href="group__libssh__log.html#ga0bb252b81e0c497fc559c9e4007cf6c5">ssh_log()</a>, and <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba6445dfe21592d69d9741d319538b6673">SSH_LOG_PACKET</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5cc49db459d6e27c8645a20bbd0f5f88"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_agent_pubkey </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_public_key&#160;</td>
          <td class="paramname"><em>publickey</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to authenticate through public key with an ssh agent. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">username</td><td>The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">publickey</td><td>The public key provided by the agent.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened.<br/>
 SSH_AUTH_DENIED: Authentication failed: use another method.<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method.<br/>
 SSH_AUTH_SUCCESS: Authentication successful.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00" title="Retrieve a public key from a file.">publickey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d" title="Reads a SSH private key from a file.">privatekey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2" title="Deallocate a private key object.">privatekey_free()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga78b485bf5c4e68ddfbc25f17de8b6521" title="Try to authenticate through public key.">ssh_userauth_offer_pubkey()</a> </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#ga1bd48caa6d4fc91a0cbedd04ba56f901">publickey_to_string()</a>, <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, and <a class="el" href="group__libssh__string.html#ga4154ea16ba2dc5bd5dcb2579686aaac2">ssh_string_from_char()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="gad07655f2c742ce68271422197cf2acda"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_autopubkey </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>passphrase</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tries to automatically authenticate with public key and "none". </p>
<p>It may fail, for instance it doesn't ask for a password and uses a default asker for passphrases (in case the private key is encrypted).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to authenticate with.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">passphrase</td><td>Use this passphrase to unlock the privatekey. Use NULL if you don't want to use a passphrase or the user should be asked.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened<br/>
 SSH_AUTH_DENIED: Authentication failed: use another method<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method<br/>
 SSH_AUTH_SUCCESS: Authentication success</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the &quot;keyboard-interactive&quot; method.">ssh_userauth_kbdint()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga50c0c150f8c4703e7ee49b3e3e3ca215" title="Try to authenticate by password.">ssh_userauth_password()</a> </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2">privatekey_free()</a>, <a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d">privatekey_from_file()</a>, <a class="el" href="group__libssh__auth.html#gae11c083974e8bfb0ebeb7c6fb9a06baf">publickey_from_privatekey()</a>, <a class="el" href="group__libssh__auth.html#ga1bd48caa6d4fc91a0cbedd04ba56f901">publickey_to_string()</a>, <a class="el" href="group__libssh__log.html#ga0bb252b81e0c497fc559c9e4007cf6c5">ssh_log()</a>, <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba6445dfe21592d69d9741d319538b6673">SSH_LOG_PACKET</a>, <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba75fa79e63947b66462db977d9b5ae27c">SSH_LOG_PROTOCOL</a>, <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba1d3fcdd7b5218f2dcc6471c436792075">SSH_LOG_RARE</a>, <a class="el" href="group__libssh__auth.html#ga21dbd716d13837aa8c70cb3603977606">ssh_publickey_to_file()</a>, <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, <a class="el" href="group__libssh__auth.html#gabe2888b00515e95f2e1dc50269f62027">ssh_try_publickey_from_file()</a>, <a class="el" href="group__libssh__auth.html#ga5cc49db459d6e27c8645a20bbd0f5f88">ssh_userauth_agent_pubkey()</a>, <a class="el" href="group__libssh__auth.html#ga58e7c265236edbc97a2f117d3f23b4dd">ssh_userauth_none()</a>, <a class="el" href="group__libssh__auth.html#ga78b485bf5c4e68ddfbc25f17de8b6521">ssh_userauth_offer_pubkey()</a>, and <a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5">ssh_userauth_pubkey()</a>.</p>

<p>Referenced by <a class="el" href="classssh_1_1Session.html#a5a4d5abc13091ef27542aaa0a1caf6b4">ssh::Session::userauthAutopubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6b3b1c2a045286d9476b0252791a07d2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_kbdint </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>submethods</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to authenticate through the "keyboard-interactive" method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">user</td><td>The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">submethods</td><td>Undocumented. Set it to NULL.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened<br/>
 SSH_AUTH_DENIED: Authentication failed : use another method<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method<br/>
 SSH_AUTH_SUCCESS: Authentication success<br/>
 SSH_AUTH_INFO: The server asked some questions. Use <a class="el" href="group__libssh__auth.html#gacb996ff4979670db009a71a90172ece9" title="Get the number of prompts (questions) the server has given.">ssh_userauth_kbdint_getnprompts()</a> and such.<br/>
 SSH_AUTH_AGAIN: In nonblocking mode, you've got to call this again later.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#gacb996ff4979670db009a71a90172ece9" title="Get the number of prompts (questions) the server has given.">ssh_userauth_kbdint_getnprompts()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#gaf920b6f8ed1e3c53cc2a683230098657" title="Get the &quot;name&quot; of the message block.">ssh_userauth_kbdint_getname()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#gaa757fbdbd4f95261bbbbc12b1ec33078" title="Get the &quot;instruction&quot; of the message block.">ssh_userauth_kbdint_getinstruction()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga4e7466c30852a3339003af7046fab396" title="Get a prompt from a message block.">ssh_userauth_kbdint_getprompt()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga75e44b1f27059a00080f80fac0107a20" title="Set the answer for a question from a message block.">ssh_userauth_kbdint_setanswer()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaa757fbdbd4f95261bbbbc12b1ec33078"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ssh_userauth_kbdint_getinstruction </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the "instruction" of the message block. </p>
<p>You have called <a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the &quot;keyboard-interactive&quot; method.">ssh_userauth_kbdint()</a> and got SSH_AUTH_INFO. This function returns the questions from the server.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The instruction of the message block. </dd></dl>

</div>
</div>
<a class="anchor" id="gaf920b6f8ed1e3c53cc2a683230098657"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ssh_userauth_kbdint_getname </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the "name" of the message block. </p>
<p>You have called <a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the &quot;keyboard-interactive&quot; method.">ssh_userauth_kbdint()</a> and got SSH_AUTH_INFO. This function returns the questions from the server.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The name of the message block. Do not free it. </dd></dl>

</div>
</div>
<a class="anchor" id="gacb996ff4979670db009a71a90172ece9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_kbdint_getnprompts </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the number of prompts (questions) the server has given. </p>
<p>You have called <a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the &quot;keyboard-interactive&quot; method.">ssh_userauth_kbdint()</a> and got SSH_AUTH_INFO. This function returns the questions from the server.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of prompts. </dd></dl>

</div>
</div>
<a class="anchor" id="ga4e7466c30852a3339003af7046fab396"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ssh_userauth_kbdint_getprompt </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>echo</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a prompt from a message block. </p>
<p>You have called <a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the &quot;keyboard-interactive&quot; method.">ssh_userauth_kbdint()</a> and got SSH_AUTH_INFO. This function returns the questions from the server.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>The index number of the i'th prompt.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">echo</td><td>When different of NULL, it will obtain a boolean meaning that the resulting user input should be echoed or not (like passwords).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the prompt. Do not free it. </dd></dl>

</div>
</div>
<a class="anchor" id="ga75e44b1f27059a00080f80fac0107a20"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_kbdint_setanswer </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>answer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the answer for a question from a message block. </p>
<p>If you have called <a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the &quot;keyboard-interactive&quot; method.">ssh_userauth_kbdint()</a> and got SSH_AUTH_INFO, this function returns the questions from the server.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>index The number of the ith prompt.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">answer</td><td>The answer to give to the server.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, &lt; 0 on error. </dd></dl>

</div>
</div>
<a class="anchor" id="ga35d44897a44b4bb3b7c01108c1812a37"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_list </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>retrieves available authentication methods for this session </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>the SSH session </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">username</td><td>Deprecated, set to NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A bitfield of values SSH_AUTH_METHOD_PASSWORD, SSH_AUTH_METHOD_PUBLICKEY, SSH_AUTH_METHOD_HOSTBASED, SSH_AUTH_METHOD_INTERACTIVE. </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Other reserved flags may appear in future versions. </dd>
<dd>
This call will block, even in nonblocking mode, if run for the first time before a (complete) call to ssh_userauth_none. </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#ga58e7c265236edbc97a2f117d3f23b4dd">ssh_userauth_none()</a>.</p>

<p>Referenced by <a class="el" href="classssh_1_1Session.html#a08d70b5cdb5bd1a2a8f5f9ebbdf67b3b">ssh::Session::getAuthList()</a>, and <a class="el" href="group__libssh__auth.html#ga45af3e96b41cb6aff8982295ad089ea2">ssh_auth_list()</a>.</p>

</div>
</div>
<a class="anchor" id="ga58e7c265236edbc97a2f117d3f23b4dd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_none </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to authenticate through the "none" method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">username</td><td>Deprecated, set to NULL.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened.<br/>
 SSH_AUTH_DENIED: Authentication failed: use another method<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method<br/>
 SSH_AUTH_SUCCESS: Authentication success<br/>
 SSH_AUTH_AGAIN: In nonblocking mode, you've got to call this again later. </dd></dl>

<p>References <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, and <a class="el" href="group__libssh__string.html#ga4154ea16ba2dc5bd5dcb2579686aaac2">ssh_string_from_char()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>, <a class="el" href="group__libssh__auth.html#ga35d44897a44b4bb3b7c01108c1812a37">ssh_userauth_list()</a>, and <a class="el" href="classssh_1_1Session.html#a988398835fc131b0eb5a83a4adaec532">ssh::Session::userauthNone()</a>.</p>

</div>
</div>
<a class="anchor" id="ga78b485bf5c4e68ddfbc25f17de8b6521"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_offer_pubkey </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_string&#160;</td>
          <td class="paramname"><em>publickey</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to authenticate through public key. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">username</td><td>The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The type of the public key. This value is given by <a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00" title="Retrieve a public key from a file.">publickey_from_file()</a> or <a class="el" href="group__libssh__auth.html#ga86b529340a41566aa8fafb231d99f57f" title="returns the type of a private key">ssh_privatekey_type()</a>.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">publickey</td><td>A public key returned by <a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00" title="Retrieve a public key from a file.">publickey_from_file()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened.<br/>
 SSH_AUTH_DENIED: The server doesn't accept that public key as an authentication token. Try another key or another method.<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method.<br/>
 SSH_AUTH_SUCCESS: The public key is accepted, you want now to use <a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5" title="Try to authenticate through public key.">ssh_userauth_pubkey()</a>.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00" title="Retrieve a public key from a file.">publickey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d" title="Reads a SSH private key from a file.">privatekey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga86b529340a41566aa8fafb231d99f57f" title="returns the type of a private key">ssh_privatekey_type()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5" title="Try to authenticate through public key.">ssh_userauth_pubkey()</a> </dd></dl>

<p>References <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, and <a class="el" href="group__libssh__string.html#ga4154ea16ba2dc5bd5dcb2579686aaac2">ssh_string_from_char()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>, and <a class="el" href="classssh_1_1Session.html#a8ac19de04c5c6c396ce8d042052be4ca">ssh::Session::userauthOfferPubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="ga50c0c150f8c4703e7ee49b3e3e3ca215"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_password </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>password</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to authenticate by password. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">username</td><td>The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">password</td><td>The password to use. Take care to clean it after the authentication.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened.<br/>
 SSH_AUTH_DENIED: Authentication failed: use another method.<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method.<br/>
 SSH_AUTH_SUCCESS: Authentication successful.<br/>
 SSH_AUTH_AGAIN: In nonblocking mode, you've got to call this again later.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga6b3b1c2a045286d9476b0252791a07d2" title="Try to authenticate through the &quot;keyboard-interactive&quot; method.">ssh_userauth_kbdint()</a> </dd>
<dd>
BURN_STRING </dd></dl>

<p>References <a class="el" href="group__libssh__string.html#gaca1c58e13e7bdb72ea8410592fa0cbf6">ssh_string_burn()</a>, <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, and <a class="el" href="group__libssh__string.html#ga4154ea16ba2dc5bd5dcb2579686aaac2">ssh_string_from_char()</a>.</p>

<p>Referenced by <a class="el" href="classssh_1_1Session.html#ac2d10826877bec6598961614eb62f0f7">ssh::Session::userauthPassword()</a>.</p>

</div>
</div>
<a class="anchor" id="ga60e80b5020e6182da7790c1f0cb220c1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_privatekey_file </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>passphrase</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to authenticate through a private key file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">username</td><td>The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>Filename containing the private key.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">passphrase</td><td>Passphrase to decrypt the private key. Set to null if none is needed or it is unknown.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened.<br/>
 SSH_AUTH_DENIED: Authentication failed: use another method.<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method.<br/>
 SSH_AUTH_SUCCESS: Authentication successful.<br/>
 SSH_AUTH_AGAIN: In nonblocking mode, you've got to call this again later.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00" title="Retrieve a public key from a file.">publickey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d" title="Reads a SSH private key from a file.">privatekey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2" title="Deallocate a private key object.">privatekey_free()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5" title="Try to authenticate through public key.">ssh_userauth_pubkey()</a> </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2">privatekey_free()</a>, <a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d">privatekey_from_file()</a>, <a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00">publickey_from_file()</a>, <a class="el" href="group__libssh__log.html#ga0bb252b81e0c497fc559c9e4007cf6c5">ssh_log()</a>, <a class="el" href="group__libssh__log.html#gga06fc87d81c62e9abb8790b6e5713c55ba1d3fcdd7b5218f2dcc6471c436792075">SSH_LOG_RARE</a>, <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, and <a class="el" href="group__libssh__auth.html#ga18f0c63c75b9af6c28c032e93628a7c5">ssh_userauth_pubkey()</a>.</p>

</div>
</div>
<a class="anchor" id="ga18f0c63c75b9af6c28c032e93628a7c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_userauth_pubkey </td>
          <td>(</td>
          <td class="paramtype">ssh_session&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_string&#160;</td>
          <td class="paramname"><em>publickey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_private_key&#160;</td>
          <td class="paramname"><em>privatekey</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to authenticate through public key. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>The ssh session to use.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">username</td><td>The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">publickey</td><td>A public key returned by <a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00" title="Retrieve a public key from a file.">publickey_from_file()</a>, or NULL to generate automatically from privatekey.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">privatekey</td><td>A private key returned by <a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d" title="Reads a SSH private key from a file.">privatekey_from_file()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_AUTH_ERROR: A serious error happened.<br/>
 SSH_AUTH_DENIED: Authentication failed: use another method.<br/>
 SSH_AUTH_PARTIAL: You've been partially authenticated, you still have to use another method.<br/>
 SSH_AUTH_SUCCESS: Authentication successful.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__libssh__auth.html#ga40c8ac05358aa941496fd1243ac9ee00" title="Retrieve a public key from a file.">publickey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga9c8517fd342dd68a94045b1e00e15a9d" title="Reads a SSH private key from a file.">privatekey_from_file()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga083af6f8d42a71fab6185137bf155de2" title="Deallocate a private key object.">privatekey_free()</a> </dd>
<dd>
<a class="el" href="group__libssh__auth.html#ga78b485bf5c4e68ddfbc25f17de8b6521" title="Try to authenticate through public key.">ssh_userauth_offer_pubkey()</a> </dd></dl>

<p>References <a class="el" href="group__libssh__auth.html#gae11c083974e8bfb0ebeb7c6fb9a06baf">publickey_from_privatekey()</a>, <a class="el" href="group__libssh__auth.html#ga1bd48caa6d4fc91a0cbedd04ba56f901">publickey_to_string()</a>, <a class="el" href="group__libssh__string.html#gacd9c4eb69f7ecfdcf709deb8dde6a5a8">ssh_string_free()</a>, and <a class="el" href="group__libssh__string.html#ga4154ea16ba2dc5bd5dcb2579686aaac2">ssh_string_from_char()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__auth.html#gad07655f2c742ce68271422197cf2acda">ssh_userauth_autopubkey()</a>, <a class="el" href="group__libssh__auth.html#ga60e80b5020e6182da7790c1f0cb220c1">ssh_userauth_privatekey_file()</a>, and <a class="el" href="classssh_1_1Session.html#a8356cb653749ecb816a3f1aefa37e687">ssh::Session::userauthPubkey()</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<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>