initial source import
diff --git a/doc/html/about.html b/doc/html/about.html
new file mode 100644
index 0000000..50a55ce
--- /dev/null
+++ b/doc/html/about.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>About this document ...</title>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="previous" href="internals.html">
+<LINK REL="up" HREF="pyOpenSSL.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="socket-methods.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="socket-methods.html">4.3 Acessing Socket Methods</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION000600000000000000000">
+About this document ...</A>
+</H1><strong>Python OpenSSL Manual</strong>
+<p> This document was generated using the <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> translator.
+</p>
+
+<p> <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> is Copyright ©
+ 1993, 1994, 1995, 1996, 1997, <a
+ href="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos
+ Drakos</a>, Computer Based Learning Unit, University of
+ Leeds, and Copyright © 1997, 1998, <a
+ href="http://www.maths.mq.edu.au/~ross/">Ross
+ Moore</a>, Mathematics Department, Macquarie University,
+ Sydney.
+</p>
+
+<p> The application of <a
+ href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+ <strong>LaTeX</strong>2<tt>HTML</tt></a> to the Python
+ documentation has been heavily tailored by Fred L. Drake,
+ Jr. Original navigation icons were contributed by Christopher
+ Petrilli.
+</p>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="socket-methods.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="socket-methods.html">4.3 Acessing Socket Methods</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/blank.gif b/doc/html/blank.gif
new file mode 100644
index 0000000..2e31f4e
--- /dev/null
+++ b/doc/html/blank.gif
Binary files differ
diff --git a/doc/html/building-unix.html b/doc/html/building-unix.html
new file mode 100644
index 0000000..a255c56
--- /dev/null
+++ b/doc/html/building-unix.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>2.1 Building the Module on a Unix System </title>
+<META NAME="description" CONTENT="2.1 Building the Module on a Unix System ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="building-windows.html">
+<LINK REL="previous" href="building.html">
+<LINK REL="up" href="building.html">
+<LINK REL="next" href="building-windows.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="building.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="building.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="building-windows.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="building-windows.html">2.2 Building the Module</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000310000000000000000"> </A>
+<BR>
+2.1 Building the Module on a Unix System
+</H2>
+
+<P>
+pyOpenSSL uses distutils, so there really shouldn't be any problems. To build
+the library:
+<dl><dd><pre class="verbatim">
+python setup.py build
+</pre></dl>
+
+<P>
+If your OpenSSL header files aren't in <code>/usr/include</code>, you may need to
+supply the <code>-I</code> flag to let the setup script know where to look. The same
+goes for the libraries of course, use the <code>-L</code> flag. Note that
+<code>build</code> won't accept these flags, so you have to run first
+<code>build_ext</code> and then <code>build</code>! Example:
+<dl><dd><pre class="verbatim">
+python setup.py build_ext -I/usr/local/ssl/include -L/usr/local/ssl/lib
+python setup.py build
+</pre></dl>
+
+<P>
+Now you should have a directory called <code>OpenSSL</code> that contains e.g.
+<code>SSL.so</code> and <code>__init__.py</code> somewhere in the build dicrectory,
+so just:
+<dl><dd><pre class="verbatim">
+python setup.py install
+</pre></dl>
+
+<P>
+If you, for some arcane reason, don't want the module to appear in the
+<code>site-packages</code> directory, use the <code>--prefix</code> option.
+
+<P>
+You can, of course, do
+<dl><dd><pre class="verbatim">
+python setup.py --help
+</pre></dl>
+
+<P>
+to find out more about how to use the script.
+
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="building.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="building.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="building-windows.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="building-windows.html">2.2 Building the Module</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/building-windows.html b/doc/html/building-windows.html
new file mode 100644
index 0000000..1a8f826
--- /dev/null
+++ b/doc/html/building-windows.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>2.2 Building the Module on a Windows System </title>
+<META NAME="description" CONTENT="2.2 Building the Module on a Windows System ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="previous" href="building-unix.html">
+<LINK REL="up" href="building.html">
+<LINK REL="next" href="openssl.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="building-unix.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="building.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="building-unix.html">2.1 Building the Module</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000320000000000000000"> </A>
+<BR>
+2.2 Building the Module on a Windows System
+</H2>
+
+<P>
+Big thanks to Itamar Shtull-Trauring and Oleg Orlov for their help with
+Windows build instructions. Same as for Unix systems, we have to separate
+the <code>build_ext</code> and the <code>build</code>.
+
+<P>
+Building the library:
+
+<P>
+<dl><dd><pre class="verbatim">
+setup.py build_ext -I ...\openssl\inc32 -L ...\openssl\out32dll
+setup.py build
+</pre></dl>
+
+<P>
+Where <code>...\openssl</code> is of course the location of your OpenSSL installation.
+
+<P>
+Installation is the same as for Unix systems:
+<dl><dd><pre class="verbatim">
+setup.py install
+</pre></dl>
+
+<P>
+And similarily, you can do
+<dl><dd><pre class="verbatim">
+setup.py --help
+</pre></dl>
+
+<P>
+to get more information.
+
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="building-unix.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="building.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="building-unix.html">2.1 Building the Module</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/building.html b/doc/html/building.html
new file mode 100644
index 0000000..b70817c
--- /dev/null
+++ b/doc/html/building.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>2 Building and Installing </title>
+<META NAME="description" CONTENT="2 Building and Installing ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl.html">
+<LINK REL="previous" href="intro.html">
+<LINK REL="up" HREF="pyOpenSSL.html">
+<LINK REL="next" href="building-unix.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="intro.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="building-unix.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="intro.html">1 Introduction</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="building-unix.html">2.1 Building the Module</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<H1><A NAME="SECTION000300000000000000000"> </A>
+<BR>
+2 Building and Installing
+</H1>
+
+<P>
+These instructions can also be found in the file <code>INSTALL</code>.
+
+<P>
+I have tested this on Debian Linux systems (woody and sid), Solaris 2.6 and
+2.7. Others have successfully compiled it on Windows and NT.
+
+<P>
+
+<p><hr>
+
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html79"
+ href="building-unix.html">2.1 Building the Module on a Unix System </A>
+<LI><A NAME="tex2html80"
+ href="building-windows.html">2.2 Building the Module on a Windows System </A>
+</UL>
+<!--End of Table of Child-Links-->
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="intro.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="building-unix.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="intro.html">1 Introduction</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="building-unix.html">2.1 Building the Module</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/callbacks.html b/doc/html/callbacks.html
new file mode 100644
index 0000000..e43bd99
--- /dev/null
+++ b/doc/html/callbacks.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>4.2 Callbacks </title>
+<META NAME="description" CONTENT="4.2 Callbacks ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="socket-methods.html">
+<LINK REL="previous" href="exceptions.html">
+<LINK REL="up" href="internals.html">
+<LINK REL="next" href="socket-methods.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="exceptions.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="internals.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="socket-methods.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="exceptions.html">4.1 Exceptions</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="socket-methods.html">4.3 Acessing Socket Methods</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000520000000000000000"> </A>
+<BR>
+4.2 Callbacks
+</H2>
+<P>
+<EM><EM><EM>There are a number of problems with callbacks. First of all, OpenSSL is written
+as a C library, it's not meant to have Python callbacks, so a way around that
+is needed. Another problem is thread support. A lot of the OpenSSL I/O
+functions can block if the socket is in blocking mode, and then you want other
+Python threads to be able to do other things. The real trouble is if you've
+released the thread lock to do a potentially blocking operation, and the
+operation calls a callback. Then we must take the thread lock back<A NAME="tex2html6"
+ HREF="#foot916"><SUP>5</SUP></A>.
+</EM></EM></EM>
+<P>
+<EM><EM><EM>There are two solutions to the first problem, both of which are necessary. The
+first solution to use is if the C callback allows ''userdata'' to be passed to
+it (an arbitrary pointer normally). This is great! We can set our Python
+function object as the real userdata and emulate userdata for the Python
+function in another way. The other solution can be used if an object with an
+''app_data'' system always is passed to the callback. For example, the SSL
+object in OpenSSL has app_data functions and in e.g. the verification
+callbacks, you can retrieve the related SSL object. What we do is to set our
+wrapper <tt class="class">Connection</tt> object as app_data for the SSL object, and we can
+easily find the Python callback.
+</EM></EM></EM>
+<P>
+<EM><EM><EM>The other problem is also partially solved by app_data. Since we're associating
+our wrapper objects with the ''real'' objects, we can easily access data from
+the <tt class="class">Connection</tt> object. The solution then is to simply include a
+<tt class="ctype">PyThreadState</tt> variable in the <tt class="class">Connection</tt> declaration, and write
+macros similar to <tt class="cfunction">Py_BEGIN_ALLOW_THREADS</tt> and
+<tt class="cfunction">Py_END_ALLOW_THREADS</tt> that allows specifying of the
+<tt class="ctype">PyThreadState</tt> variable to use. Now we can simply ''begin allow
+threads'' before a potentially blocking operation, and ''end allow threads''
+before calling a callback.
+</EM></EM></EM>
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot916">... back</A><A
+ href="callbacks.html#tex2html6"><SUP>5</SUP></A></DT>
+<DD>I'm
+not sure why this is necessary, but otherwise I get a segmentation violation on
+<tt class="cfunction">PyEval_CallObject</tt>
+
+</DD>
+</DL>
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="exceptions.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="internals.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="socket-methods.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="exceptions.html">4.1 Exceptions</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="socket-methods.html">4.3 Acessing Socket Methods</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/contents.gif b/doc/html/contents.gif
new file mode 100644
index 0000000..6d299c4
--- /dev/null
+++ b/doc/html/contents.gif
Binary files differ
diff --git a/doc/html/contents.html b/doc/html/contents.html
new file mode 100644
index 0000000..39f9e49
--- /dev/null
+++ b/doc/html/contents.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Contents</title>
+<META NAME="description" CONTENT="Contents">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="intro.html">
+<LINK REL="previous" HREF="pyOpenSSL.html">
+<LINK REL="up" HREF="pyOpenSSL.html">
+<LINK REL="next" href="intro.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A HREF="pyOpenSSL.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="intro.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="intro.html">1 Introduction</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<BR>
+<BR><H2><A NAME="SECTION000100000000000000000">
+Contents</A>
+</H2>
+<!--Table of Contents-->
+
+<UL CLASS="TofC">
+<LI><A NAME="tex2html45"
+ href="intro.html">1 Introduction </A>
+<LI><A NAME="tex2html46"
+ href="building.html">2 Building and Installing </A>
+<UL>
+<LI><A NAME="tex2html47"
+ href="building-unix.html">2.1 Building the Module on a Unix System </A>
+<LI><A NAME="tex2html48"
+ href="building-windows.html">2.2 Building the Module on a Windows System </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html49"
+ href="openssl.html">3 OpenSSL -- Python interface to OpenSSL </A>
+<UL>
+<LI><A NAME="tex2html50"
+ href="openssl-crypto.html">3.1 crypto -- Generic cryptographic module </A>
+<LI><A NAME="tex2html51"
+ href="openssl-rand.html">3.2 rand -- An interface to the OpenSSL pseudo random number generator </A>
+<LI><A NAME="tex2html52"
+ href="openssl-ssl.html">3.3 SSL -- An interface to the SSL-specific parts of OpenSSL </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html53"
+ href="internals.html">4 Internals </A>
+<UL>
+<LI><A NAME="tex2html54"
+ href="exceptions.html">4.1 Exceptions </A>
+<LI><A NAME="tex2html55"
+ href="callbacks.html">4.2 Callbacks </A>
+<LI><A NAME="tex2html56"
+ href="socket-methods.html">4.3 Acessing Socket Methods </A>
+</UL></UL>
+<!--End of Table of Contents-->
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A HREF="pyOpenSSL.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="intro.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="intro.html">1 Introduction</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/exceptions.html b/doc/html/exceptions.html
new file mode 100644
index 0000000..9c8345e
--- /dev/null
+++ b/doc/html/exceptions.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>4.1 Exceptions </title>
+<META NAME="description" CONTENT="4.1 Exceptions ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="callbacks.html">
+<LINK REL="previous" href="internals.html">
+<LINK REL="up" href="internals.html">
+<LINK REL="next" href="callbacks.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="internals.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="internals.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="callbacks.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="callbacks.html">4.2 Callbacks</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000510000000000000000"> </A>
+<BR>
+4.1 Exceptions
+</H2>
+<P>
+<EM><EM><EM>We realized early that most of the exceptions would be raised by the I/O
+functions of OpenSSL, so it felt natural to mimic OpenSSL's error code system,
+translating them into Python exceptions. This naturally gives us the exceptions
+<tt class="exception">SSL.ZeroReturnError</tt>, <tt class="exception">SSL.WantReadError</tt>,
+<tt class="exception">SSL.WantWriteError</tt>, <tt class="exception">SSL.WantX509LookupError</tt> and
+<tt class="exception">SSL.SysCallError</tt>.
+</EM></EM></EM>
+<P>
+<EM><EM><EM>For more information about this, see section <A href="openssl-ssl.html#openssl-ssl">3.3</A>.
+</EM></EM></EM>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="internals.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="internals.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="callbacks.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="callbacks.html">4.2 Callbacks</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/index.gif b/doc/html/index.gif
new file mode 100644
index 0000000..32eecfb
--- /dev/null
+++ b/doc/html/index.gif
Binary files differ
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 0000000..9bc20ed
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Python OpenSSL Manual</title>
+<META NAME="description" CONTENT="Python OpenSSL Manual">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="contents.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><A href="contents.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Next:</b> <a class="sectref" href="contents.html">Contents</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<P>
+
+<div class="titlepage">
+<center>
+<h1>Python OpenSSL Manual</h1>
+<p><b><font size='+2'>Martin Sjögren</font></b></p>
+<p><span class="email">martin@strakt.com</span></p>
+<p>
+</center>
+</div>
+
+<P>
+
+<H3>Abstract:</H3>
+<DIV CLASS="ABSTRACT">
+
+This module is a rather thin wrapper around (a subset of) the OpenSSL library.
+With thin wrapper I mean that a lot of the object methods do nothing more than
+calling a corresponding function in the OpenSSL library.
+</DIV>
+<P>
+
+<P>
+
+<p><hr>
+
+<!--Table of Child-Links-->
+
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html10"
+ href="contents.html">Contents</A>
+<LI><A NAME="tex2html11"
+ href="intro.html">1 Introduction </A>
+<LI><A NAME="tex2html12"
+ href="building.html">2 Building and Installing </A>
+<UL>
+<LI><A NAME="tex2html13"
+ href="building-unix.html">2.1 Building the Module on a Unix System </A>
+<LI><A NAME="tex2html14"
+ href="building-windows.html">2.2 Building the Module on a Windows System </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html15"
+ href="openssl.html">3 <tt class="module">OpenSSL</tt> -- Python interface to OpenSSL </A>
+<UL>
+<LI><A NAME="tex2html16"
+ href="openssl-crypto.html">3.1 <tt class="module">crypto</tt> -- Generic cryptographic module </A>
+<UL>
+<LI><A NAME="tex2html17"
+ href="openssl-x509.html">3.1.1 X509 objects </A>
+<LI><A NAME="tex2html18"
+ href="openssl-x509name.html">3.1.2 X509Name objects </A>
+<LI><A NAME="tex2html19"
+ href="openssl-x509req.html">3.1.3 X509Req objects </A>
+<LI><A NAME="tex2html20"
+ href="openssl-x509store.html">3.1.4 X509Store objects </A>
+<LI><A NAME="tex2html21"
+ href="openssl-pkey.html">3.1.5 PKey objects </A>
+<LI><A NAME="tex2html22"
+ href="openssl-pkcs7.html">3.1.6 PKCS7 objects </A>
+<LI><A NAME="tex2html23"
+ href="openssl-pkcs12.html">3.1.7 PKCS12 objects </A>
+<LI><A NAME="tex2html24"
+ href="openssl-509ext.html">3.1.8 X509Extension objects </A>
+<LI><A NAME="tex2html25"
+ href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
+</UL>
+<LI><A NAME="tex2html26"
+ href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
+<LI><A NAME="tex2html27"
+ href="openssl-ssl.html">3.3 <tt class="module">SSL</tt> -- An interface to the SSL-specific parts of OpenSSL </A>
+<UL>
+<LI><A NAME="tex2html28"
+ href="openssl-context.html">3.3.1 Context objects </A>
+<LI><A NAME="tex2html29"
+ href="openssl-connection.html">3.3.2 Connection objects </A>
+</UL>
+</UL>
+<BR>
+<LI><A NAME="tex2html30"
+ href="internals.html">4 Internals </A>
+<UL>
+<LI><A NAME="tex2html31"
+ href="exceptions.html">4.1 Exceptions </A>
+<LI><A NAME="tex2html32"
+ href="callbacks.html">4.2 Callbacks </A>
+<LI><A NAME="tex2html33"
+ href="socket-methods.html">4.3 Acessing Socket Methods </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html34"
+ href="about.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><A href="contents.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Next:</b> <a class="sectref" href="contents.html">Contents</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/internals.html b/doc/html/internals.html
new file mode 100644
index 0000000..1ecfb5d
--- /dev/null
+++ b/doc/html/internals.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>4 Internals </title>
+<META NAME="description" CONTENT="4 Internals ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="about.html">
+<LINK REL="previous" href="openssl.html">
+<LINK REL="up" HREF="pyOpenSSL.html">
+<LINK REL="next" href="exceptions.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-connection.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="exceptions.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-connection.html">3.3.2 Connection objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="exceptions.html">4.1 Exceptions</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<H1><A NAME="SECTION000500000000000000000"> </A>
+<BR>
+4 Internals
+</H1>
+<P>
+<EM><EM><EM>We ran into three main problems developing this: Exceptions, callbacks and
+accessing socket methods. This is what this chapter is about.
+</EM></EM></EM>
+<P>
+
+<p><hr>
+
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html296"
+ href="exceptions.html">4.1 Exceptions </A>
+<LI><A NAME="tex2html297"
+ href="callbacks.html">4.2 Callbacks </A>
+<LI><A NAME="tex2html298"
+ href="socket-methods.html">4.3 Acessing Socket Methods </A>
+</UL>
+<!--End of Table of Child-Links-->
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-connection.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="exceptions.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-connection.html">3.3.2 Connection objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="exceptions.html">4.1 Exceptions</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/intro.html b/doc/html/intro.html
new file mode 100644
index 0000000..c7f3797
--- /dev/null
+++ b/doc/html/intro.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>1 Introduction </title>
+<META NAME="description" CONTENT="1 Introduction ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="building.html">
+<LINK REL="previous" href="contents.html">
+<LINK REL="up" HREF="pyOpenSSL.html">
+<LINK REL="next" href="building.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="contents.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="building.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="contents.html">Contents</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION000200000000000000000"> </A>
+<BR>
+1 Introduction
+</H1>
+
+<P>
+The reason this module exists at all is that the SSL support in the socket
+module in the Python 2.1 distribution (which is what we used, of course I
+cannot speak for later versions) is severely limited.
+
+<P>
+When asking about SSL on the comp.lang.python newsgroup (or on
+python-list@python.org) people usually pointed you to the M2Crypto package.
+The M2Crypto.SSL module does implement a lot of OpenSSL's functionality but
+unfortunately its error handling system does not seem to be finished,
+especially for non-blocking I/O. I think that much of the reason for this
+is that M2Crypto<A NAME="tex2html1"
+ HREF="#foot876"><SUP>1</SUP></A> is
+developed using SWIG<A NAME="tex2html2"
+ HREF="#foot877"><SUP>2</SUP></A>. This
+makes it awkward to create functions that e.g. can return both an integer and
+NULL since (as far as I know) you basically write C functions and SWIG makes
+wrapper functions that parses the Python argument list and calls your C
+function, and finally transforms your return value to a Python object.
+
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot876">... M2Crypto</A><A
+ href="intro.html#tex2html1"><SUP>1</SUP></A></DT>
+<DD>See <a class="url" href="http://www.post1.com/home/ngps/m2/">http://www.post1.com/home/ngps/m2/</a>
+
+</DD>
+<DT><A NAME="foot877">... SWIG</A><A
+ href="intro.html#tex2html2"><SUP>2</SUP></A></DT>
+<DD>See <a class="url" href="http://swig.sourceforge.net/">http://swig.sourceforge.net/</a>
+
+</DD>
+</DL>
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="contents.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="building.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="contents.html">Contents</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/modules.gif b/doc/html/modules.gif
new file mode 100644
index 0000000..f5860b6
--- /dev/null
+++ b/doc/html/modules.gif
Binary files differ
diff --git a/doc/html/next.gif b/doc/html/next.gif
new file mode 100644
index 0000000..5dcaff8
--- /dev/null
+++ b/doc/html/next.gif
Binary files differ
diff --git a/doc/html/openssl-509ext.html b/doc/html/openssl-509ext.html
new file mode 100644
index 0000000..c5a8a3b
--- /dev/null
+++ b/doc/html/openssl-509ext.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.8 X509Extension objects </title>
+<META NAME="description" CONTENT="3.1.8 X509Extension objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-netscape-spki.html">
+<LINK REL="previous" href="openssl-pkcs12.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-netscape-spki.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-pkcs12.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-netscape-spki.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-pkcs12.html">3.1.7 PKCS12 objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000418000000000000000"> </A>
+<BR>
+3.1.8 X509Extension objects
+</H3>
+<P>
+<EM><EM><EM>X509Extension objects currently only have one method:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-75'><tt class='method'>get_critical</tt></a></b>()
+<dd>
+Return the critical field of the extension object.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-pkcs12.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-netscape-spki.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-pkcs12.html">3.1.7 PKCS12 objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-connection.html b/doc/html/openssl-connection.html
new file mode 100644
index 0000000..b775919
--- /dev/null
+++ b/doc/html/openssl-connection.html
@@ -0,0 +1,264 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.3.2 Connection objects </title>
+<META NAME="description" CONTENT="3.3.2 Connection objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="previous" href="openssl-context.html">
+<LINK REL="up" href="openssl-ssl.html">
+<LINK REL="next" href="internals.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-context.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-ssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="internals.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-context.html">3.3.1 Context objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000432000000000000000"> </A>
+<BR>
+3.3.2 Connection objects
+</H3>
+<P>
+<EM><EM><EM>Connection objects have the following methods:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-137'><tt class='method'>accept</tt></a></b>()
+<dd>
+Call the <tt class="method">accept</tt> method of the underlying socket and set up SSL on the
+returned socket, using the Context object supplied to this Connection object at
+creation. Returns a pair <code>(<var>conn</var>, <var>address</var>)</code>. where <var>conn</var>
+is the new Connection object created, and <var>address</var> is as returned by the
+socket's <tt class="method">accept</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-138'><tt class='method'>bind</tt></a></b>(<var>address</var>)
+<dd>
+Call the <tt class="method">bind</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-139'><tt class='method'>close</tt></a></b>()
+<dd>
+Call the <tt class="method">close</tt> method of the underlying socket. Note: If you want
+correct SSL closure, you need to call the <tt class="method">shutdown</tt> method first.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-140'><tt class='method'>connect</tt></a></b>(<var>address</var>)
+<dd>
+Call the <tt class="method">connect</tt> method of the underlying socket and set up SSL on the
+socket, using the Context object supplied to this Connection object at
+creation.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-141'><tt class='method'>connect_ex</tt></a></b>(<var>address</var>)
+<dd>
+Call the <tt class="method">connect_ex</tt> method of the underlying socket and set up SSL on
+the socket, using the Context object supplied to this Connection object at
+creation. Note that if the <tt class="method">connect_ex</tt> method of the socket doesn't
+return 0, SSL won't be initialized.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-142'><tt class='method'>do_handshake</tt></a></b>()
+<dd>
+Perform an SSL handshake (usually called after <tt class="method">renegotiate</tt> or one of
+<tt class="method">set_accept_state</tt> or <tt class="method">set_accept_state</tt>). This can raise the
+same exceptions as <tt class="method">send</tt> and <tt class="method">recv</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-143'><tt class='method'>fileno</tt></a></b>()
+<dd>
+Retrieve the file descriptor number for the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-144'><tt class='method'>listen</tt></a></b>(<var>backlog</var>)
+<dd>
+Call the <tt class="method">listen</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-145'><tt class='method'>get_app_data</tt></a></b>()
+<dd>
+Retrieve application data as set by <tt class="method">set_app_data</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-146'><tt class='method'>get_cipher_list</tt></a></b>()
+<dd>
+Retrieve the list of ciphers used by the Connection object. WARNING: This API
+has changed. It used to take an optional parameter and just return a string,
+but not it returns the entire list in one go.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-147'><tt class='method'>get_context</tt></a></b>()
+<dd>
+Retrieve the Context object associated with this Connection.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-148'><tt class='method'>get_peer_certificate</tt></a></b>()
+<dd>
+Retrieve the other side's certificate (if any)
+</dl>
+<P>
+<dl><dt><b><a name='l2h-149'><tt class='method'>getpeername</tt></a></b>()
+<dd>
+Call the <tt class="method">getpeername</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-150'><tt class='method'>getsockname</tt></a></b>()
+<dd>
+Call the <tt class="method">getsockname</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-151'><tt class='method'>getsockopt</tt></a></b>(<var>level, optname</var><big>[</big><var>, buflen</var><big>]</big>)
+<dd>
+Call the <tt class="method">getsockopt</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-152'><tt class='method'>pending</tt></a></b>()
+<dd>
+Retrieve the number of bytes that can be safely read from the SSL buffer.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-153'><tt class='method'>recv</tt></a></b>(<var>bufsize</var>)
+<dd>
+Receive data from the Connection. The return value is a string representing the
+data received. The maximum amount of data to be received at once, is specified
+by <var>bufsize</var>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-154'><tt class='method'>renegotiate</tt></a></b>()
+<dd>
+Renegotiate the SSL session. Call this if you wish to change cipher suites or
+anything like that.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-155'><tt class='method'>send</tt></a></b>(<var>string</var>)
+<dd>
+Send the <var>string</var> data to the Connection.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-156'><tt class='method'>sendall</tt></a></b>(<var>string</var>)
+<dd>
+Send all of the <var>string</var> data to the Connection. This calls <tt class="method">send</tt>
+repeatedly until all data is sent. If an error occurs, it's impossible to tell
+how much data has been sent.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-157'><tt class='method'>set_accept_state</tt></a></b>()
+<dd>
+Set the connection to work in server mode. The handshake will be handled
+automatically by read/write.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-158'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
+<dd>
+Associate <var>data</var> with this Connection object. <var>data</var> can be retrieved
+later using the <tt class="method">get_app_data</tt> method.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-159'><tt class='method'>set_connect_state</tt></a></b>()
+<dd>
+Set the connection to work in client mode. The handshake will be handled
+automatically by read/write.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-160'><tt class='method'>setblocking</tt></a></b>(<var>flag</var>)
+<dd>
+Call the <tt class="method">setblocking</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-161'><tt class='method'>setsockopt</tt></a></b>(<var>level, optname, value</var>)
+<dd>
+Call the <tt class="method">setsockopt</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-162'><tt class='method'>shutdown</tt></a></b>()
+<dd>
+Send the shutdown message to the Connection. Returns true if the shutdown
+message exchange is completed and false otherwise (in which case you call
+<tt class="method">recv()</tt> or <tt class="method">send()</tt> when the connection becomes
+readable/writeable.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-163'><tt class='method'>sock_shutdown</tt></a></b>(<var>how</var>)
+<dd>
+Call the <tt class="method">shutdown</tt> method of the underlying socket.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-164'><tt class='method'>state_string</tt></a></b>()
+<dd>
+Retrieve a verbose string detailing the state of the Connection.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-165'><tt class='method'>want_read</tt></a></b>()
+<dd>
+Checks if more data has to be read from the transport layer to complete an
+operation.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-166'><tt class='method'>want_write</tt></a></b>()
+<dd>
+Checks if there is data to write to the transport layer to complete an
+operation.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-context.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-ssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="internals.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-context.html">3.3.1 Context objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-context.html b/doc/html/openssl-context.html
new file mode 100644
index 0000000..a8d9a19
--- /dev/null
+++ b/doc/html/openssl-context.html
@@ -0,0 +1,255 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.3.1 Context objects </title>
+<META NAME="description" CONTENT="3.3.1 Context objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-connection.html">
+<LINK REL="previous" href="openssl-ssl.html">
+<LINK REL="up" href="openssl-ssl.html">
+<LINK REL="next" href="openssl-connection.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-ssl.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-ssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-connection.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-connection.html">3.3.2 Connection objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000431000000000000000"> </A>
+<BR>
+3.3.1 Context objects
+</H3>
+<P>
+<EM><EM><EM>Context objects have the following methods:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-114'><tt class='method'>check_privatekey</tt></a></b>()
+<dd>
+Check if the private key (loaded with <tt class="method">use_privatekey<big>[</big>_file<big>]</big></tt>)
+matches the certificate (loaded with <tt class="method">use_certificate<big>[</big>_file<big>]</big></tt>).
+Returns true if they match, false otherwise.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-115'><tt class='method'>get_app_data</tt></a></b>()
+<dd>
+Retrieve application data as set by <tt class="method">set_app_data</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-116'><tt class='method'>get_cert_store</tt></a></b>()
+<dd>
+Retrieve the certificate store (a X509Store object) that the context uses.
+This can be used to add "trusted" certificates without using the.
+<tt class="method">load_verify_locations()</tt> method.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-117'><tt class='method'>get_timeout</tt></a></b>()
+<dd>
+Retrieve session timeout, as set by <tt class="method">set_timeout</tt>. The default is 300
+seconds.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-118'><tt class='method'>get_verify_depth</tt></a></b>()
+<dd>
+Retrieve the Context object's verify depth, as set by
+<tt class="method">set_verify_depth</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-119'><tt class='method'>get_verify_mode</tt></a></b>()
+<dd>
+Retrieve the Context object's verify mode, as set by <tt class="method">set_verify_mode</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-120'><tt class='method'>load_client_ca</tt></a></b>(<var>pemfile</var>)
+<dd>
+Read a file with PEM-formatted certificates that will be sent to the client
+when requesting a client certificate.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-121'><tt class='method'>load_verify_locations</tt></a></b>(<var>pemfile</var>)
+<dd>
+Specify where CA certificates for verification purposes are located. These are
+trusted certificates. Note that the certificates have to be in PEM format.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-122'><tt class='method'>load_tmp_dh</tt></a></b>(<var>dhfile</var>)
+<dd>
+Load parameters for Ephemeral Diffie-Hellman from <var>dhfile</var>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-123'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
+<dd>
+Associate <var>data</var> with this Context object. <var>data</var> can be retrieved
+later using the <tt class="method">get_app_data</tt> method.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-124'><tt class='method'>set_cipher_list</tt></a></b>(<var>ciphers</var>)
+<dd>
+Set the list of ciphers to be used in this context. See the OpenSSL manual for
+more information (e.g. ciphers(1))
+</dl>
+<P>
+<dl><dt><b><a name='l2h-125'><tt class='method'>set_info_callback</tt></a></b>(<var>callback</var>)
+<dd>
+Set the information callback to <var>callback</var>. This function will be called
+from time to time during SSL handshakes.
+</EM></EM></EM>
+<P>
+<EM><EM><EM><var>callback</var> should take three arguments: a Connection object and two
+integers. The first integer specifies where in the SSL handshake the function
+was called, and the other the return code from a (possibly failed) internal
+function call.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-126'><tt class='method'>set_options</tt></a></b>(<var>options</var>)
+<dd>
+Add SSL options. Options you have set before are not cleared!
+</EM></EM></EM>
+<P>
+<EM><EM><EM>This method should be used with the <tt class="constant">OP_*</tt> constants.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-127'><tt class='method'>set_passwd_cb</tt></a></b>(<var>callback</var><big>[</big><var>, userdata</var><big>]</big>)
+<dd>
+Set the passphrase callback to <var>callback</var>. This function will be called
+when a private key with a passphrase is loaded.
+</EM></EM></EM>
+<P>
+<EM><EM><EM><var>callback</var> should take a boolean argument <var>repeat</var> and an arbitrary
+argument <var>data</var> and return the passphrase entered by the user. If
+<var>repeat</var> is true then <var>callback</var> should ask for the passphrase twice
+and make sure that the two entries are equal. The <var>data</var> argument is the
+<var>userdata</var> variable passed to the <tt class="method">set_passwd_cb</tt> method. If an
+error occurs, <var>callback</var> should return a false value (e.g. an empty
+string).
+</dl>
+<P>
+<dl><dt><b><a name='l2h-128'><tt class='method'>set_session_id</tt></a></b>(<var>name</var>)
+<dd>
+Set the context <var>name</var> within which a session can be reused for this
+Context object. This is needed when doing session resumption, because there is
+no way for a stored session to know which Context object it is associated with.
+<var>name</var> may be any binary data.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-129'><tt class='method'>set_timeout</tt></a></b>(<var>timeout</var>)
+<dd>
+Set the timeout for newly created sessions for this Context object to
+<var>timeout</var>. <var>timeout</var> must be given in (whole) seconds. The default
+value is 300 seconds. See the OpenSSL manual for more information (e.g.
+SSL_CTX_set_timeout(3)).
+</dl>
+<P>
+<dl><dt><b><a name='l2h-130'><tt class='method'>set_verify</tt></a></b>(<var>mode, callback</var>)
+<dd>
+Set the verification flags for this Context object to <var>mode</var> and specify
+that <var>callback</var> should be used for verification callbacks. <var>mode</var>
+should be one of <tt class="constant">VERIFY_NONE</tt> and <tt class="constant">VERIFY_PEER</tt>. If
+<tt class="constant">VERIFY_PEER</tt> is used, <var>mode</var> can be OR:ed with
+<tt class="constant">VERIFY_FAIL_IF_NO_PEER_CERT</tt> and <tt class="constant">VERIFY_CLIENT_ONCE</tt> to
+further control the behaviour.
+</EM></EM></EM>
+<P>
+<EM><EM><EM><var>callback</var> should take five arguments: A Connection object, an X509 object,
+and three integer variables, which are in turn potential error number, error
+depth and return code. <var>callback</var> should return true if verification passes
+and false otherwise.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-131'><tt class='method'>set_verify_depth</tt></a></b>(<var>depth</var>)
+<dd>
+Set the maximum depth for the certificate chain verification that shall be
+allowed for this Context object.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-132'><tt class='method'>use_certificate</tt></a></b>(<var>cert</var>)
+<dd>
+Use the certificate <var>cert</var> which has to be a X509 object.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-133'><tt class='method'>use_certificate_chain_file</tt></a></b>(<var>file</var>)
+<dd>
+Load a certificate chain from <var>file</var> which must be PEM encoded.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-134'><tt class='method'>use_privatekey</tt></a></b>(<var>pkey</var>)
+<dd>
+Use the private key <var>pkey</var> which has to be a PKey object.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-135'><tt class='method'>use_certificate_file</tt></a></b>(<var>file</var><big>[</big><var>, format</var><big>]</big>)
+<dd>
+Load the first certificate found in <var>file</var>. The certificate must be in the
+format specified by <var>format</var>, which is either <tt class="constant">FILETYPE_PEM</tt> or
+<tt class="constant">FILETYPE_ASN1</tt>. The default is <tt class="constant">FILETYPE_PEM</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-136'><tt class='method'>use_privatekey_file</tt></a></b>(<var>file</var><big>[</big><var>, format</var><big>]</big>)
+<dd>
+Load the first private key found in <var>file</var>. The private key must be in the
+format specified by <var>format</var>, which is either <tt class="constant">FILETYPE_PEM</tt> or
+<tt class="constant">FILETYPE_ASN1</tt>. The default is <tt class="constant">FILETYPE_PEM</tt>.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-ssl.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-ssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-connection.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-connection.html">3.3.2 Connection objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-crypto.html b/doc/html/openssl-crypto.html
new file mode 100644
index 0000000..ac8e0b1
--- /dev/null
+++ b/doc/html/openssl-crypto.html
@@ -0,0 +1,292 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1 crypto -- Generic cryptographic module </title>
+<META NAME="description" CONTENT="3.1 crypto -- Generic cryptographic module ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-rand.html">
+<LINK REL="previous" href="openssl.html">
+<LINK REL="up" href="openssl.html">
+<LINK REL="next" href="openssl-x509.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509.html">3.1.1 X509 objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<H2><A NAME="SECTION000410000000000000000"> </A>
+<BR>
+3.1 <tt class="module">crypto</tt> -- Generic cryptographic module
+</H2>
+
+<P>
+
+
+<P>
+<dl><dt><b><a name='l2h-6'><tt>X509Type</tt></a></b>
+<dd>
+A Python type object representing the X509 object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-7'><tt class='function'>X509</tt></a></b>()
+<dd>
+Factory function that creates an X509 object.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-8'><tt>X509NameType</tt></a></b>
+<dd>
+A Python type object representing the X509Name object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-9'><tt class='function'>X509Name</tt></a></b>(<var>x509name</var>)
+<dd>
+Factory function that creates a copy of <var>x509name</var>.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-10'><tt>X509ReqType</tt></a></b>
+<dd>
+A Python type object representing the X509Req object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-11'><tt class='function'>X509Req</tt></a></b>()
+<dd>
+Factory function that creates an X509Req object.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-12'><tt>X509StoreType</tt></a></b>
+<dd>
+A Python type object representing the X509Store object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-13'><tt>PKeyType</tt></a></b>
+<dd>
+A Python type object representing the PKey object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-14'><tt class='function'>PKey</tt></a></b>()
+<dd>
+Factory function that creates a PKey object.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-15'><tt>PKCS7Type</tt></a></b>
+<dd>
+A Python type object representing the PKCS7 object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-16'><tt>PKCS12Type</tt></a></b>
+<dd>
+A Python type object representing the PKCS12 object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-17'><tt>X509ExtensionType</tt></a></b>
+<dd>
+A Python type object representing the X509Extension object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-18'><tt class='function'>X509Extension</tt></a></b>(<var>typename, critical, value</var>)
+<dd>
+Factory function that creates a X509Extension object.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-19'><tt>NetscapeSPKIType</tt></a></b>
+<dd>
+A Python type object representing the NetscapeSPKI object type.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-20'><tt class='function'>NetscapeSPKI</tt></a></b>(<big>[</big><var>enc</var><big>]</big>)
+<dd>
+Factory function that creates a NetscapeSPKI object. If the <var>enc</var> argument
+is present, it should be a base64-encoded string representing a NetscapeSPKI
+object, as returned by the <tt class="method">b64_encode</tt> method.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-21'><tt>FILETYPE_PEM</tt></a></b>
+<dd>
+<dt><b><a name='l2h-32'><tt>FILETYPE_ASN1</tt></a></b><dd>
+File type constants.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-22'><tt>TYPE_RSA</tt></a></b>
+<dd>
+<dt><b><a name='l2h-33'><tt>TYPE_DSA</tt></a></b><dd>
+Key type constants.
+</dl>
+
+<P>
+<dl><dt><b>exception <a name='l2h-23'><tt class='exception'>Error</tt></a></b>
+<dd>
+Generic exception used in the <tt class="module">crypto</tt> module.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-24'><tt class='function'>dump_certificate</tt></a></b>(<var>type, cert</var>)
+<dd>
+Dump the certificate <var>cert</var> into a buffer string encoded with the type
+<var>type</var>.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-25'><tt class='function'>dump_certificate_request</tt></a></b>(<var>type, req</var>)
+<dd>
+Dump the certificate request <var>req</var> into a buffer string encoded with the
+type <var>type</var>.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-26'><tt class='function'>dump_privatekey</tt></a></b>(<var>type, pkey</var><big>[</big><var>, cipher, passphrase</var><big>]</big>)
+<dd>
+Dump the private key <var>pkey</var> into a buffer string encoded with the type
+<var>type</var>, optionally (if <var>type</var> is <tt class="constant">FILETYPE_PEM</tt>) encrypting it
+using <var>cipher</var> and <var>passphrase</var>.
+
+<P>
+<var>passphrase</var> must be either a string or a callback for providing the
+pass phrase.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-27'><tt class='function'>load_certificate</tt></a></b>(<var>type, buffer</var>)
+<dd>
+Load a certificate (X509) from the string <var>buffer</var> encoded with the
+type <var>type</var>.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-28'><tt class='function'>load_certificate_request</tt></a></b>(<var>type, buffer</var>)
+<dd>
+Load a certificate request (X509Req) from the string <var>buffer</var> encoded with
+the type <var>type</var>.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-29'><tt class='function'>load_privatekey</tt></a></b>(<var>type, buffer</var><big>[</big><var>, passphrase</var><big>]</big>)
+<dd>
+Load a private key (PKey) from the string <var>buffer</var> encoded with
+the type <var>type</var> (must be one of <tt class="constant">FILETYPE_PEM</tt> and
+<tt class="constant">FILETYPE_ASN1</tt>).
+
+<P>
+<var>passphrase</var> must be either a string or a callback for providing the
+pass phrase.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-30'><tt class='function'>load_pkcs7_data</tt></a></b>(<var>type, buffer</var>)
+<dd>
+Load pkcs7 data from the string <var>buffer</var> encoded with the type <var>type</var>.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-31'><tt class='function'>load_pkcs12</tt></a></b>(<var>buffer</var><big>[</big><var>, passphrase</var><big>]</big>)
+<dd>
+Load pkcs12 data from the string <var>buffer</var>. If the pkcs12 structure is
+encrypted, a <var>passphrase</var> must be included.
+</dl>
+
+<P>
+
+<p><hr>
+
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html137"
+ href="openssl-x509.html">3.1.1 X509 objects </A>
+<LI><A NAME="tex2html138"
+ href="openssl-x509name.html">3.1.2 X509Name objects </A>
+<LI><A NAME="tex2html139"
+ href="openssl-x509req.html">3.1.3 X509Req objects </A>
+<LI><A NAME="tex2html140"
+ href="openssl-x509store.html">3.1.4 X509Store objects </A>
+<LI><A NAME="tex2html141"
+ href="openssl-pkey.html">3.1.5 PKey objects </A>
+<LI><A NAME="tex2html142"
+ href="openssl-pkcs7.html">3.1.6 PKCS7 objects </A>
+<LI><A NAME="tex2html143"
+ href="openssl-pkcs12.html">3.1.7 PKCS12 objects </A>
+<LI><A NAME="tex2html144"
+ href="openssl-509ext.html">3.1.8 X509Extension objects </A>
+<LI><A NAME="tex2html145"
+ href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
+</UL>
+<!--End of Table of Child-Links-->
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509.html">3.1.1 X509 objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-netscape-spki.html b/doc/html/openssl-netscape-spki.html
new file mode 100644
index 0000000..db08e2f
--- /dev/null
+++ b/doc/html/openssl-netscape-spki.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.9 NetscapeSPKI objects </title>
+<META NAME="description" CONTENT="3.1.9 NetscapeSPKI objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="previous" href="openssl-509ext.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-rand.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-509ext.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-rand.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-509ext.html">3.1.8 X509Extension objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000419000000000000000"> </A>
+<BR>
+3.1.9 NetscapeSPKI objects
+</H3>
+<P>
+<EM><EM><EM>NetscapeSPKI objects have the following methods:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-76'><tt class='method'>b64_encode</tt></a></b>()
+<dd>
+Return a base64-encoded string representation of the object.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-77'><tt class='method'>get_pubkey</tt></a></b>()
+<dd>
+Return the public key of object.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-78'><tt class='method'>set_pubkey</tt></a></b>(<var>key</var>)
+<dd>
+Set the public key of the object to <var>key</var>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-79'><tt class='method'>sign</tt></a></b>(<var>key, digest_name</var>)
+<dd>
+Sign the NetscapeSPKI object using the given <var>key</var> and <var>digest_name</var>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-80'><tt class='method'>verify</tt></a></b>(<var>key</var>)
+<dd>
+Verify the NetscapeSPKI object using the given <var>key</var>.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-509ext.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-rand.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-509ext.html">3.1.8 X509Extension objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-pkcs12.html b/doc/html/openssl-pkcs12.html
new file mode 100644
index 0000000..d881659
--- /dev/null
+++ b/doc/html/openssl-pkcs12.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.7 PKCS12 objects </title>
+<META NAME="description" CONTENT="3.1.7 PKCS12 objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-509ext.html">
+<LINK REL="previous" href="openssl-pkcs7.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-509ext.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-pkcs7.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-509ext.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-pkcs7.html">3.1.6 PKCS7 objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-509ext.html">3.1.8 X509Extension objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000417000000000000000"> </A>
+<BR>
+3.1.7 PKCS12 objects
+</H3>
+<P>
+<EM><EM><EM>PKCS12 objects have the following methods:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-72'><tt class='method'>get_certificate</tt></a></b>()
+<dd>
+Return certificate portion of the PKCS12 structure.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-73'><tt class='method'>get_privatekey</tt></a></b>()
+<dd>
+Return private key portion of the PKCS12 structure
+</dl>
+<P>
+<dl><dt><b><a name='l2h-74'><tt class='method'>get_ca_certificates</tt></a></b>()
+<dd>
+Return CA certificates within the PKCS12 object as a tuple. Returns
+None if no CA certificates are present.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-pkcs7.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-509ext.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-pkcs7.html">3.1.6 PKCS7 objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-509ext.html">3.1.8 X509Extension objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-pkcs7.html b/doc/html/openssl-pkcs7.html
new file mode 100644
index 0000000..de5bf8e
--- /dev/null
+++ b/doc/html/openssl-pkcs7.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.6 PKCS7 objects </title>
+<META NAME="description" CONTENT="3.1.6 PKCS7 objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-pkcs12.html">
+<LINK REL="previous" href="openssl-pkey.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-pkcs12.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-pkey.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-pkcs12.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-pkey.html">3.1.5 PKey objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkcs12.html">3.1.7 PKCS12 objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000416000000000000000"> </A>
+<BR>
+3.1.6 PKCS7 objects
+</H3>
+<P>
+<EM><EM><EM>PKCS7 objects have the following methods:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-67'><tt class='method'>type_is_signed</tt></a></b>()
+<dd>
+FIXME
+</dl>
+<P>
+<dl><dt><b><a name='l2h-68'><tt class='method'>type_is_enveloped</tt></a></b>()
+<dd>
+FIXME
+</dl>
+<P>
+<dl><dt><b><a name='l2h-69'><tt class='method'>type_is_signedAndEnveloped</tt></a></b>()
+<dd>
+FIXME
+</dl>
+<P>
+<dl><dt><b><a name='l2h-70'><tt class='method'>type_is_data</tt></a></b>()
+<dd>
+FIXME
+</dl>
+<P>
+<dl><dt><b><a name='l2h-71'><tt class='method'>get_type_name</tt></a></b>()
+<dd>
+Get the type name of the PKCS7.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-pkey.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-pkcs12.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-pkey.html">3.1.5 PKey objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkcs12.html">3.1.7 PKCS12 objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-pkey.html b/doc/html/openssl-pkey.html
new file mode 100644
index 0000000..5fca9e2
--- /dev/null
+++ b/doc/html/openssl-pkey.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.5 PKey objects </title>
+<META NAME="description" CONTENT="3.1.5 PKey objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-pkcs7.html">
+<LINK REL="previous" href="openssl-x509store.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-pkcs7.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509store.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-pkcs7.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509store.html">3.1.4 X509Store objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkcs7.html">3.1.6 PKCS7 objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000415000000000000000"> </A>
+<BR>
+3.1.5 PKey objects
+</H3>
+<P>
+<EM><EM><EM>The PKey object has the following methods:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-64'><tt class='method'>bits</tt></a></b>()
+<dd>
+Return the number of bits of the key.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-65'><tt class='method'>generate_key</tt></a></b>(<var>type, bits</var>)
+<dd>
+Generate a public/private key pair of the type <var>type</var> (one of
+<tt class="constant">TYPE_RSA</tt> and <tt class="constant">TYPE_DSA</tt>) with the size <var>bits</var>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-66'><tt class='method'>type</tt></a></b>()
+<dd>
+Return the type of the key.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509store.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-pkcs7.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509store.html">3.1.4 X509Store objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkcs7.html">3.1.6 PKCS7 objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-rand.html b/doc/html/openssl-rand.html
new file mode 100644
index 0000000..6d0f676
--- /dev/null
+++ b/doc/html/openssl-rand.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.2 rand -- An interface to the OpenSSL pseudo random number generator </title>
+<META NAME="description" CONTENT="3.2 rand -- An interface to the OpenSSL pseudo random number generator ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-ssl.html">
+<LINK REL="previous" href="openssl-crypto.html">
+<LINK REL="up" href="openssl.html">
+<LINK REL="next" href="openssl-ssl.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-ssl.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000420000000000000000"> </A>
+<BR>
+3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator
+</H2>
+<P>
+<EM><EM><EM>
+</EM></EM></EM>
+<P>
+<EM><EM><EM>This module handles the OpenSSL pseudo random number generator (PRNG) and
+declares the following:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-82'><tt class='function'>add</tt></a></b>(<var>string, entropy</var>)
+<dd>
+Mix bytes from <var>string</var> into the PRNG state. The <var>entropy</var> argument is
+(the lower bound of) an estimate of how much randomness is contained in
+<var>string</var>, measured in bytes. For more information, see e.g. <a class="rfc" name="rfcref-1785"
+href="http://www.ietf.org/rfc/rfc1750.txt">RFC 1750</a>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-83'><tt class='function'>egd</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
+<dd>
+Query the Entropy Gathering Daemon<A NAME="tex2html3"
+ HREF="#foot898"><SUP>3</SUP></A> on socket <var>path</var> for <var>bytes</var>
+bytes of random data and and uses <tt class="function">add</tt> to seed the PRNG. The default
+value of <var>bytes</var> is 255.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-84'><tt class='function'>load_file</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
+<dd>
+Read <var>bytes</var> bytes (or all of it, if <var>bytes</var> is negative) of data from
+the file <var>path</var> to seed the PRNG. The default value of <var>bytes</var> is -1.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-85'><tt class='function'>screen</tt></a></b>()
+<dd>
+Add the current contents of the screen to the PRNG state.
+Availability: Windows.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-86'><tt class='function'>seed</tt></a></b>(<var>string</var>)
+<dd>
+This is equivalent to calling <tt class="function">add</tt> with <var>entropy</var> as the length
+of the string.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-87'><tt class='function'>status</tt></a></b>()
+<dd>
+Returns true if the PRNG has been seeded with enough data, and false otherwise.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-88'><tt class='function'>write_file</tt></a></b>(<var>path</var>)
+<dd>
+Write a number of random bytes (currently 1024) to the file <var>path</var>. This
+file can then be used with <tt class="function">load_file</tt> to seed the PRNG again.
+</dl>
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot898">... Daemon</A><A
+ href="openssl-rand.html#tex2html3"><SUP>3</SUP></A></DT>
+<DD>See
+<a class="url" href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech/crypto/</a>
+
+</DD>
+</DL>
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-ssl.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-ssl.html b/doc/html/openssl-ssl.html
new file mode 100644
index 0000000..5aee000
--- /dev/null
+++ b/doc/html/openssl-ssl.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.3 SSL -- An interface to the SSL-specific parts of OpenSSL </title>
+<META NAME="description" CONTENT="3.3 SSL -- An interface to the SSL-specific parts of OpenSSL ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="previous" href="openssl-rand.html">
+<LINK REL="up" href="openssl.html">
+<LINK REL="next" href="openssl-context.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-rand.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-context.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-context.html">3.3.1 Context objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<H2><A NAME="SECTION000430000000000000000"> </A>
+<BR>
+3.3 <tt class="module">SSL</tt> -- An interface to the SSL-specific parts of OpenSSL
+</H2>
+<P>
+<EM><EM><EM>
+</EM></EM></EM>
+<P>
+<EM><EM><EM>This module handles things specific to SSL. There are two objects defined:
+Context, Connection.
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-90'><tt>SSLv2_METHOD</tt></a></b>
+<dd>
+<dt><b><a name='l2h-104'><tt>SSLv3_METHOD</tt></a></b><dd>
+<dt><b><a name='l2h-105'><tt>SSLv23_METHOD</tt></a></b><dd>
+<dt><b><a name='l2h-106'><tt>TLSv1_METHOD</tt></a></b><dd>
+These constants represent the different SSL methods to use when creating a
+context object.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-91'><tt>VERIFY_NONE</tt></a></b>
+<dd>
+<dt><b><a name='l2h-107'><tt>VERIFY_PEER</tt></a></b><dd>
+<dt><b><a name='l2h-108'><tt>VERIFY_FAIL_IF_NO_PEER_CERT</tt></a></b><dd>
+These constants represent the verification mode used by the Context
+object's <tt class="method">set_verify</tt> method.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-92'><tt>FILETYPE_PEM</tt></a></b>
+<dd>
+<dt><b><a name='l2h-109'><tt>FILETYPE_ASN1</tt></a></b><dd>
+File type constants used with the <tt class="method">use_certificate_file</tt> and
+<tt class="method">use_privatekey_file</tt> methods of Context objects.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-93'><tt>OP_SINGLE_DH_USE</tt></a></b>
+<dd>
+<dt><b><a name='l2h-110'><tt>OP_EPHEMERAL_RSA</tt></a></b><dd>
+<dt><b><a name='l2h-111'><tt>OP_NO_SSLv2</tt></a></b><dd>
+<dt><b><a name='l2h-112'><tt>OP_NO_SSLv3</tt></a></b><dd>
+<dt><b><a name='l2h-113'><tt>OP_NO_TLSv1</tt></a></b><dd>
+Constants used with <tt class="method">set_options</tt> of Context objects.
+<tt class="constant">OP_SINGLE_DH_USE</tt> means to always create a new key when using ephemeral
+Diffie-Hellman. <tt class="constant">OP_EPHEMERAL_RSA</tt> means to always use ephemeral RSA keys
+when doing RSA operations. <tt class="constant">OP_NO_SSLv2</tt>, <tt class="constant">OP_NO_SSLv3</tt> and
+<tt class="constant">OP_NO_TLSv1</tt> means to disable those specific protocols. This is
+interesting if you're using e.g. <tt class="constant">SSLv23_METHOD</tt> to get an SSLv2-compatible
+handshake, but don't want to use SSLv2.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-94'><tt>ContextType</tt></a></b>
+<dd>
+A Python type object representing the Context object type.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-95'><tt class='function'>Context</tt></a></b>(<var>method</var>)
+<dd>
+Factory function that creates a new Context object given an SSL method. The
+method should be <tt class="constant">SSLv2_METHOD</tt>, <tt class="constant">SSLv3_METHOD</tt>,
+<tt class="constant">SSLv23_METHOD</tt> or <tt class="constant">TLSv1_METHOD</tt>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-96'><tt>ConnectionType</tt></a></b>
+<dd>
+A Python type object representing the Connection object type.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-97'><tt class='function'>Connection</tt></a></b>(<var>context, socket</var>)
+<dd>
+Factory fucnction that creates a new Connection object given an SSL context and
+a socket <A NAME="tex2html5"
+ HREF="#foot901"><SUP>4</SUP></A> object.
+</dl>
+<P>
+<dl><dt><b>exception <a name='l2h-98'><tt class='exception'>Error</tt></a></b>
+<dd>
+This exception is used as a base class for the other SSL-related
+exceptions, but may also be raised directly.
+</EM></EM></EM>
+<P>
+<EM><EM><EM>Whenever this exception is raised directly, it has a list of error messages
+from the OpenSSL error queue, where each item is a tuple <code>(<var>lib</var>,
+<var>function</var>, <var>reason</var>)</code>. Here <var>lib</var>, <var>function</var> and <var>reason</var>
+are all strings, describing where and what the problem is. See <span class='manpage'><i>err</i>(3)</span>
+for more information.
+</dl>
+<P>
+<dl><dt><b>exception <a name='l2h-99'><tt class='exception'>ZeroReturnError</tt></a></b>
+<dd>
+This exception matches the error return code <code>SSL_ERROR_ZERO_RETURN</code>, and
+is raised when the SSL Connection has been closed. In SSL 3.0 and TLS 1.0, this
+only occurs if a closure alert has occurred in the protocol, i.e. the
+connection has been closed cleanly. Note that this does not necessarily
+mean that the transport layer (e.g. a socket) has been closed.
+</EM></EM></EM>
+<P>
+<EM><EM><EM>It may seem a little strange that this is an exception, but it does match an
+<code>SSL_ERROR</code> code, and is very convenient.
+</dl>
+<P>
+<dl><dt><b>exception <a name='l2h-100'><tt class='exception'>WantReadError</tt></a></b>
+<dd>
+The operation did not complete; the same I/O method should be called again
+later, with the same arguments. Any I/O method can lead to this since new
+handshakes can occur at any time.
+</dl>
+<P>
+<dl><dt><b>exception <a name='l2h-101'><tt class='exception'>WantWriteError</tt></a></b>
+<dd>
+See <tt class="exception">WantReadError</tt>.
+</dl>
+<P>
+<dl><dt><b>exception <a name='l2h-102'><tt class='exception'>WantX509LookupError</tt></a></b>
+<dd>
+The operation did not complete because an application callback has asked to be
+called again. The I/O method should be called again later, with the same
+arguments. Note: This won't occur in this version, as there are no such
+callbacks in this version.
+</dl>
+<P>
+<dl><dt><b>exception <a name='l2h-103'><tt class='exception'>SysCallError</tt></a></b>
+<dd>
+The <tt class="exception">SysCallError</tt> occurs when there's an I/O error and OpenSSL's
+error queue does not contain any information. This can mean two things: An
+error in the transport protocol, or an end of file that violates the protocol.
+The parameter to the exception is always a pair <code>(<var>errnum</var>,
+<var>errstr</var>)</code>.
+</dl>
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot901">... socket</A><A
+ href="openssl-ssl.html#tex2html5"><SUP>4</SUP></A></DT>
+<DD>Actually, all that is required is an object that
+<i>behaves</i> like a socket, you could even use files, even though it'd be
+tricky to get the handshakes right!
+
+</DD>
+</DL>
+<p><hr>
+
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html263"
+ href="openssl-context.html">3.3.1 Context objects </A>
+<LI><A NAME="tex2html264"
+ href="openssl-connection.html">3.3.2 Connection objects </A>
+</UL>
+<!--End of Table of Child-Links-->
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-rand.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-context.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-context.html">3.3.1 Context objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-x509.html b/doc/html/openssl-x509.html
new file mode 100644
index 0000000..47b1079
--- /dev/null
+++ b/doc/html/openssl-x509.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.1 X509 objects </title>
+<META NAME="description" CONTENT="3.1.1 X509 objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-x509name.html">
+<LINK REL="previous" href="openssl-crypto.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-x509name.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-crypto.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509name.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509name.html">3.1.2 X509Name objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000411000000000000000"> </A>
+<BR>
+3.1.1 X509 objects
+</H3>
+
+<P>
+X509 objects have the following methods:
+
+<P>
+<dl><dt><b><a name='l2h-34'><tt class='method'>get_issuer</tt></a></b>()
+<dd>
+Return a <EM>borrowed reference to a X509Name object representing the issuer
+of the certificate. When the corresponding X509 or X509Req object is
+destroyed, this object will be invalid!
+</dl>
+</EM>
+<P><dl><dt><b><a name='l2h-35'><tt class='method'>get_pubkey</tt></a></b>()
+<dd>
+Return a PKey object representing the public key of the certificate.
+</dl>
+<P><dl><dt><b><a name='l2h-36'><tt class='method'>get_serial_number</tt></a></b>()
+<dd>
+Return the certificate serial number.
+</dl>
+<P><dl><dt><b><a name='l2h-37'><tt class='method'>get_subject</tt></a></b>()
+<dd>
+Return a <EM>borrowed reference to a X509Name object representing the subject
+of the certificate. When the corresponding X509 or X509Req object is
+destroyed, this object will be invalid!
+</dl></EM>
+<P><dl><dt><b><a name='l2h-38'><tt class='method'>get_version</tt></a></b>()
+<dd>
+Return the certificate version.
+</dl>
+<P><dl><dt><b><a name='l2h-39'><tt class='method'>gmtime_adj_notBefore</tt></a></b>(<var>time</var>)
+<dd>
+Adjust the timestamp (in GMT) when the certificate starts being valid.
+</dl>
+<P><dl><dt><b><a name='l2h-40'><tt class='method'>gmtime_adj_notAfter</tt></a></b>(<var>time</var>)
+<dd>
+Adjust the timestamp (in GMT) when the certificate stops being valid.
+</dl>
+<P><dl><dt><b><a name='l2h-41'><tt class='method'>has_expired</tt></a></b>()
+<dd>
+Checks the certificate's time stamp against current time. Returns true if the
+certificate has expired and false otherwise.
+</dl>
+<P><dl><dt><b><a name='l2h-42'><tt class='method'>set_issuer</tt></a></b>(<var>issuer</var>)
+<dd>
+Set the issuer of the certificate to <var>issuer</var>.
+</dl>
+<P><dl><dt><b><a name='l2h-43'><tt class='method'>set_pubkey</tt></a></b>(<var>pkey</var>)
+<dd>
+Set the public key of the certificate to <var>pkey</var>.
+</dl>
+<P><dl><dt><b><a name='l2h-44'><tt class='method'>set_serial_number</tt></a></b>(<var>serialno</var>)
+<dd>
+Set the serial number of the certificate to <var>serialno</var>.
+</dl>
+<P><dl><dt><b><a name='l2h-45'><tt class='method'>set_subject</tt></a></b>(<var>subject</var>)
+<dd>
+Set the subject of the certificate to <var>subject</var>.
+</dl>
+<P><dl><dt><b><a name='l2h-46'><tt class='method'>set_version</tt></a></b>(<var>version</var>)
+<dd>
+Set the certificate version to <var>version</var>.
+</dl>
+<P><dl><dt><b><a name='l2h-47'><tt class='method'>sign</tt></a></b>(<var>pkey, digest</var>)
+<dd>
+Sign the certificate, using the key <var>pkey</var> and the message digest algorithm
+identified by the string <var>digest</var>.
+</dl>
+<P><dl><dt><b><a name='l2h-48'><tt class='method'>subject_name_hash</tt></a></b>()
+<dd>
+Return the hash of the certificate subject.
+</dl>
+<P><dl><dt><b><a name='l2h-49'><tt class='method'>digest</tt></a></b>(<var>digest_name</var>)
+<dd>
+Return a digest of the certificate, using the <var>digest_name</var> method.
+</dl>
+<P><dl><dt><b><a name='l2h-50'><tt class='method'>add_extensions</tt></a></b>(<var>extensions</var>)
+<dd>
+Add the extensions in the sequence <var>extensions</var> to the certificate.
+</dl>
+<P>
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-crypto.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509name.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509name.html">3.1.2 X509Name objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-x509name.html b/doc/html/openssl-x509name.html
new file mode 100644
index 0000000..4851e4c
--- /dev/null
+++ b/doc/html/openssl-x509name.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.2 X509Name objects </title>
+<META NAME="description" CONTENT="3.1.2 X509Name objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-x509req.html">
+<LINK REL="previous" href="openssl-x509.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-x509req.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509req.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509.html">3.1.1 X509 objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509req.html">3.1.3 X509Req objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000412000000000000000"> </A>
+<BR>
+3.1.2 X509Name objects
+</H3>
+<P>
+<EM><EM>X509Name objects have the following members:
+</EM></EM>
+<P><dl><dt><b><a name='l2h-51'><tt class='member'>countryName</tt></a></b>
+<dd>
+The country of the entity. <code>C</code> may be used as an alias for
+<code>countryName</code>.
+</dl>
+<P><dl><dt><b><a name='l2h-52'><tt class='member'>stateOrProvinceName</tt></a></b>
+<dd>
+The state or province of the entity. <code>ST</code> may be used as an alias for
+<code>stateOrProvinceName</code>·
+</dl>
+<P><dl><dt><b><a name='l2h-53'><tt class='member'>localityName</tt></a></b>
+<dd>
+The locality of the entity. <code>L</code> may be used as an alias for
+<code>localityName</code>.
+</dl>
+<P><dl><dt><b><a name='l2h-54'><tt class='member'>organizationName</tt></a></b>
+<dd>
+The organization name of the entity. <code>O</code> may be used as an alias for
+<code>organizationName</code>.
+</dl>
+<P><dl><dt><b><a name='l2h-55'><tt class='member'>organizationalUnitName</tt></a></b>
+<dd>
+The organizational unit of the entity. <code>OU</code> may be used as an alias for
+<code>organizationalUnitName</code>.
+</dl>
+<P><dl><dt><b><a name='l2h-56'><tt class='member'>commonName</tt></a></b>
+<dd>
+The common name of the entity. <code>CN</code> may be used as an alias for
+<code>commonName</code>.
+</dl>
+<P><dl><dt><b><a name='l2h-57'><tt class='member'>emailAddress</tt></a></b>
+<dd>
+The e-mail address of the entity.
+</dl>
+<P>
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509req.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509.html">3.1.1 X509 objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509req.html">3.1.3 X509Req objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-x509req.html b/doc/html/openssl-x509req.html
new file mode 100644
index 0000000..e65c246
--- /dev/null
+++ b/doc/html/openssl-x509req.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.3 X509Req objects </title>
+<META NAME="description" CONTENT="3.1.3 X509Req objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-x509store.html">
+<LINK REL="previous" href="openssl-x509name.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-x509store.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509name.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509store.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509name.html">3.1.2 X509Name objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509store.html">3.1.4 X509Store objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000413000000000000000"> </A>
+<BR>
+3.1.3 X509Req objects
+</H3>
+<P>
+<EM><EM>X509Req objects have the following methods:
+</EM></EM>
+<P><dl><dt><b><a name='l2h-58'><tt class='method'>get_pubkey</tt></a></b>()
+<dd>
+Return a PKey object representing the public key of the certificate request.
+</dl>
+<P><dl><dt><b><a name='l2h-59'><tt class='method'>get_subject</tt></a></b>()
+<dd>
+Return a <EM>borrowed reference to a X509Name object representing the subject
+of the certificate. When the corresponding X509 or X509Req object is
+destroyed, this object will be invalid!
+</dl></EM>
+<P>
+<dl><dt><b><a name='l2h-60'><tt class='method'>set_pubkey</tt></a></b>(<var>pkey</var>)
+<dd>
+Set the public key of the certificate request to <var>pkey</var>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-61'><tt class='method'>sign</tt></a></b>(<var>pkey, digest</var>)
+<dd>
+Sign the certificate request, using the key <var>pkey</var> and the message digest
+algorithm identified by the string <var>digest</var>.
+</dl>
+<P>
+<dl><dt><b><a name='l2h-62'><tt class='method'>verify</tt></a></b>(<var>pkey</var>)
+<dd>
+Verify a certificate request using the public key <var>pkey</var>.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509name.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-x509store.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509name.html">3.1.2 X509Name objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509store.html">3.1.4 X509Store objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl-x509store.html b/doc/html/openssl-x509store.html
new file mode 100644
index 0000000..cd68eca
--- /dev/null
+++ b/doc/html/openssl-x509store.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.4 X509Store objects </title>
+<META NAME="description" CONTENT="3.1.4 X509Store objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="openssl-pkey.html">
+<LINK REL="previous" href="openssl-x509req.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-pkey.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509req.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-pkey.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509req.html">3.1.3 X509Req objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkey.html">3.1.5 PKey objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000414000000000000000"> </A>
+<BR>
+3.1.4 X509Store objects
+</H3>
+<P>
+<EM><EM><EM>The X509Store object has currently just one method:
+</EM></EM></EM>
+<P>
+<dl><dt><b><a name='l2h-63'><tt class='method'>add_cert</tt></a></b>(<var>cert</var>)
+<dd>
+Add the certificate <var>cert</var> to the certificate store.
+</dl>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-x509req.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-pkey.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-x509req.html">3.1.3 X509Req objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkey.html">3.1.5 PKey objects</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/openssl.html b/doc/html/openssl.html
new file mode 100644
index 0000000..610f068
--- /dev/null
+++ b/doc/html/openssl.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3 OpenSSL -- Python interface to OpenSSL </title>
+<META NAME="description" CONTENT="3 OpenSSL -- Python interface to OpenSSL ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="internals.html">
+<LINK REL="previous" href="building.html">
+<LINK REL="up" HREF="pyOpenSSL.html">
+<LINK REL="next" href="openssl-crypto.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="building-windows.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="building-windows.html">2.2 Building the Module</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<H1><A NAME="SECTION000400000000000000000"> </A>
+<BR>
+3 <tt class="module">OpenSSL</tt> -- Python interface to OpenSSL
+</H1>
+
+<P>
+
+
+<P>
+This package provides a high-level interface to the functions in the
+OpenSSL library. The following modules are defined:
+
+<P>
+<dl><dt><b><a name='l2h-2'><tt>crypto</tt></a></b>
+<dd>
+Generic cryptographic module. Note that if anything is incomplete, this module is!
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-3'><tt>rand</tt></a></b>
+<dd>
+An interface to the OpenSSL pseudo random number generator.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-4'><tt>SSL</tt></a></b>
+<dd>
+An interface to the SSL-specific parts of OpenSSL.
+</dl>
+
+<P>
+
+<p><hr>
+
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html112"
+ href="openssl-crypto.html">3.1 <tt class="module">crypto</tt> -- Generic cryptographic module </A>
+<UL>
+<LI><A NAME="tex2html113"
+ href="openssl-x509.html">3.1.1 X509 objects </A>
+<LI><A NAME="tex2html114"
+ href="openssl-x509name.html">3.1.2 X509Name objects </A>
+<LI><A NAME="tex2html115"
+ href="openssl-x509req.html">3.1.3 X509Req objects </A>
+<LI><A NAME="tex2html116"
+ href="openssl-x509store.html">3.1.4 X509Store objects </A>
+<LI><A NAME="tex2html117"
+ href="openssl-pkey.html">3.1.5 PKey objects </A>
+<LI><A NAME="tex2html118"
+ href="openssl-pkcs7.html">3.1.6 PKCS7 objects </A>
+<LI><A NAME="tex2html119"
+ href="openssl-pkcs12.html">3.1.7 PKCS12 objects </A>
+<LI><A NAME="tex2html120"
+ href="openssl-509ext.html">3.1.8 X509Extension objects </A>
+<LI><A NAME="tex2html121"
+ href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html122"
+ href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
+<LI><A NAME="tex2html123"
+ href="openssl-ssl.html">3.3 <tt class="module">SSL</tt> -- An interface to the SSL-specific parts of OpenSSL </A>
+<UL>
+<LI><A NAME="tex2html124"
+ href="openssl-context.html">3.3.1 Context objects </A>
+<LI><A NAME="tex2html125"
+ href="openssl-connection.html">3.3.2 Connection objects </A>
+</UL></UL>
+<!--End of Table of Child-Links-->
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="building-windows.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A HREF="pyOpenSSL.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="building-windows.html">2.2 Building the Module</A>
+<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/previous.gif b/doc/html/previous.gif
new file mode 100644
index 0000000..de1da16
--- /dev/null
+++ b/doc/html/previous.gif
Binary files differ
diff --git a/doc/html/pyOpenSSL.css b/doc/html/pyOpenSSL.css
new file mode 100644
index 0000000..767cf74
--- /dev/null
+++ b/doc/html/pyOpenSSL.css
@@ -0,0 +1,88 @@
+/*
+ * The first part of this is the standard CSS generated by LaTeX2HTML,
+ * with the "empty" declarations removed.
+ */
+
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.math { font-family: "Century Schoolbook", serif; }
+.math i { font-family: "Century Schoolbook", serif;
+ font-weight: bold }
+.boldmath { font-family: "Century Schoolbook", serif;
+ font-weight: bold }
+
+/* Implement both fixed-size and relative sizes: */
+small.xtiny { font-size : xx-small }
+small.tiny { font-size : x-small }
+small.scriptsize { font-size : smaller }
+small.footnotesize { font-size : small }
+big.xlarge { font-size : large }
+big.xxlarge { font-size : x-large }
+big.huge { font-size : larger }
+big.xhuge { font-size : xx-large }
+
+/*
+ * Document-specific styles come next;
+ * these are added for the Python documentation.
+ *
+ * Note that the size specifications for the H* elements are because
+ * Netscape on Solaris otherwise doesn't get it right; they all end up
+ * the normal text size.
+ */
+
+body { color: #000000;
+ background-color: #ffffff; }
+
+a:active { color: #ff0000; }
+a:visited { color: #551a8b; }
+a:link { color: #0000bb; }
+
+h1, h2, h3, h4, h5, h6 { font-family: avantgarde, sans-serif;
+ font-weight: bold }
+h1 { font-size: 180% }
+h2 { font-size: 150% }
+h3, h4 { font-size: 120% }
+code, tt { font-family: monospace }
+var { font-family: times, serif;
+ font-style: italic;
+ font-weight: normal }
+
+.navigation td { background-color: #99ccff;
+ font-weight: bold;
+ font-family: avantgarde, sans-serif;
+ font-size: 110% }
+
+.release-info { font-style: italic; }
+
+.titlegraphic { vertical-align: top; }
+
+.verbatim { color: #00008b }
+
+.email { font-family: avantgarde, sans-serif }
+.mimetype { font-family: avantgarde, sans-serif }
+.newsgroup { font-family: avantgarde, sans-serif }
+.url { font-family: avantgarde, sans-serif }
+.file { font-family: avantgarde, sans-serif }
+
+.tableheader { background-color: #99ccff;
+ font-family: avantgarde, sans-serif; }
+
+.refcount-info { font-style: italic }
+.refcount-info .value { font-weight: bold;
+ color: #006600 }
+
+/*
+ * Some decoration for the "See also:" blocks, in part inspired by some of
+ * the styling on Lars Marius Garshol's XSA pages.
+ * (The blue in the navigation bars is #99CCFF.)
+ */
+.seealso { background-color: #fffaf0;
+ border: thin solid black;
+ padding: 4pt }
+
+.seealso .heading { font-size: 110% }
+
+/*
+ * Class 'availability' is used for module availability statements at
+ * the top of modules.
+ */
+.availability .platform { font-weight: bold }
diff --git a/doc/html/pyOpenSSL.how b/doc/html/pyOpenSSL.how
new file mode 100644
index 0000000..81a1897
--- /dev/null
+++ b/doc/html/pyOpenSSL.how
@@ -0,0 +1 @@
++++ perl /home/martin/projects/pyOpenSSL/pyOpenSSL-0.6/doc/tools/node2label.pl *.html
diff --git a/doc/html/pyOpenSSL.html b/doc/html/pyOpenSSL.html
new file mode 100644
index 0000000..9bc20ed
--- /dev/null
+++ b/doc/html/pyOpenSSL.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Python OpenSSL Manual</title>
+<META NAME="description" CONTENT="Python OpenSSL Manual">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="contents.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><A href="contents.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Next:</b> <a class="sectref" href="contents.html">Contents</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+<P>
+
+<div class="titlepage">
+<center>
+<h1>Python OpenSSL Manual</h1>
+<p><b><font size='+2'>Martin Sjögren</font></b></p>
+<p><span class="email">martin@strakt.com</span></p>
+<p>
+</center>
+</div>
+
+<P>
+
+<H3>Abstract:</H3>
+<DIV CLASS="ABSTRACT">
+
+This module is a rather thin wrapper around (a subset of) the OpenSSL library.
+With thin wrapper I mean that a lot of the object methods do nothing more than
+calling a corresponding function in the OpenSSL library.
+</DIV>
+<P>
+
+<P>
+
+<p><hr>
+
+<!--Table of Child-Links-->
+
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html10"
+ href="contents.html">Contents</A>
+<LI><A NAME="tex2html11"
+ href="intro.html">1 Introduction </A>
+<LI><A NAME="tex2html12"
+ href="building.html">2 Building and Installing </A>
+<UL>
+<LI><A NAME="tex2html13"
+ href="building-unix.html">2.1 Building the Module on a Unix System </A>
+<LI><A NAME="tex2html14"
+ href="building-windows.html">2.2 Building the Module on a Windows System </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html15"
+ href="openssl.html">3 <tt class="module">OpenSSL</tt> -- Python interface to OpenSSL </A>
+<UL>
+<LI><A NAME="tex2html16"
+ href="openssl-crypto.html">3.1 <tt class="module">crypto</tt> -- Generic cryptographic module </A>
+<UL>
+<LI><A NAME="tex2html17"
+ href="openssl-x509.html">3.1.1 X509 objects </A>
+<LI><A NAME="tex2html18"
+ href="openssl-x509name.html">3.1.2 X509Name objects </A>
+<LI><A NAME="tex2html19"
+ href="openssl-x509req.html">3.1.3 X509Req objects </A>
+<LI><A NAME="tex2html20"
+ href="openssl-x509store.html">3.1.4 X509Store objects </A>
+<LI><A NAME="tex2html21"
+ href="openssl-pkey.html">3.1.5 PKey objects </A>
+<LI><A NAME="tex2html22"
+ href="openssl-pkcs7.html">3.1.6 PKCS7 objects </A>
+<LI><A NAME="tex2html23"
+ href="openssl-pkcs12.html">3.1.7 PKCS12 objects </A>
+<LI><A NAME="tex2html24"
+ href="openssl-509ext.html">3.1.8 X509Extension objects </A>
+<LI><A NAME="tex2html25"
+ href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
+</UL>
+<LI><A NAME="tex2html26"
+ href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
+<LI><A NAME="tex2html27"
+ href="openssl-ssl.html">3.3 <tt class="module">SSL</tt> -- An interface to the SSL-specific parts of OpenSSL </A>
+<UL>
+<LI><A NAME="tex2html28"
+ href="openssl-context.html">3.3.1 Context objects </A>
+<LI><A NAME="tex2html29"
+ href="openssl-connection.html">3.3.2 Connection objects </A>
+</UL>
+</UL>
+<BR>
+<LI><A NAME="tex2html30"
+ href="internals.html">4 Internals </A>
+<UL>
+<LI><A NAME="tex2html31"
+ href="exceptions.html">4.1 Exceptions </A>
+<LI><A NAME="tex2html32"
+ href="callbacks.html">4.2 Callbacks </A>
+<LI><A NAME="tex2html33"
+ href="socket-methods.html">4.3 Acessing Socket Methods </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html34"
+ href="about.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><A href="contents.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Next:</b> <a class="sectref" href="contents.html">Contents</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/socket-methods.html b/doc/html/socket-methods.html
new file mode 100644
index 0000000..d2958f2
--- /dev/null
+++ b/doc/html/socket-methods.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>4.3 Acessing Socket Methods </title>
+<META NAME="description" CONTENT="4.3 Acessing Socket Methods ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="previous" href="callbacks.html">
+<LINK REL="up" href="internals.html">
+<LINK REL="next" href="about.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="callbacks.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="internals.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="about.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="callbacks.html">4.2 Callbacks</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="about.html">About this document ...</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000530000000000000000"> </A>
+<BR>
+4.3 Acessing Socket Methods
+</H2>
+<P>
+<EM><EM><EM>We quickly saw the benefit of wrapping socket methods in the
+<tt class="class">SSL.Connection</tt> class, for an easy transition into using SSL. The
+problem here is that the <tt class="module">socket</tt> module lacks a C API, and all the
+methods are declared static. One approach would be to have <tt class="module">OpenSSL</tt> as
+a submodule to the <tt class="module">socket</tt> module, placing all the code in
+<span class="file">socketmodule.c</span>, but this is obviously not a good solution, since you
+might not want to import tonnes of extra stuff you're not going to use when
+importing the <tt class="module">socket</tt> module. The other approach is to somehow get a
+pointer to the method to be called, either the C function, or a callable Python
+object. This is not really a good solution either, since there's a lot of
+lookups involved.
+</EM></EM></EM>
+<P>
+<EM><EM><EM>The way it works is that you have to supply a ``<tt class="class">socket</tt>-like'' transport
+object to the <tt class="class">SSL.Connection</tt>. The only requirement of this object is
+that it has a <tt class="method">fileno()</tt> method that returns a file descriptor that's
+valid at the C level (i.e. you can use the system calls read and write). If you
+want to use the <tt class="method">connect()</tt> or <tt class="method">accept()</tt> methods of the
+<tt class="class">SSL.Connection</tt> object, the transport object has to supply such
+methods too. Apart from them, any method lookups in the <tt class="class">SSL.Connection</tt>
+object that fail are passed on to the underlying transport object.
+</EM></EM></EM>
+<P>
+<EM><EM><EM>Future changes might be to allow Python-level transport objects, that instead
+of having <tt class="method">fileno()</tt> methods, have <tt class="method">read()</tt> and <tt class="method">write()</tt>
+methods, so more advanced features of Python can be used. This would probably
+entail some sort of OpenSSL ``BIOs'', but converting Python strings back and
+forth is expensive, so this shouldn't be used unless necessary. Other nice
+things would be to be able to pass in different transport objects for reading
+and writing, but then the <tt class="method">fileno()</tt> method of <tt class="class">SSL.Connection</tt>
+becomes virtually useless. Also, should the method resolution be used on the
+read-transport or the write-transport?
+</EM></EM></EM>
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="callbacks.html"><img src="previous.gif"
+border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="internals.html"><img src="up.gif"
+border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="about.html"><img src="next.gif"
+border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="callbacks.html">4.2 Callbacks</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
+<b class="navlabel">Next:</b> <a class="sectref" href="about.html">About this document ...</A>
+<hr>
+<span class="release-info">Release 0.6.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/up.gif b/doc/html/up.gif
new file mode 100644
index 0000000..a9d3e13
--- /dev/null
+++ b/doc/html/up.gif
Binary files differ