blob: fd45c8095ae521791aa3771c2866e0d5eda34d0f [file] [log] [blame]
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05001<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4<title>3.3.2 Connection objects </title>
5<META NAME="description" CONTENT="3.3.2 Connection objects ">
6<META NAME="keywords" CONTENT="pyOpenSSL">
7<META NAME="resource-type" CONTENT="document">
8<META NAME="distribution" CONTENT="global">
9<link rel="STYLESHEET" href="pyOpenSSL.css">
10<LINK REL="previous" href="openssl-context.html">
11<LINK REL="up" href="openssl-ssl.html">
12<LINK REL="next" href="internals.html">
13</head>
14<body>
15<DIV CLASS="navigation">
16<table align="center" width="100%" cellpadding="0" cellspacing="2">
17<tr>
18<td><A href="openssl-context.html"><img src="previous.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050019 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050020 alt="Previous Page" width="32"></A></td>
21<td><A href="openssl-ssl.html"><img src="up.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050022 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050023 alt="Up One Level" width="32"></A></td>
24<td><A href="internals.html"><img src="next.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050025 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050026 alt="Next Page" width="32"></A></td>
27<td align="center" width="100%">Python OpenSSL Manual</td>
28<td><A href="contents.html"><img src="contents.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050029 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050030 alt="Contents" width="32"></A></td>
31<td><img src="blank.gif"
32 border="0" height="32"
33 alt="" width="32"></td>
34<td><img src="blank.gif"
35 border="0" height="32"
36 alt="" width="32"></td>
37</tr></table>
38<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-context.html">3.3.1 Context objects</A>
39<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
40<b class="navlabel">Next:</b> <a class="sectref" href="internals.html">4 Internals</A>
41<br><hr>
42</DIV>
43<!--End of Navigation Panel-->
44
45<H3><A NAME="SECTION000432000000000000000">&nbsp;</A>
46<BR>
473.3.2 Connection objects
48</H3>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050049
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050050<P>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050051Connection objects have the following methods:
52
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050053<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050054<dl><dt><b><a name='l2h-160'><tt class='method'>accept</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050055<dd>
56Call the <tt class="method">accept</tt> method of the underlying socket and set up SSL on the
57returned socket, using the Context object supplied to this Connection object at
58creation. Returns a pair <code>(<var>conn</var>, <var>address</var>)</code>. where <var>conn</var>
59is the new Connection object created, and <var>address</var> is as returned by the
60socket's <tt class="method">accept</tt>.
61</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050062
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050063<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050064<dl><dt><b><a name='l2h-161'><tt class='method'>bind</tt></a></b>(<var>address</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050065<dd>
66Call the <tt class="method">bind</tt> method of the underlying socket.
67</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050068
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050069<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050070<dl><dt><b><a name='l2h-162'><tt class='method'>close</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050071<dd>
72Call the <tt class="method">close</tt> method of the underlying socket. Note: If you want
73correct SSL closure, you need to call the <tt class="method">shutdown</tt> method first.
74</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050075
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050076<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050077<dl><dt><b><a name='l2h-163'><tt class='method'>connect</tt></a></b>(<var>address</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050078<dd>
79Call the <tt class="method">connect</tt> method of the underlying socket and set up SSL on the
80socket, using the Context object supplied to this Connection object at
81creation.
82</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050083
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050084<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050085<dl><dt><b><a name='l2h-164'><tt class='method'>connect_ex</tt></a></b>(<var>address</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050086<dd>
87Call the <tt class="method">connect_ex</tt> method of the underlying socket and set up SSL on
88the socket, using the Context object supplied to this Connection object at
89creation. Note that if the <tt class="method">connect_ex</tt> method of the socket doesn't
90return 0, SSL won't be initialized.
91</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050092
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050093<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -050094<dl><dt><b><a name='l2h-165'><tt class='method'>do_handshake</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050095<dd>
96Perform an SSL handshake (usually called after <tt class="method">renegotiate</tt> or one of
97<tt class="method">set_accept_state</tt> or <tt class="method">set_accept_state</tt>). This can raise the
98same exceptions as <tt class="method">send</tt> and <tt class="method">recv</tt>.
99</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500100
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500101<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500102<dl><dt><b><a name='l2h-166'><tt class='method'>fileno</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500103<dd>
104Retrieve the file descriptor number for the underlying socket.
105</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500106
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500107<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500108<dl><dt><b><a name='l2h-167'><tt class='method'>listen</tt></a></b>(<var>backlog</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500109<dd>
110Call the <tt class="method">listen</tt> method of the underlying socket.
111</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500112
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500113<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500114<dl><dt><b><a name='l2h-168'><tt class='method'>get_app_data</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500115<dd>
116Retrieve application data as set by <tt class="method">set_app_data</tt>.
117</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500118
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500119<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500120<dl><dt><b><a name='l2h-169'><tt class='method'>get_cipher_list</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500121<dd>
122Retrieve the list of ciphers used by the Connection object. WARNING: This API
123has changed. It used to take an optional parameter and just return a string,
124but not it returns the entire list in one go.
125</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500126
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500127<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500128<dl><dt><b><a name='l2h-170'><tt class='method'>get_client_ca_list</tt></a></b>()
129<dd>
130Retrieve the list of preferred client certificate issuers sent by the server
131as <tt class="class">OpenSSL.crypto.X509Name</tt> objects.
132
133<P>
134If this is a client <tt class="class">Connection</tt>, the list will be empty until the
135connection with the server is established.
136
137<P>
138If this is a server <tt class="class">Connection</tt>, return the list of certificate
139authorities that will be sent or has been sent to the client, as controlled
140by this <tt class="class">Connection</tt>'s <tt class="class">Context</tt>.
141
142<P>
143
144<span class='versionnote'>New in version 0.10.</span>
145
146</dl>
147
148<P>
149<dl><dt><b><a name='l2h-171'><tt class='method'>get_context</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500150<dd>
151Retrieve the Context object associated with this Connection.
152</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500153
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500154<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500155<dl><dt><b><a name='l2h-172'><tt class='method'>get_peer_certificate</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500156<dd>
157Retrieve the other side's certificate (if any)
158</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500159
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500160<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500161<dl><dt><b><a name='l2h-173'><tt class='method'>getpeername</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500162<dd>
163Call the <tt class="method">getpeername</tt> method of the underlying socket.
164</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500165
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500166<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500167<dl><dt><b><a name='l2h-174'><tt class='method'>getsockname</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500168<dd>
169Call the <tt class="method">getsockname</tt> method of the underlying socket.
170</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500171
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500172<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500173<dl><dt><b><a name='l2h-175'><tt class='method'>getsockopt</tt></a></b>(<var>level, optname</var><big>[</big><var>, buflen</var><big>]</big>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500174<dd>
175Call the <tt class="method">getsockopt</tt> method of the underlying socket.
176</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500177
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500178<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500179<dl><dt><b><a name='l2h-176'><tt class='method'>pending</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500180<dd>
Jean-Paul Calderoneb6f57be2008-03-06 21:22:16 -0500181Retrieve the number of bytes that can be safely read from the SSL buffer
182(<i>not</i> the underlying transport buffer).
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500183</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500184
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500185<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500186<dl><dt><b><a name='l2h-177'><tt class='method'>recv</tt></a></b>(<var>bufsize</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500187<dd>
188Receive data from the Connection. The return value is a string representing the
189data received. The maximum amount of data to be received at once, is specified
190by <var>bufsize</var>.
191</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500192
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500193<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500194<dl><dt><b><a name='l2h-178'><tt class='method'>bio_write</tt></a></b>(<var>bytes</var>)
195<dd>
196If the Connection was created with a memory BIO, this method can be used to add
197bytes to the read end of that memory BIO. The Connection can then read the
198bytes (for example, in response to a call to <tt class="method">recv</tt>).
199</dl>
200
201<P>
202<dl><dt><b><a name='l2h-179'><tt class='method'>renegotiate</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500203<dd>
204Renegotiate the SSL session. Call this if you wish to change cipher suites or
205anything like that.
206</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500207
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500208<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500209<dl><dt><b><a name='l2h-180'><tt class='method'>send</tt></a></b>(<var>string</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500210<dd>
211Send the <var>string</var> data to the Connection.
212</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500213
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500214<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500215<dl><dt><b><a name='l2h-181'><tt class='method'>bio_read</tt></a></b>(<var>bufsize</var>)
216<dd>
217If the Connection was created with a memory BIO, this method can be used to
218read bytes from the write end of that memory BIO. Many Connection methods will
219add bytes which must be read in this manner or the buffer will eventually fill
220up and the Connection will be able to take no further actions.
221</dl>
222
223<P>
224<dl><dt><b><a name='l2h-182'><tt class='method'>sendall</tt></a></b>(<var>string</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500225<dd>
226Send all of the <var>string</var> data to the Connection. This calls <tt class="method">send</tt>
227repeatedly until all data is sent. If an error occurs, it's impossible to tell
228how much data has been sent.
229</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500230
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500231<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500232<dl><dt><b><a name='l2h-183'><tt class='method'>set_accept_state</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500233<dd>
234Set the connection to work in server mode. The handshake will be handled
235automatically by read/write.
236</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500237
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500238<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500239<dl><dt><b><a name='l2h-184'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500240<dd>
241Associate <var>data</var> with this Connection object. <var>data</var> can be retrieved
242later using the <tt class="method">get_app_data</tt> method.
243</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500244
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500245<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500246<dl><dt><b><a name='l2h-185'><tt class='method'>set_connect_state</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500247<dd>
248Set the connection to work in client mode. The handshake will be handled
249automatically by read/write.
250</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500251
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500252<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500253<dl><dt><b><a name='l2h-186'><tt class='method'>setblocking</tt></a></b>(<var>flag</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500254<dd>
255Call the <tt class="method">setblocking</tt> method of the underlying socket.
256</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500257
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500258<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500259<dl><dt><b><a name='l2h-187'><tt class='method'>setsockopt</tt></a></b>(<var>level, optname, value</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500260<dd>
261Call the <tt class="method">setsockopt</tt> method of the underlying socket.
262</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500263
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500264<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500265<dl><dt><b><a name='l2h-188'><tt class='method'>shutdown</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500266<dd>
267Send the shutdown message to the Connection. Returns true if the shutdown
268message exchange is completed and false otherwise (in which case you call
269<tt class="method">recv()</tt> or <tt class="method">send()</tt> when the connection becomes
270readable/writeable.
271</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500272
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500273<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500274<dl><dt><b><a name='l2h-189'><tt class='method'>get_shutdown</tt></a></b>()
Jean-Paul Calderone72b8f0f2008-02-21 23:57:40 -0500275<dd>
276Get the shutdown state of the Connection. Returns a bitvector of either or
277both of <var>SENT_SHUTDOWN</var> and <var>RECEIVED_SHUTDOWN</var>.
278</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500279
Jean-Paul Calderone72b8f0f2008-02-21 23:57:40 -0500280<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500281<dl><dt><b><a name='l2h-190'><tt class='method'>set_shutdown</tt></a></b>(<var>state</var>)
Jean-Paul Calderone72b8f0f2008-02-21 23:57:40 -0500282<dd>
283Set the shutdown state of the Connection. <var>state</var> is a bitvector of
284either or both of <var>SENT_SHUTDOWN</var> and <var>RECEIVED_SHUTDOWN</var>.
285</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500286
Jean-Paul Calderone72b8f0f2008-02-21 23:57:40 -0500287<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500288<dl><dt><b><a name='l2h-191'><tt class='method'>sock_shutdown</tt></a></b>(<var>how</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500289<dd>
290Call the <tt class="method">shutdown</tt> method of the underlying socket.
291</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500292
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500293<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500294<dl><dt><b><a name='l2h-192'><tt class='method'>bio_shutdown</tt></a></b>()
295<dd>
296If the Connection was created with a memory BIO, this method can be used to
297indicate that ``end of file'' has been reached on the read end of that memory
298BIO.
299</dl>
300
301<P>
302<dl><dt><b><a name='l2h-193'><tt class='method'>state_string</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500303<dd>
304Retrieve a verbose string detailing the state of the Connection.
305</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500306
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500307<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500308<dl><dt><b><a name='l2h-194'><tt class='method'>client_random</tt></a></b>()
309<dd>
310Retrieve the random value used with the client hello message.
311</dl>
312
313<P>
314<dl><dt><b><a name='l2h-195'><tt class='method'>server_random</tt></a></b>()
315<dd>
316Retrieve the random value used with the server hello message.
317</dl>
318
319<P>
320<dl><dt><b><a name='l2h-196'><tt class='method'>master_key</tt></a></b>()
321<dd>
322Retrieve the value of the master key for this session.
323</dl>
324
325<P>
326<dl><dt><b><a name='l2h-197'><tt class='method'>want_read</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500327<dd>
328Checks if more data has to be read from the transport layer to complete an
329operation.
330</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500331
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500332<P>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500333<dl><dt><b><a name='l2h-198'><tt class='method'>want_write</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500334<dd>
335Checks if there is data to write to the transport layer to complete an
336operation.
337</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500338
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500339<P>
340
341<DIV CLASS="navigation">
342<p><hr>
343<table align="center" width="100%" cellpadding="0" cellspacing="2">
344<tr>
345<td><A href="openssl-context.html"><img src="previous.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500346 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500347 alt="Previous Page" width="32"></A></td>
348<td><A href="openssl-ssl.html"><img src="up.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500349 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500350 alt="Up One Level" width="32"></A></td>
351<td><A href="internals.html"><img src="next.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500352 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500353 alt="Next Page" width="32"></A></td>
354<td align="center" width="100%">Python OpenSSL Manual</td>
355<td><A href="contents.html"><img src="contents.gif"
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500356 border="0" height="32"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500357 alt="Contents" width="32"></A></td>
358<td><img src="blank.gif"
359 border="0" height="32"
360 alt="" width="32"></td>
361<td><img src="blank.gif"
362 border="0" height="32"
363 alt="" width="32"></td>
364</tr></table>
365<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-context.html">3.3.1 Context objects</A>
366<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
367<b class="navlabel">Next:</b> <a class="sectref" href="internals.html">4 Internals</A>
368<hr>
Jean-Paul Calderone215d51b2009-11-13 09:19:21 -0500369<span class="release-info">Release 0.10.</span>
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500370</DIV>
371<!--End of Navigation Panel-->
372
373</BODY>
374</HTML>