<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>ssl::basic_context::set_password_callback (1 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../set_password_callback.html" title="ssl::basic_context::set_password_callback">
<link rel="prev" href="../set_password_callback.html" title="ssl::basic_context::set_password_callback">
<link rel="next" href="overload2.html" title="ssl::basic_context::set_password_callback (2 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../set_password_callback.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../set_password_callback.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../boost_asio.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.ssl__basic_context.set_password_callback.overload1"></a><a class="link" href="overload1.html" title="ssl::basic_context::set_password_callback (1 of 2 overloads)">ssl::basic_context::set_password_callback
          (1 of 2 overloads)</a>
</h5></div></div></div>
<p>
            Set the password callback.
          </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <span class="identifier">PasswordCallback</span><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">set_password_callback</span><span class="special">(</span>
    <span class="identifier">PasswordCallback</span> <span class="identifier">callback</span><span class="special">);</span>
</pre>
<p>
            This function is used to specify a callback function to obtain password
            information about an encrypted key in PEM format.
          </p>
<a name="boost_asio.reference.ssl__basic_context.set_password_callback.overload1.parameters"></a><h6>
<a name="id1328592"></a>
            <a class="link" href="overload1.html#boost_asio.reference.ssl__basic_context.set_password_callback.overload1.parameters">Parameters</a>
          </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">callback</span></dt>
<dd>
<p>
                  The function object to be used for obtaining the password. The
                  function signature of the handler must be: 
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">password_callback</span><span class="special">(</span>
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">max_length</span><span class="special">,</span>  <span class="comment">// The maximum size for a password.
</span>  <span class="identifier">password_purpose</span> <span class="identifier">purpose</span> <span class="comment">// Whether password is for reading or writing.
</span><span class="special">);</span> 
</pre>
<p>
                  The return value of the callback is a string containing the password.
                </p>
</dd>
</dl>
</div>
<a name="boost_asio.reference.ssl__basic_context.set_password_callback.overload1.exceptions"></a><h6>
<a name="id1328721"></a>
            <a class="link" href="overload1.html#boost_asio.reference.ssl__basic_context.set_password_callback.overload1.exceptions">Exceptions</a>
          </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">boost::system::system_error</span></dt>
<dd><p>
                  Thrown on failure.
                </p></dd>
</dl>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2003 - 2010 Christopher M. Kohlhoff<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../set_password_callback.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../set_password_callback.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../boost_asio.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
