Regenerate documentation for 0.10 release
diff --git a/doc/pyOpenSSL.ps b/doc/pyOpenSSL.ps
index b4f7502..1b1eaad 100644
--- a/doc/pyOpenSSL.ps
+++ b/doc/pyOpenSSL.ps
@@ -1,8 +1,8 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.96.1 Copyright 2007 Radical Eye Software
%%Title: pyOpenSSL.dvi
-%%CreationDate: Sat Apr 25 10:38:41 2009
-%%Pages: 15
+%%CreationDate: Fri Nov 13 09:16:45 2009
+%%Pages: 17
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentPaperSizes: a4
@@ -10,7 +10,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -N0 -o pyOpenSSL.ps pyOpenSSL
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2009.04.25:1038
+%DVIPSSource: TeX output 2009.11.13:0916
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -109,8 +109,8 @@
1FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC000
1FC0001FC0001FC0FFFFC0FFFFC012787ED920>93 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc ecti1000 10 47
-/Fc 47 123 df<00000000FF0003F000000003FFE00FFC0000000FC0F01F1E0000003F00
+%DVIPSBitmapFont: Fc ecti1000 10 52
+/Fc 52 123 df<00000000FF0003F000000003FFE00FFC0000000FC0F01F1E0000003F00
783E0F0000007E01F87C3F0000007C03F8FC7F000000FC03F8F87F000001F803F9F87F00
0001F803F1F87E000001F801E1F83C000003F00003F000000003F00003F000000003F000
03F000000007F00003F000000007E00007F000000007E00007E000000007E00007E00000
@@ -167,182 +167,219 @@
007F00007E007E0000FE007E0000FE00FE0000FC00FE0001FC00FE0001F800FC0001F800
FC0003F000FC0003F000FC0003E000FC0007E0007C0007C0007C000F80007C000F80007C
001F00003E003E00003E007C00001F00F800000F83E0000007FF80000000FE0000002439
-77B62A>48 D<000300003800078000F80007F007F00007FFFFE00007FFFF80000FFFFF00
-000FFFFE00000FFFF800000FFFC000001E1C0000001C000000001C000000001C00000000
-3C0000000038000000003800000000380000000078000000007000000000700000000070
-7F000000F1FFC00000E783E00000FE01F00000F800F80001F000F80001E000FC0001C000
-7C000180007C000000007E000000007E000000007E00000000FE00000000FE00000000FE
-00000000FE00000001FE00000001FC001E0001FC007F0001FC007F0003FC00FF0003F800
-FF0003F800FE0007F000F80007F000E00007E000E0000FE000E0001FC000E0001F8000F0
-003F0000F0007E00007800FC00007C01F800003E07F000001FFFC000000FFF00000003F8
-000000253977B62A>53 D<000003F80000000FFE0000003FFF800000FE0FC00001F807E0
-0003F003E00007E003F0000FC001F0001F8001F0003F0001F0007F0001F8007E0001F800
-FE0001F800FE0001F801FC0001F801FC0003F801FC0003F803FC0003F803F80003F803F8
-0003F003F80007F007F80007F007F00007F007F0000FF007F0000FF007F0000FE007F000
-1FE003E0001FE003E0003FE003F0007FC001F0007FC001F000FFC000F801FFC0007803BF
-80003C0F3F80001FFC3F800007F07F000000007F000000007E00000000FE00000000FC00
-000001FC00000001F800000003F000000003F0003E0007E0007F000FC0007F000F80007F
-001F8000FE003F0000FC007E00007000FC00007803F000007C0FE000003FFF8000001FFE
-00000003F8000000253978B62A>57 D<00000003FE000E0000003FFF801E000000FFFFE0
-3C000003FE01F03C00000FF000787C00003FC0003CFC00007F00001FF80000FE00000FF8
-0003FC00000FF80007F8000007F8000FF0000007F0001FE0000003F0003FC0000003F000
-3F80000003F0007F00000003E000FF00000003E001FE00000003E001FC00000003E003FC
-00000003C007F800000003C007F800000003C00FF000000003C00FF000000003801FE000
-000003801FE000000000001FE000000000003FC000000000003FC000000000003FC00000
-0000007FC000000000007F8000000000007F8000000000007F800000000000FF80000000
-0000FF000000000000FF000000000000FF000000000000FF000000000000FF0000000038
-00FF000000003800FF000000007800FE000000007000FF000000007000FF00000000F000
-7F00000000E0007F00000001E0007F00000001C0007F00000003C0003F8000000780003F
-8000000700001F8000000E00001FC000001E00000FC000003C00000FE0000078000007F0
-0001F0000003F80003C0000001FE000F800000007F807E000000003FFFFC000000000FFF
-E00000000000FF00000000373D74BA3B>67 D<0003FFFFFFFE00000003FFFFFFFFC00000
-03FFFFFFFFF000000007F8000FF800000007F00003FC00000007F00000FE0000000FF000
-007F0000000FF000003F8000000FE000001F8000000FE000001FC000001FE000000FC000
-001FE000000FE000001FC000000FE000001FC0000007E000003FC0000007E000003FC000
-0007F000003F80000007F000003F80000007F000007F80000007F000007F80000007F000
-007F00000007F000007F00000007F00000FF00000007F00000FF0000000FF00000FE0000
-000FF00000FE0000000FF00001FE0000000FF00001FE0000000FE00001FC0000001FE000
-01FC0000001FE00003FC0000001FE00003FC0000001FC00003F80000003FC00003F80000
-003FC00007F80000003F800007F80000007F800007F00000007F000007F00000007F0000
-0FF0000000FE00000FF0000000FE00000FE0000001FC00000FE0000001F800001FE00000
-03F800001FE0000007F000001FC0000007E000001FC000000FC000003FC000001F800000
-3FC000003F8000003F8000007F0000003F800000FC0000007F800003F80000007F800007
-F00000007F00001FC0000000FF0001FF8000007FFFFFFFFE000000FFFFFFFFF0000000FF
-FFFFFF800000003C397CB83F>I<0007FFFFFFFFFF0007FFFFFFFFFF0007FFFFFFFFFF00
-000FF00003FF00000FE000007F00000FE000003E00001FE000003E00001FE000001E0000
-1FC000001E00001FC000001E00003FC000001E00003FC000001E00003F8000001E00003F
-8000001C00007F8000001C00007F8000001C00007F0003801C00007F0003801C0000FF00
-07801C0000FF000780000000FE000700000000FE000F00000001FE000F00000001FE001F
-00000001FC003E00000001FC007E00000003FFFFFE00000003FFFFFE00000003FFFFFC00
-000003F800FC00000007F8007C00000007F8003C00000007F0003800000007F000380000
-000FF000780000000FF0007800E0000FE0007000E0000FE0007001E0001FE0007001C000
-1FE0000001C0001FC0000003C0001FC000000380003FC000000780003FC000000700003F
-8000000F00003F8000000F00007F8000001E00007F8000003E00007F0000003C00007F00
-00007C0000FF000000FC0000FF000001F80000FE000007F80001FE00007FF000FFFFFFFF
-FFF000FFFFFFFFFFF000FFFFFFFFFFE00038397BB838>I<0003FFFFF80FFFFFE00003FF
-FFF80FFFFFE00003FFFFF80FFFFFE0000007F800001FE000000007F000001FC000000007
-F000001FC00000000FF000003FC00000000FF000003F800000000FE000003F800000000F
-E000003F800000001FE000007F800000001FE000007F000000001FC000007F000000001F
-C000007F000000003FC00000FF000000003FC00000FE000000003F800000FE000000003F
-800000FE000000007F800001FE000000007F800001FC000000007F000001FC000000007F
-000001FC00000000FF000003FC00000000FF000003F800000000FE000003F800000000FE
-000003F800000001FFFFFFFFF800000001FFFFFFFFF000000001FFFFFFFFF000000001FC
-000007F000000003FC00000FF000000003FC00000FE000000003F800000FE000000003F8
-00000FE000000007F800001FE000000007F800001FC000000007F000001FC000000007F0
-00001FC00000000FF000003FC00000000FF000003F800000000FE000003F800000000FE0
-00003F800000001FE000007F800000001FE000007F000000001FC000007F000000001FC0
-00007F000000003FC00000FF000000003FC00000FE000000003F800000FE000000003F80
-0000FE000000007F800001FE000000007F800001FC000000007F000001FC00000000FF00
-0003FC0000007FFFFE01FFFFF80000FFFFFE03FFFFF80000FFFFFE03FFFFF8000043397C
-B83E>72 D<0003FFFFF80003FFFFF80003FFFFF8000007F800000007F000000007F00000
-000FF00000000FF00000000FE00000000FE00000001FE00000001FE00000001FC0000000
-1FC00000003FC00000003FC00000003F800000003F800000007F800000007F800000007F
-000000007F00000000FF00000000FF00000000FE00000000FE00000001FE00000001FE00
-000001FC00000001FC00000003FC00000003FC00000003F800000003F800000007F80000
-0007F800000007F000000007F00000000FF00000000FF00000000FE00000000FE0000000
-1FE00000001FE00000001FC00000001FC00000003FC00000003FC00000003F800000003F
-800000007F800000007F800000007F00000000FF800000FFFFFF0000FFFFFF0000FFFFFE
-000025397CB820>I<0003FFF80000FFFFE00003FFF80000FFFFE00003FFFC0000FFFFE0
-000007FC000007F800000007FE000003F000000007FE000003E00000000FFE000003C000
-00000FFF000003C00000000E7F000003800000000E7F000003800000001E7F8000078000
-00001E3F800007000000001C3F800007000000001C3FC00007000000003C1FC0000F0000
-00003C1FE0000E00000000380FE0000E00000000380FE0000E00000000780FF0001E0000
-00007807F0001C000000007007F0001C000000007007F8001C00000000F003F8003C0000
-0000F003FC003800000000E003FC003800000000E001FC003800000001E001FE00780000
-0001E000FE007000000001C000FE007000000001C000FF007000000003C0007F00F00000
-0003C0007F00E00000000380007F80E00000000380003F80E00000000780003FC1E00000
-000780001FC1C00000000700001FC1C00000000700001FE1C00000000F00000FE3C00000
-000F00000FE3800000000E00000FF3800000000E000007F3800000001E000007FF800000
-001E000007FF000000001C000003FF000000001C000003FF000000003C000001FF000000
-003C000001FE0000000038000001FE0000000038000000FE0000000078000000FE000000
-0078000000FC00000000F80000007C00000003FC0000007C0000007FFFE000003C000000
-FFFFE0000038000000FFFFE000003800000043397CB83E>78 D<00000003FE0000000000
-3FFFC000000000FC07F000000003E001F80000000F80007C0000003F00003E0000007E00
-001F000000F800001F800001F000000FC00007E000000FC0000FC0000007E0001FC00000
-07E0001F80000007F0003F00000003F0007E00000003F000FE00000003F801FC00000003
-F801FC00000003F803F800000003F803F800000003F807F000000003F807F000000003F8
-0FF000000003F80FE000000003F81FE000000007F81FC000000007F83FC000000007F83F
-C000000007F83FC000000007F87F800000000FF07F800000000FF07F800000000FF07F80
-0000000FF0FF000000001FE0FF000000001FE0FF000000001FE0FF000000003FC0FF0000
-00003FC0FF000000003F80FF000000007F80FF000000007F00FF00000000FF00FF000000
-00FE00FF00000001FE00FF00000001FC007F00000003F8007F00000007F0007F00000007
-F0007F0000000FE0003F0000001FC0003F8000003F80001F8000003F00001FC000007E00
-000FC00000FC000007E00003F0000003F00007E0000001F8000F80000000FC003F000000
-003F01FC000000001FFFE00000000001FF00000000353D74BA40>I<0003FFFFFFF00000
-03FFFFFFFE000003FFFFFFFF80000007F8003FC0000007F0000FF0000007F00007F00000
-0FF00003F800000FF00001FC00000FE00001FC00000FE00001FC00001FE00001FE00001F
-E00001FE00001FC00001FE00001FC00001FE00003FC00001FE00003FC00003FC00003F80
-0003FC00003F800003FC00007F800007F800007F800007F000007F00000FF000007F0000
-0FE00000FF00001FC00000FF00003F000000FE0000FE000000FE0001F8000001FE000FE0
-000001FFFFFF80000001FFFFFC00000001FC003F00000003FC000F80000003FC000FC000
-0003F80007E0000003F80007F0000007F80003F0000007F80003F0000007F00003F00000
-07F00003F800000FF00007F800000FF00007F000000FE00007F000000FE00007F000001F
-E0000FF000001FE0000FF000001FC0000FF000001FC0000FF000003FC0000FF000003FC0
-001FF000003F80001FE007003F80001FE007007F80001FE00F007F80001FE00E007F0000
-1FE00E00FF00000FE01C7FFFFE000FE03CFFFFFE0007F078FFFFFE0003F0F00000000000
-FFE000000000003F80383B7CB83D>82 D<0000003FC00E000001FFF01C000007FFFC1C00
-001FC07E3C00003F001F7C00007C000FF80000F80007F80001F00003F80003E00003F800
-07C00001F00007C00001F0000F800001F0000F800001F0001F800001E0001F000001E000
-1F000001E0001F000001E0003F000001C0003F000001C0003F000001C0003F8000000000
-3F80000000003FC0000000001FE0000000001FFC000000001FFF800000000FFFF0000000
-0FFFFE00000007FFFF80000003FFFFE0000000FFFFF00000003FFFF800000007FFF80000
-00007FFC000000000FFC0000000003FC0000000001FC0000000001FC0000000000FC0000
-000000FC00000000007C000E0000007C000E0000007C000E0000007C001E000000FC001E
-000000F8001E000000F8001E000000F8003E000001F0003E000001F0003E000003E0003E
-000003E0007F000007C0007F00000F80007F80001F00007FC0003E0000F9F000FC0000F8
-FC03F80000F07FFFE00000E01FFF800000C003FC0000002F3D7ABA2F>I<07FFFFFFFFFF
-E007FFFFFFFFFFE00FFFFFFFFFFFE00FF800FF001FE00FC000FE0007C01F8000FE0007C0
-1F0001FE0003C01E0001FE0003C01C0001FC0003C03C0001FC0003803C0003FC00038038
-0003FC000380780003F8000380700003F8000780700007F8000780F00007F8000700E000
-07F0000700E00007F0000700E0000FF000070000000FF000000000000FE000000000000F
-E000000000001FE000000000001FE000000000001FC000000000001FC000000000003FC0
-00000000003FC000000000003F8000000000003F8000000000007F8000000000007F8000
-000000007F0000000000007F000000000000FF000000000000FF000000000000FE000000
-000000FE000000000001FE000000000001FE000000000001FC000000000001FC00000000
-0003FC000000000003FC000000000003F8000000000003F8000000000007F80000000000
-07F8000000000007F0000000000007F000000000000FF000000000000FF000000000000F
-E000000000003FF0000000007FFFFFF8000000FFFFFFF8000000FFFFFFF8000000333971
-B83B>I<3FFFFF800FFFFE3FFFFF800FFFFE3FFFFF800FFFFE007F8000007F80007F0000
-003F00007F0000003E0000FF0000003C0000FF0000003C0000FE000000380000FE000000
-380001FE000000780001FE000000700001FC000000700001FC000000700003FC000000F0
-0003FC000000E00003F8000000E00003F8000000E00007F8000001E00007F8000001C000
-07F0000001C00007F0000001C0000FF0000003C0000FF000000380000FE000000380000F
-E000000380001FE000000780001FE000000700001FC000000700001FC000000700003FC0
-00000F00003FC000000E00003F8000000E00003F8000000E00007F8000001E00007F8000
-001C00007F0000001C00007F0000001C00007F0000003C0000FF000000380000FE000000
-380000FE000000780000FE000000700000FE000000700000FE000000F00000FE000001E0
-0000FE000001C00000FE000003C000007E0000078000007E00000F0000007E00000E0000
-003F00003E0000001F80007C0000001F8000F00000000FC003E000000007F01FC0000000
-01FFFF00000000007FFC00000000001FE000000000373B70B83E>I<FFFFF80003FFFEFF
-FFF80003FFFEFFFFF80003FFFC03FE0000007FC003FC0000003F0001FC0000003E0001FC
-0000003C0001FC000000380001FC000000700001FC000000700001FC000000E00001FC00
-0001E00001FC000001C00001FE000003800001FE000003800000FE000007000000FE0000
-0F000000FE00000E000000FE00001C000000FE00001C000000FE000038000000FE000038
-000000FE000070000000FE0000E0000000FE0000E0000000FF0001C00000007F0001C000
-00007F0003800000007F0007800000007F0007000000007F000E000000007F000E000000
-007F001C000000007F003C000000007F0038000000007F0070000000007F807000000000
-3F80E0000000003F81E0000000003F81C0000000003F8380000000003F8380000000003F
-8700000000003F8700000000003F8E00000000003F9E00000000003F9C00000000003FF8
-00000000003FF800000000001FF000000000001FF000000000001FE000000000001FC000
-000000001FC000000000001F8000000000001F8000000000001F0000000000001E000000
-0000001E0000000000373B6FB83E>I<FFFFF80FFFFF001FFFF0FFFFF80FFFFF003FFFF0
-FFFFF00FFFFF003FFFE007FE00007FE00003FE0003F800003F800001FC0003F800003F80
-0000F00003F800003F800000F00003F800003F800001E00003F800003F800001C00003F8
-00003F800003C00003F800003F800003800003F800003F800007800003F800007F800007
-000003F800007F80000E000003F80000FF80000E000003F80001FF80001C000003F80001
-FF80001C000003F80003BF800038000003FC0003BF800038000001FC00073F8000700000
-01FC00073F800070000001FC000E3F8000E0000001FC000E3FC000E0000001FC001C1FC0
-01C0000001FC001C1FC003C0000001FC00381FC00380000001FC00381FC00700000001FC
-00701FC00700000001FC00F01FC00E00000001FC00E01FC00E00000001FC01C01FC01C00
-000001FC01C01FC01C00000001FC03801FC03800000001FC03801FC03800000001FC0700
-1FC07000000001FC07001FC07000000001FC0E001FC0E000000001FC0E001FC1E0000000
-01FC1C001FC1C000000001FC1C001FC38000000001FC38001FC38000000001FC78001FC7
-0000000001FC70001FC70000000001FCE0001FCE0000000001FEE0001FCE0000000000FF
-C0001FDC0000000000FFC0001FDC0000000000FF80001FF80000000000FF80001FF80000
-000000FF00001FF00000000000FF00000FF00000000000FE00000FE00000000000FE0000
-0FC00000000000FC00000FC00000000000FC00000F800000000000F800000F8000000000
-00F000000F000000000000F000000F000000000000E000000E00000000004C3B6FB853>
-I<FFFFFFFFFFFCFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFC2F047C7040>95
+77B62A>48 D<000000380000003800000070000000F0000001F0000003F0000007E00000
+0FE000003FE00000FFE00007FFC0003FCFC0003F1FC000101FC000001F8000001F800000
+3F8000003F8000003F0000003F0000007F0000007F0000007E0000007E000000FE000000
+FE000000FC000000FC000001FC000001FC000001F8000001F8000003F8000003F8000003
+F0000003F0000007F0000007F0000007E0000007E000000FE000000FE000000FC000000F
+C000001FC000001FC000001F8000001F8000003F8000003F8000003F0000007F8000FFFF
+FF80FFFFFF80FFFFFF801D3777B62A>I<000003F00000001FFE0000007C0F800000F007
+C00001C003E000038003F000070001F0000F0001F8001E0001F8001C0001F8003C6001F8
+00387001FC00783001FC00703001FC00F03001FC00E03001FC00E07003FC01E06003F801
+C06003F801C0E003F801C0C007F801C1C007F00181800FF00183800FE001C7001FC001FE
+003FC00078003F800000007F00000000FE00000001F800000003F000000007E00000001F
+800000003F00000000FC00000001F000000007C00000000F800000003E000000007C0000
+0000F80000C001F00001C003E00001C003C00001C007800003C00F000003800E00000780
+1E00000F803C00001F003FF8003F007FFFC07E00783FFFFC00700FFFFC00F007FFF800E0
+01FFF000E000FFC000E0001F0000263979B62A>I<00000000E000000003F000000003F0
+00000003F000000007F000000007E000000007E000000007E00000000FE00000000FC000
+00000FC00000001FC00000001F800000001F800000003F800000003F000000003F000000
+007E000000007E000000007E00000000FC00000000FC00000001F800000001F800000003
+F000000003F000000003E000000007C000000007C00000000F800000001F800000001F00
+0000003E000000003E000000007C00000000F81C000000F83E000001F07E000003E07E00
+0003C07E000007C0FE00000F80FC00001F00FC00003E00FC00003C01FC00007801F80000
+F001F80001E001F80003C003F80007FE03F0001FFFC3F0003FFFFBF0007C01FFF040F000
+3FFFE0600007FFE0000007FF0000000FE00000000FC00000000FC00000000FC00000001F
+C00000001F800000001F800000001F800000003F800000003F000000003F000000003F00
+0000003F000000003E000000001C000024477DB62A>52 D<000300003800078000F80007
+F007F00007FFFFE00007FFFF80000FFFFF00000FFFFE00000FFFF800000FFFC000001E1C
+0000001C000000001C000000001C000000003C0000000038000000003800000000380000
+0000780000000070000000007000000000707F000000F1FFC00000E783E00000FE01F000
+00F800F80001F000F80001E000FC0001C0007C000180007C000000007E000000007E0000
+00007E00000000FE00000000FE00000000FE00000000FE00000001FE00000001FC001E00
+01FC007F0001FC007F0003FC00FF0003F800FF0003F800FE0007F000F80007F000E00007
+E000E0000FE000E0001FC000E0001F8000F0003F0000F0007E00007800FC00007C01F800
+003E07F000001FFFC000000FFF00000003F8000000253977B62A>I<000003F80000000F
+FF0000003FFF800000FE07E00001F003E00003E001F00007C001F0000F8000F8001F0000
+F8001F0000F8003E0000F8003E0000F8003E0001F8007E0001F0007E0001F0007E0003F0
+007E0003E0007F0007E0007F800FC0007FC00F80007FE01F00003FF03E00003FF8780000
+1FFDF000000FFFC0000007FF80000003FFC0000003FFE000000FFFF000001E7FF800007C
+1FFC0000F80FFC0003E007FE0007C003FE000FC001FF001F8000FF001F00007F003E0000
+7F007E00003F007C00003F007C00003F00FC00003E00F800003E00F800003E00F800007E
+00F800007C00F80000F800F80000F800F80001F000FC0003E0007C0007C0007E000F8000
+3F003F00001F80FE00000FFFF8000003FFE0000000FF000000253978B62A>56
+D<000003F80000000FFE0000003FFF800000FE0FC00001F807E00003F003E00007E003F0
+000FC001F0001F8001F0003F0001F0007F0001F8007E0001F800FE0001F800FE0001F801
+FC0001F801FC0003F801FC0003F803FC0003F803F80003F803F80003F003F80007F007F8
+0007F007F00007F007F0000FF007F0000FF007F0000FE007F0001FE003E0001FE003E000
+3FE003F0007FC001F0007FC001F000FFC000F801FFC0007803BF80003C0F3F80001FFC3F
+800007F07F000000007F000000007E00000000FE00000000FC00000001FC00000001F800
+000003F000000003F0003E0007E0007F000FC0007F000F80007F001F8000FE003F0000FC
+007E00007000FC00007803F000007C0FE000003FFF8000001FFE00000003F80000002539
+78B62A>I<07FFFFFFFFFFFC0FFFFFFFFFFFFE0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000FFFFFFFFFFFFE07FFFFFFFFFFF
+C03714779E40>61 D<00000003FE000E0000003FFF801E000000FFFFE03C000003FE01F0
+3C00000FF000787C00003FC0003CFC00007F00001FF80000FE00000FF80003FC00000FF8
+0007F8000007F8000FF0000007F0001FE0000003F0003FC0000003F0003F80000003F000
+7F00000003E000FF00000003E001FE00000003E001FC00000003E003FC00000003C007F8
+00000003C007F800000003C00FF000000003C00FF000000003801FE000000003801FE000
+000000001FE000000000003FC000000000003FC000000000003FC000000000007FC00000
+0000007F8000000000007F8000000000007F800000000000FF800000000000FF00000000
+0000FF000000000000FF000000000000FF000000000000FF000000003800FF0000000038
+00FF000000007800FE000000007000FF000000007000FF00000000F0007F00000000E000
+7F00000001E0007F00000001C0007F00000003C0003F8000000780003F8000000700001F
+8000000E00001FC000001E00000FC000003C00000FE0000078000007F00001F0000003F8
+0003C0000001FE000F800000007F807E000000003FFFFC000000000FFFE00000000000FF
+00000000373D74BA3B>67 D<0003FFFFFFFE00000003FFFFFFFFC0000003FFFFFFFFF000
+000007F8000FF800000007F00003FC00000007F00000FE0000000FF000007F0000000FF0
+00003F8000000FE000001F8000000FE000001FC000001FE000000FC000001FE000000FE0
+00001FC000000FE000001FC0000007E000003FC0000007E000003FC0000007F000003F80
+000007F000003F80000007F000007F80000007F000007F80000007F000007F00000007F0
+00007F00000007F00000FF00000007F00000FF0000000FF00000FE0000000FF00000FE00
+00000FF00001FE0000000FF00001FE0000000FE00001FC0000001FE00001FC0000001FE0
+0003FC0000001FE00003FC0000001FC00003F80000003FC00003F80000003FC00007F800
+00003F800007F80000007F800007F00000007F000007F00000007F00000FF0000000FE00
+000FF0000000FE00000FE0000001FC00000FE0000001F800001FE0000003F800001FE000
+0007F000001FC0000007E000001FC000000FC000003FC000001F8000003FC000003F8000
+003F8000007F0000003F800000FC0000007F800003F80000007F800007F00000007F0000
+1FC0000000FF0001FF8000007FFFFFFFFE000000FFFFFFFFF0000000FFFFFFFF80000000
+3C397CB83F>I<0007FFFFFFFFFF0007FFFFFFFFFF0007FFFFFFFFFF00000FF00003FF00
+000FE000007F00000FE000003E00001FE000003E00001FE000001E00001FC000001E0000
+1FC000001E00003FC000001E00003FC000001E00003F8000001E00003F8000001C00007F
+8000001C00007F8000001C00007F0003801C00007F0003801C0000FF0007801C0000FF00
+0780000000FE000700000000FE000F00000001FE000F00000001FE001F00000001FC003E
+00000001FC007E00000003FFFFFE00000003FFFFFE00000003FFFFFC00000003F800FC00
+000007F8007C00000007F8003C00000007F0003800000007F000380000000FF000780000
+000FF0007800E0000FE0007000E0000FE0007001E0001FE0007001C0001FE0000001C000
+1FC0000003C0001FC000000380003FC000000780003FC000000700003F8000000F00003F
+8000000F00007F8000001E00007F8000003E00007F0000003C00007F0000007C0000FF00
+0000FC0000FF000001F80000FE000007F80001FE00007FF000FFFFFFFFFFF000FFFFFFFF
+FFF000FFFFFFFFFFE00038397BB838>I<0003FFFFF80FFFFFE00003FFFFF80FFFFFE000
+03FFFFF80FFFFFE0000007F800001FE000000007F000001FC000000007F000001FC00000
+000FF000003FC00000000FF000003F800000000FE000003F800000000FE000003F800000
+001FE000007F800000001FE000007F000000001FC000007F000000001FC000007F000000
+003FC00000FF000000003FC00000FE000000003F800000FE000000003F800000FE000000
+007F800001FE000000007F800001FC000000007F000001FC000000007F000001FC000000
+00FF000003FC00000000FF000003F800000000FE000003F800000000FE000003F8000000
+01FFFFFFFFF800000001FFFFFFFFF000000001FFFFFFFFF000000001FC000007F0000000
+03FC00000FF000000003FC00000FE000000003F800000FE000000003F800000FE0000000
+07F800001FE000000007F800001FC000000007F000001FC000000007F000001FC0000000
+0FF000003FC00000000FF000003F800000000FE000003F800000000FE000003F80000000
+1FE000007F800000001FE000007F000000001FC000007F000000001FC000007F00000000
+3FC00000FF000000003FC00000FE000000003F800000FE000000003F800000FE00000000
+7F800001FE000000007F800001FC000000007F000001FC00000000FF000003FC0000007F
+FFFE01FFFFF80000FFFFFE03FFFFF80000FFFFFE03FFFFF8000043397CB83E>72
+D<0003FFFFF80003FFFFF80003FFFFF8000007F800000007F000000007F00000000FF000
+00000FF00000000FE00000000FE00000001FE00000001FE00000001FC00000001FC00000
+003FC00000003FC00000003F800000003F800000007F800000007F800000007F00000000
+7F00000000FF00000000FF00000000FE00000000FE00000001FE00000001FE00000001FC
+00000001FC00000003FC00000003FC00000003F800000003F800000007F800000007F800
+000007F000000007F00000000FF00000000FF00000000FE00000000FE00000001FE00000
+001FE00000001FC00000001FC00000003FC00000003FC00000003F800000003F80000000
+7F800000007F800000007F00000000FF800000FFFFFF0000FFFFFF0000FFFFFE00002539
+7CB820>I<0003FFF80000FFFFE00003FFF80000FFFFE00003FFFC0000FFFFE0000007FC
+000007F800000007FE000003F000000007FE000003E00000000FFE000003C00000000FFF
+000003C00000000E7F000003800000000E7F000003800000001E7F800007800000001E3F
+800007000000001C3F800007000000001C3FC00007000000003C1FC0000F000000003C1F
+E0000E00000000380FE0000E00000000380FE0000E00000000780FF0001E000000007807
+F0001C000000007007F0001C000000007007F8001C00000000F003F8003C00000000F003
+FC003800000000E003FC003800000000E001FC003800000001E001FE007800000001E000
+FE007000000001C000FE007000000001C000FF007000000003C0007F00F000000003C000
+7F00E00000000380007F80E00000000380003F80E00000000780003FC1E0000000078000
+1FC1C00000000700001FC1C00000000700001FE1C00000000F00000FE3C00000000F0000
+0FE3800000000E00000FF3800000000E000007F3800000001E000007FF800000001E0000
+07FF000000001C000003FF000000001C000003FF000000003C000001FF000000003C0000
+01FE0000000038000001FE0000000038000000FE0000000078000000FE00000000780000
+00FC00000000F80000007C00000003FC0000007C0000007FFFE000003C000000FFFFE000
+0038000000FFFFE000003800000043397CB83E>78 D<00000003FE00000000003FFFC000
+000000FC07F000000003E001F80000000F80007C0000003F00003E0000007E00001F0000
+00F800001F800001F000000FC00007E000000FC0000FC0000007E0001FC0000007E0001F
+80000007F0003F00000003F0007E00000003F000FE00000003F801FC00000003F801FC00
+000003F803F800000003F803F800000003F807F000000003F807F000000003F80FF00000
+0003F80FE000000003F81FE000000007F81FC000000007F83FC000000007F83FC0000000
+07F83FC000000007F87F800000000FF07F800000000FF07F800000000FF07F800000000F
+F0FF000000001FE0FF000000001FE0FF000000001FE0FF000000003FC0FF000000003FC0
+FF000000003F80FF000000007F80FF000000007F00FF00000000FF00FF00000000FE00FF
+00000001FE00FF00000001FC007F00000003F8007F00000007F0007F00000007F0007F00
+00000FE0003F0000001FC0003F8000003F80001F8000003F00001FC000007E00000FC000
+00FC000007E00003F0000003F00007E0000001F8000F80000000FC003F000000003F01FC
+000000001FFFE00000000001FF00000000353D74BA40>I<0003FFFFFFF0000003FFFFFF
+FE000003FFFFFFFF80000007F8003FC0000007F0000FF0000007F00007F000000FF00003
+F800000FF00001FC00000FE00001FC00000FE00001FC00001FE00001FE00001FE00001FE
+00001FC00001FE00001FC00001FE00003FC00001FE00003FC00003FC00003F800003FC00
+003F800003FC00007F800007F800007F800007F000007F00000FF000007F00000FE00000
+FF00001FC00000FF00003F000000FE0000FE000000FE0001F8000001FE000FE0000001FF
+FFFF80000001FFFFFC00000001FC003F00000003FC000F80000003FC000FC0000003F800
+07E0000003F80007F0000007F80003F0000007F80003F0000007F00003F0000007F00003
+F800000FF00007F800000FF00007F000000FE00007F000000FE00007F000001FE0000FF0
+00001FE0000FF000001FC0000FF000001FC0000FF000003FC0000FF000003FC0001FF000
+003F80001FE007003F80001FE007007F80001FE00F007F80001FE00E007F00001FE00E00
+FF00000FE01C7FFFFE000FE03CFFFFFE0007F078FFFFFE0003F0F00000000000FFE00000
+0000003F80383B7CB83D>82 D<0000003FC00E000001FFF01C000007FFFC1C00001FC07E
+3C00003F001F7C00007C000FF80000F80007F80001F00003F80003E00003F80007C00001
+F00007C00001F0000F800001F0000F800001F0001F800001E0001F000001E0001F000001
+E0001F000001E0003F000001C0003F000001C0003F000001C0003F80000000003F800000
+00003FC0000000001FE0000000001FFC000000001FFF800000000FFFF00000000FFFFE00
+000007FFFF80000003FFFFE0000000FFFFF00000003FFFF800000007FFF8000000007FFC
+000000000FFC0000000003FC0000000001FC0000000001FC0000000000FC0000000000FC
+00000000007C000E0000007C000E0000007C000E0000007C001E000000FC001E000000F8
+001E000000F8001E000000F8003E000001F0003E000001F0003E000003E0003E000003E0
+007F000007C0007F00000F80007F80001F00007FC0003E0000F9F000FC0000F8FC03F800
+00F07FFFE00000E01FFF800000C003FC0000002F3D7ABA2F>I<07FFFFFFFFFFE007FFFF
+FFFFFFE00FFFFFFFFFFFE00FF800FF001FE00FC000FE0007C01F8000FE0007C01F0001FE
+0003C01E0001FE0003C01C0001FC0003C03C0001FC0003803C0003FC000380380003FC00
+0380780003F8000380700003F8000780700007F8000780F00007F8000700E00007F00007
+00E00007F0000700E0000FF000070000000FF000000000000FE000000000000FE0000000
+00001FE000000000001FE000000000001FC000000000001FC000000000003FC000000000
+003FC000000000003F8000000000003F8000000000007F8000000000007F800000000000
+7F0000000000007F000000000000FF000000000000FF000000000000FE000000000000FE
+000000000001FE000000000001FE000000000001FC000000000001FC000000000003FC00
+0000000003FC000000000003F8000000000003F8000000000007F8000000000007F80000
+00000007F0000000000007F000000000000FF000000000000FF000000000000FE0000000
+00003FF0000000007FFFFFF8000000FFFFFFF8000000FFFFFFF8000000333971B83B>I<
+3FFFFF800FFFFE3FFFFF800FFFFE3FFFFF800FFFFE007F8000007F80007F0000003F0000
+7F0000003E0000FF0000003C0000FF0000003C0000FE000000380000FE000000380001FE
+000000780001FE000000700001FC000000700001FC000000700003FC000000F00003FC00
+0000E00003F8000000E00003F8000000E00007F8000001E00007F8000001C00007F00000
+01C00007F0000001C0000FF0000003C0000FF000000380000FE000000380000FE0000003
+80001FE000000780001FE000000700001FC000000700001FC000000700003FC000000F00
+003FC000000E00003F8000000E00003F8000000E00007F8000001E00007F8000001C0000
+7F0000001C00007F0000001C00007F0000003C0000FF000000380000FE000000380000FE
+000000780000FE000000700000FE000000700000FE000000F00000FE000001E00000FE00
+0001C00000FE000003C000007E0000078000007E00000F0000007E00000E0000003F0000
+3E0000001F80007C0000001F8000F00000000FC003E000000007F01FC000000001FFFF00
+000000007FFC00000000001FE000000000373B70B83E>I<FFFFF80003FFFEFFFFF80003
+FFFEFFFFF80003FFFC03FE0000007FC003FC0000003F0001FC0000003E0001FC0000003C
+0001FC000000380001FC000000700001FC000000700001FC000000E00001FC000001E000
+01FC000001C00001FE000003800001FE000003800000FE000007000000FE00000F000000
+FE00000E000000FE00001C000000FE00001C000000FE000038000000FE000038000000FE
+000070000000FE0000E0000000FE0000E0000000FF0001C00000007F0001C00000007F00
+03800000007F0007800000007F0007000000007F000E000000007F000E000000007F001C
+000000007F003C000000007F0038000000007F0070000000007F8070000000003F80E000
+0000003F81E0000000003F81C0000000003F8380000000003F8380000000003F87000000
+00003F8700000000003F8E00000000003F9E00000000003F9C00000000003FF800000000
+003FF800000000001FF000000000001FF000000000001FE000000000001FC00000000000
+1FC000000000001F8000000000001F8000000000001F0000000000001E0000000000001E
+0000000000373B6FB83E>I<FFFFF80FFFFF001FFFF0FFFFF80FFFFF003FFFF0FFFFF00F
+FFFF003FFFE007FE00007FE00003FE0003F800003F800001FC0003F800003F800000F000
+03F800003F800000F00003F800003F800001E00003F800003F800001C00003F800003F80
+0003C00003F800003F800003800003F800003F800007800003F800007F800007000003F8
+00007F80000E000003F80000FF80000E000003F80001FF80001C000003F80001FF80001C
+000003F80003BF800038000003FC0003BF800038000001FC00073F800070000001FC0007
+3F800070000001FC000E3F8000E0000001FC000E3FC000E0000001FC001C1FC001C00000
+01FC001C1FC003C0000001FC00381FC00380000001FC00381FC00700000001FC00701FC0
+0700000001FC00F01FC00E00000001FC00E01FC00E00000001FC01C01FC01C00000001FC
+01C01FC01C00000001FC03801FC03800000001FC03801FC03800000001FC07001FC07000
+000001FC07001FC07000000001FC0E001FC0E000000001FC0E001FC1E000000001FC1C00
+1FC1C000000001FC1C001FC38000000001FC38001FC38000000001FC78001FC700000000
+01FC70001FC70000000001FCE0001FCE0000000001FEE0001FCE0000000000FFC0001FDC
+0000000000FFC0001FDC0000000000FF80001FF80000000000FF80001FF80000000000FF
+00001FF00000000000FF00000FF00000000000FE00000FE00000000000FE00000FC00000
+000000FC00000FC00000000000FC00000F800000000000F800000F800000000000F00000
+0F000000000000F000000F000000000000E000000E00000000004C3B6FB853>I<FFFFFF
+FFFFFCFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFC2F047C7040>95
D<0000F800000007FE0000001F871C00003E03FE00007C03FE0000F801FE0001F801FE00
03F000FC0007E000FC000FE000FC000FC001FC001FC001F8001FC001F8003F8001F8003F
8003F8007F8003F0007F0003F0007F0003F0007F0007F000FF0007E000FE0007E000FE00
@@ -2253,8 +2290,8 @@
FFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE024247DA32C>I
E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm ecbx1000 10 29
-/Fm 29 122 df<FFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFF
+%DVIPSBitmapFont: Fm ecbx1000 10 30
+/Fm 30 122 df<FFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFF
FFFFFFFFFFFFFC5E0380975F>22 D<00001E000000003E00000000FE00000007FE000000
7FFE0000FFFFFE0000FFFFFE0000FFFFFE0000FF8FFE0000000FFE0000000FFE0000000F
FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
@@ -2287,51 +2324,59 @@
1E0000FFC0003C0000FFC0007C0000FFC000F80000FFC000FFFFFFFFFF80FFFFFFFFFF80
FFFFFFFFFF80FFFFFFFFFF80000001FFC000000001FFC000000001FFC000000001FFC000
000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
-0003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF8029367DB530>I<FFFFFFFFFF
-C00000FFFFFFFFFFFC0000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF00003FFE00000
-7FF00000FFF000007FF000007FF800007FF000003FFC00007FF000001FFC00007FF00000
-1FFE00007FF000001FFE00007FF000000FFF00007FF000000FFF00007FF000000FFF0000
-7FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF00000
-1FFE00007FF000001FFE00007FF000001FFC00007FF000003FFC00007FF000007FF80000
-7FF00000FFF000007FF00001FFC000007FF0000FFF8000007FFFFFFFFC0000007FFFFFFF
-FC0000007FFFFFFFFF8000007FF00000FFF000007FF000003FF800007FF000001FFC0000
-7FF000000FFE00007FF0000007FF00007FF0000007FF80007FF0000003FFC0007FF00000
-03FFC0007FF0000003FFC0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE000
-7FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF00000
-03FFC0007FF0000003FFC0007FF0000007FFC0007FF000000FFF80007FF000000FFF0000
-7FF000001FFF00007FF000007FFE00007FF00001FFFC00FFFFFFFFFFFFF000FFFFFFFFFF
-FFC000FFFFFFFFFFFF0000FFFFFFFFFFF000003B397DB844>66 D<FFFFFFFCFFFFFFFCFF
-FFFFFCFFFFFFFC007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF80000
-7FF800007FF800007FF800007FF800007FF800007FF800FFFFFFFCFFFFFFFCFFFFFFFCFF
-FFFFFC1E397DB824>73 D<FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000FFFFFFFF
+0003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF8029367DB530>I<00000FF800
+0000FFFE000003FFFF80000FF80FC0003FE003E0007F8001F000FF000FF001FF001FF803
+FE003FF807FC003FF80FFC003FF80FF8003FF81FF8003FF81FF8003FF83FF8001FF03FF8
+000FE07FF00000007FF00000007FF00000007FF00800007FF07FF000FFF1FFFC00FFF3FF
+FF00FFF780FF80FFFF007FC0FFFE003FE0FFFC003FF0FFFC001FF8FFF8001FF8FFF8001F
+FCFFF8001FFCFFF8001FFCFFF0001FFEFFF0001FFEFFF0001FFEFFF0001FFE7FF0001FFE
+7FF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE3FF0001FFE3FF0001FFC3FF0001FFC1F
+F8001FFC1FF8001FF80FF8003FF80FFC003FF007FC003FE003FE007FC001FF81FF8000FF
+FFFF00003FFFFC00000FFFF0000001FF800027377CB530>54 D<FFFFFFFFFFC00000FFFF
+FFFFFFFC0000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF00003FFE000007FF00000FF
+F000007FF000007FF800007FF000003FFC00007FF000001FFC00007FF000001FFE00007F
+F000001FFE00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000000F
+FF00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000001FFE00007F
+F000001FFE00007FF000001FFC00007FF000003FFC00007FF000007FF800007FF00000FF
+F000007FF00001FFC000007FF0000FFF8000007FFFFFFFFC0000007FFFFFFFFC0000007F
+FFFFFFFF8000007FF00000FFF000007FF000003FF800007FF000001FFC00007FF000000F
+FE00007FF0000007FF00007FF0000007FF80007FF0000003FFC0007FF0000003FFC0007F
+F0000003FFC0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003
+FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFC0007F
+F0000003FFC0007FF0000007FFC0007FF000000FFF80007FF000000FFF00007FF000001F
+FF00007FF000007FFE00007FF00001FFFC00FFFFFFFFFFFFF000FFFFFFFFFFFFC000FFFF
+FFFFFFFF0000FFFFFFFFFFF000003B397DB844>66 D<FFFFFFFCFFFFFFFCFFFFFFFCFFFF
+FFFC007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC1E39
+7DB824>73 D<FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000007F
+F800000000007FF800000000007FF800000000007FF800000000007FF800000000007FF8
+00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
0000007FF800000000007FF800000000007FF800000000007FF800000000007FF8000000
00007FF800000000007FF800000000007FF800000000007FF800000000007FF800000000
-007FF800000000007FF800000000007FF800000000007FF800000000007FF80000000000
-7FF800000000007FF800000000007FF800000000007FF800000000007FF800000000007F
-F800000000007FF800000000007FF800000000007FF800000000007FF800000000007FF8
-00000780007FF800000780007FF800000780007FF800000780007FF800000780007FF800
-000F80007FF800000F00007FF800000F00007FF800000F00007FF800001F00007FF80000
-1F00007FF800003F00007FF800003F00007FF800007F00007FF80000FF00007FF80001FF
-00007FF80003FF00007FF8000FFE00007FF8007FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00
-FFFFFFFFFFFE00FFFFFFFFFFFE0031397DB839>76 D<000000FFF800000000000FFFFF80
-000000007FFFFFF000000001FFC01FFC00000007FF0007FF0000001FFC0001FFC000003F
-F000007FE000007FE000003FF00000FFC000001FF80001FF8000000FFC0003FF8000000F
-FE0007FF00000007FF0007FF00000007FF000FFE00000003FF800FFE00000003FF801FFC
-00000001FFC01FFC00000001FFC03FFC00000001FFE03FFC00000001FFE03FFC00000001
-FFE07FF800000000FFF07FF800000000FFF07FF800000000FFF07FF800000000FFF0FFF8
-00000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000
-FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF8
-00000000FFF8FFF800000000FFF8FFF800000000FFF87FF800000000FFF07FFC00000001
-FFF07FFC00000001FFF07FFC00000001FFF03FFC00000001FFE03FFC00000001FFE03FFE
-00000003FFE01FFE00000003FFC01FFE00000003FFC00FFF00000007FF8007FF00000007
-FF0007FF8000000FFF0003FFC000001FFE0001FFC000001FFC0000FFE000003FF800007F
-F000007FF000003FFC0001FFE000001FFF0007FFC0000007FFC01FFF00000001FFFFFFFC
-000000007FFFFFF0000000000FFFFF800000000000FFF80000003D3B7BB948>79
+007FF800000000007FF800000000007FF800000000007FF800000000007FF80000078000
+7FF800000780007FF800000780007FF800000780007FF800000780007FF800000F80007F
+F800000F00007FF800000F00007FF800000F00007FF800001F00007FF800001F00007FF8
+00003F00007FF800003F00007FF800007F00007FF80000FF00007FF80001FF00007FF800
+03FF00007FF8000FFE00007FF8007FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFF
+FE00FFFFFFFFFFFE0031397DB839>76 D<000000FFF800000000000FFFFF80000000007F
+FFFFF000000001FFC01FFC00000007FF0007FF0000001FFC0001FFC000003FF000007FE0
+00007FE000003FF00000FFC000001FF80001FF8000000FFC0003FF8000000FFE0007FF00
+000007FF0007FF00000007FF000FFE00000003FF800FFE00000003FF801FFC00000001FF
+C01FFC00000001FFC03FFC00000001FFE03FFC00000001FFE03FFC00000001FFE07FF800
+000000FFF07FF800000000FFF07FF800000000FFF07FF800000000FFF0FFF800000000FF
+F8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800
+000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FF
+F8FFF800000000FFF8FFF800000000FFF87FF800000000FFF07FFC00000001FFF07FFC00
+000001FFF07FFC00000001FFF03FFC00000001FFE03FFC00000001FFE03FFE00000003FF
+E01FFE00000003FFC01FFE00000003FFC00FFF00000007FF8007FF00000007FF0007FF80
+00000FFF0003FFC000001FFE0001FFC000001FFC0000FFE000003FF800007FF000007FF0
+00003FFC0001FFE000001FFF0007FFC0000007FFC01FFF00000001FFFFFFFC000000007F
+FFFFF0000000000FFFFF800000000000FFF80000003D3B7BB948>79
D<FFFFFFFFFF0000FFFFFFFFFFF000FFFFFFFFFFFE00FFFFFFFFFFFF80007FF8000FFFC0
007FF80001FFE0007FF80000FFF0007FF800007FF8007FF800003FFC007FF800003FFC00
7FF800001FFE007FF800001FFE007FF800001FFF007FF800001FFF007FF800001FFF007F
@@ -2714,35 +2759,108 @@
07FE078003FE078001FF0F0000FFFE00003FFC00000FF0001A2F7EAE22>I
E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp ecss0900 9 29
-/Fp 29 122 df<FEFEFEFEFEFEFE0707798615>46 D<00000070000000F8000000F80000
-01F8000001F0000001F0000003F0000003E0000003E0000007E0000007C0000007C00000
-0FC000000F8000000F8000001F8000001F0000001F0000003F0000003E0000003E000000
-7E0000007C0000007C000000FC000000F8000000F8000001F8000001F0000001F0000003
-F0000003E0000003E0000007E0000007C0000007C000000FC000000F8000001F8000001F
-0000001F0000003F0000003E0000003E0000007E0000007C0000007C000000FC000000F8
-000000F8000001F8000001F0000001F0000003F0000003E0000003E0000007E0000007C0
-000007C000000FC000000F8000000F8000001F8000001F0000001F0000003F0000003E00
-00003E0000007E0000007C0000007C000000FC000000F8000000F8000000700000001D4B
-7CB726>I<FEFEFEFEFEFEFE00000000000000000000000000000000000000FEFEFEFEFE
-FEFE072179A015>58 D<000007F8000000007FFF00000001FFFFC0000007FFFFE000000F
-FFFFF000001FF80FF800007FC003FC0000FF8000FC0001FE0000FE0001FC00007E0003F8
-007E7F0007F001FFBF000FE007FFFF000FC00FFFFF801FC01FFFFF801F803FC3FF803F80
-7F00FF803F007E007F803F00FC003FC07E00FC003FC07E01F8001FC07E01F8001FC0FE01
-F8001FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03
-F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FE01F8001F807E01
-F8001F807E01F8001F807E00FC003F003F00FC003F003F007E007E003F807F00FE001F80
-3FC3FC001FC01FFFF8000FC00FFFF0000FE007FFE00007F001FF800003F8007E000001FC
-0000000001FE0000000000FF80000FC0007FC0003F80001FF803FF00000FFFFFFE000007
-FFFFF8000001FFFFF00000007FFF8000000007FC00002A387CB633>64
-D<00000FFC0000007FFFC00003FFFFF00007FFFFFC001FFFFFFC003FF807FC007FC000F8
-00FF00007801FE00001803FC00000807F800000007F00000000FE00000000FE00000001F
-C00000001FC00000003F800000003F800000007F000000007F000000007F000000007F00
+%DVIPSBitmapFont: Fp ecss0900 9 46
+/Fp 46 122 df<0007E03F80000FF83F80003FF83F80007FF83F80007FF83F8000FC183F
+8000F8083F8001F800000001F000000001F000000003F000000003F000000003F0000000
+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003
+F000000003F0000000FFFFF81F80FFFFF81F80FFFFF81F80FFFFF81F80FFFFF81F8003F0
+001F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F8003F000
+1F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F
+8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F80
+03F0001F8003F0001F8003F0001F8003F0001F8003F0001F8003F0001F8021377FB629>
+28 D<000000380038000000007C007C000000007C007C000000007C007C00000000FC00
+FC00000000F800F800000000F800F800000000F800F800000000F800F800000001F801F8
+00000001F001F000000001F001F000000001F001F000000001F001F000000003F003F000
+000003E003E000000003E003E000000003E003E000000003E003E000000007E007E00000
+0007C007C000000007C007C000000007C007C000000007C007C0003FFFFFFFFFFFF8FFFF
+FFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFE00003F003F000000003E
+003E000000003E003E000000003E003E000000003E003E000000003E003E000000007E00
+7E000000007C007C000000007C007C000000007C007C000000007C007C00000000FC00FC
+0000FFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFE3FFFFFFFFFFF
+F80003E003E000000003E003E000000003E003E000000007E007E000000007C007C00000
+0007C007C000000007C007C00000000FC00FC00000000F800F800000000F800F80000000
+0F800F800000001F801F800000001F001F000000001F001F000000001F001F000000001F
+001F000000003F003F000000003E003E000000003E003E000000003E003E000000007E00
+7E000000007C007C000000007C007C000000007C007C0000000038003800000037477CB5
+40>35 D<FEFEFEFEFEFEFE0707798615>46 D<00000070000000F8000000F8000001F800
+0001F0000001F0000003F0000003E0000003E0000007E0000007C0000007C000000FC000
+000F8000000F8000001F8000001F0000001F0000003F0000003E0000003E0000007E0000
+007C0000007C000000FC000000F8000000F8000001F8000001F0000001F0000003F00000
+03E0000003E0000007E0000007C0000007C000000FC000000F8000001F8000001F000000
+1F0000003F0000003E0000003E0000007E0000007C0000007C000000FC000000F8000000
+F8000001F8000001F0000001F0000003F0000003E0000003E0000007E0000007C0000007
+C000000FC000000F8000000F8000001F8000001F0000001F0000003F0000003E0000003E
+0000007E0000007C0000007C000000FC000000F8000000F8000000700000001D4B7CB726
+>I<000FE000007FFC0000FFFE0001FFFF0003FFFF8007F83FC00FE00FE01FC007F01F80
+03F01F0001F03F0001F83F0001F83E0000F87E0000FC7E0000FC7E0000FC7C00007CFC00
+007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00
+007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00
+007E7E0000FC7E0000FC7E0000FC7E0000FC7E0000FC3F0001F83F0001F83F8003F81F80
+03F01FC007F00FE00FE007F83FC007FFFFC003FFFF8000FFFE00007FFC00000FE0001F35
+7DB226>I<001FE00000FFFC0003FFFF0007FFFF800FFFFFC01FF03FE03FC00FF07F0007
+F03E0003F01C0003F81C0001F8080001F8000001F8000003F8000003F8000003F0000003
+F0000007F000000FE000001FE000003FC00001FF80007FFF00007FFE00007FF800007FFC
+00007FFF0000003FC000000FE0000007F0000003F8000001F8000001FC000001FC000000
+FE000000FE000000FE000000FE000000FE000000FE000000FE400001FC600001FC700001
+FCF80003F8FC0007F87F000FF03FE03FE01FFFFFC00FFFFF8003FFFF0000FFFC00001FE0
+001F357DB226>51 D<1FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F87E0001FBFFC001FFFFE001FFFFF001FFFFF801FF83FC01FE00FE01FC007
+F01F8007F01F8003F81F0003F8000003F8000001FC000001FC000001FC000001FC000001
+FC000001FC000001FC000001FC000001FC000003F8200003F8300003F8700007F0780007
+F0FC000FE07F001FC03FC07FC01FFFFF800FFFFE0007FFFC0001FFF000003FC0001E337D
+B026>53 D<000FE000007FF80000FFFE0001FFFF0003FFFF8007F83FC00FE00FE01FC007
+E01F8003F03F0001F07E0001F87E0001F87E0000F8FC0000FCFC0000FCFC0000FCFC0000
+7CFC00007CFC00007EFC00007EFC00007EFC00007EFC00007EFC0000FE7E0000FE7E0000
+FE7E0001FE7F0001FE3F0003FE3F8007FE1FC00FFE0FF03F7E0FFFFE7E07FFFCFC03FFF8
+FC01FFE0FC007F00FC000000F8000001F8000001F8000003F0000003F0000007E0000007
+E000000FC008001F800C007F001F81FF001FFFFE003FFFF8001FFFF00007FFC00000FF00
+001F357DB226>57 D<FEFEFEFEFEFEFE00000000000000000000000000000000000000FE
+FEFEFEFEFEFE072179A015>I<000007F8000000007FFF00000001FFFFC0000007FFFFE0
+00000FFFFFF000001FF80FF800007FC003FC0000FF8000FC0001FE0000FE0001FC00007E
+0003F8007E7F0007F001FFBF000FE007FFFF000FC00FFFFF801FC01FFFFF801F803FC3FF
+803F807F00FF803F007E007F803F00FC003FC07E00FC003FC07E01F8001FC07E01F8001F
+C0FE01F8001FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000F
+C0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FE01F8001F
+807E01F8001F807E01F8001F807E00FC003F003F00FC003F003F007E007E003F807F00FE
+001F803FC3FC001FC01FFFF8000FC00FFFF0000FE007FFE00007F001FF800003F8007E00
+0001FC0000000001FE0000000000FF80000FC0007FC0003F80001FF803FF00000FFFFFFE
+000007FFFFF8000001FFFFF00000007FFF8000000007FC00002A387CB633>64
+D<00001FE0000000001FE0000000001FE0000000003FF0000000003FF0000000003FF000
+0000007DF80000000079F800000000F9FC00000000F8FC00000000F8FC00000001F0FE00
+000001F0FE00000001F07E00000003E07F00000003E07F00000007E03F80000007C03F80
+000007C03F8000000FC01FC000000F801FC000000F801FC000001F800FE000001F000FE0
+00003F0007F000003F0007F000003E0007F000007E0003F800007C0003F800007C0003F8
+0000FC0001FC0000F80001FC0001F80001FE0001FFFFFFFE0001FFFFFFFE0003FFFFFFFF
+0003FFFFFFFF0003FFFFFFFF0007E000003F8007C000003F800FC000003FC00FC000001F
+C00F8000001FC01F8000001FE01F8000000FE01F0000000FE03F00000007F03E00000007
+F07E00000007F87E00000003F87C00000003F8FC00000001FC2E347EB333>I<00000FFC
+0000007FFFC00003FFFFF00007FFFFFC001FFFFFFC003FF807FC007FC000F800FF000078
+01FE00001803FC00000807F800000007F00000000FE00000000FE00000001FC00000001F
+C00000003F800000003F800000007F000000007F000000007F000000007F00000000FE00
000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
-0000FE00000000FE00000000FE00000000FE00000000FE000000007F000000007F000000
-007F000000007F000000003F800000003F800000001FC00000001FC00000000FE0000000
-0FE000000007F000000007F800000003FC00000201FE00000600FF00001E007FC0007E00
-3FF803FE001FFFFFFE0007FFFFFC0003FFFFF000007FFFC000000FFE0027387BB531>67
+0000FE00000000FE00000000FE00000000FE000000007F000000007F000000007F000000
+007F000000003F800000003F800000001FC00000001FC00000000FE00000000FE0000000
+07F000000007F800000003FC00000201FE00000600FF00001E007FC0007E003FF803FE00
+1FFFFFFE0007FFFFFC0003FFFFF000007FFFC000000FFE0027387BB531>67
+D<FFFFFF800000FFFFFFF00000FFFFFFFC0000FFFFFFFF0000FFFFFFFFC000FE0001FFE0
+00FE00003FF000FE00000FF800FE000007FC00FE000001FE00FE000000FE00FE000000FF
+00FE0000007F00FE0000003F80FE0000003F80FE0000001FC0FE0000001FC0FE0000000F
+E0FE0000000FE0FE0000000FE0FE00000007E0FE00000007F0FE00000007F0FE00000007
+F0FE00000007F0FE00000007F0FE00000007F0FE00000007F0FE00000007F0FE00000007
+F0FE00000007F0FE00000007F0FE00000007E0FE0000000FE0FE0000000FE0FE0000000F
+C0FE0000001FC0FE0000001FC0FE0000003F80FE0000007F80FE0000007F00FE000000FF
+00FE000001FE00FE000003FC00FE00000FF800FE00003FF000FE0001FFE000FFFFFFFFC0
+00FFFFFFFF0000FFFFFFFE0000FFFFFFF00000FFFFFF8000002C3479B338>I<FFFFFFFF
+C0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FE00000000FE00000000FE00000000
+FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
+00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FFFF
+FFFF00FFFFFFFF00FFFFFFFF00FFFFFFFF00FFFFFFFF00FE00000000FE00000000FE0000
+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000
+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
+FE00000000FE00000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FF
+FFFFFFE0233479B32E>I<FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE073479B315>73
D<FF800000007FC0FFC0000000FFC0FFC0000000FFC0FFC0000000FFC0FFE0000001FFC0
FFE0000001FFC0FDE0000001EFC0FDF0000003EFC0FDF0000003EFC0FCF8000007CFC0FC
F8000007CFC0FCF8000007CFC0FC7C00000F8FC0FC7C00000F8FC0FC7C00000F8FC0FC7E
@@ -2753,23 +2871,65 @@
C0FC007C0F800FC0FC007E1F800FC0FC003E1F000FC0FC003E1F000FC0FC003F3F000FC0
FC001F3E000FC0FC001F3E000FC0FC000F3C000FC0FC000FFC000FC0FC000FFC000FC0FC
0007F8000FC0FC0007F8000FC0FC0007F8000FC0FC0003F0000FC0FC000000000FC0FC00
-0000000FC0323478B343>77 D<FFFFFF0000FFFFFFE000FFFFFFF800FFFFFFFC00FFFFFF
-FF00FE0003FF80FE00007FC0FE00001FC0FE00000FE0FE000007F0FE000007F0FE000003
-F0FE000003F8FE000003F8FE000001F8FE000001F8FE000001F8FE000003F8FE000003F8
-FE000003F0FE000007F0FE000007F0FE00000FE0FE00001FC0FE00007FC0FE0003FF80FF
-FFFFFF00FFFFFFFC00FFFFFFF800FFFFFFE000FFFFFF0000FE00000000FE00000000FE00
-000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
-0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000
-00FE00000000FE00000000FE00000000FE00000000253479B331>80
-D<FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF800001FC000
-0000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000
-0000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000
-0000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000
-0000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000
-0000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000
-0000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000
-0000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000
-0000001FC0000000001FC0000000001FC0000000001FC000002D347DB334>84
+0000000FC0323478B343>77 D<FFC000007EFFE000007EFFE000007EFFF000007EFFF000
+007EFFF800007EFDF800007EFCFC00007EFCFC00007EFCFE00007EFC7E00007EFC7F0000
+7EFC3F00007EFC3F80007EFC1F80007EFC1FC0007EFC0FC0007EFC0FE0007EFC0FE0007E
+FC07F0007EFC07F0007EFC03F8007EFC03F8007EFC01FC007EFC01FC007EFC00FE007EFC
+00FE007EFC007F007EFC007F007EFC003F807EFC003F807EFC001FC07EFC001FC07EFC00
+0FE07EFC000FE07EFC0007E07EFC0007F07EFC0003F07EFC0003F87EFC0001F87EFC0001
+FC7EFC0000FC7EFC0000FE7EFC00007E7EFC00007E7EFC00003F7EFC00003FFEFC00001F
+FEFC00001FFEFC00000FFEFC00000FFEFC000007FE273479B336>I<00000FF000000000
+FFFF00000003FFFFC000000FFFFFF000001FFFFFF800003FF00FFC00007FC003FE0000FF
+0000FF0001FE00007F8003FC00003FC007F800001FE007F000000FE00FE0000007F00FC0
+000003F01FC0000003F81F80000001F83F80000001FC3F80000001FC7F00000000FE7F00
+000000FE7F00000000FE7E000000007EFE000000007FFE000000007FFE000000007FFE00
+0000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE00
+0000007FFE000000007FFF00000000FF7F00000000FE7F00000000FE7F00000000FE7F80
+000001FE3F80000001FC3F80000001FC3FC0000003FC1FC0000003F81FE0000007F80FE0
+000007F007F000000FE007F800001FE003FC00003FC001FE00007F8000FF0000FF00007F
+C003FE00003FF00FFC00001FFFFFF800000FFFFFF0000003FFFFC0000000FFFF00000000
+1FF8000030387CB539>I<FFFFFF0000FFFFFFE000FFFFFFF800FFFFFFFC00FFFFFFFF00
+FE0003FF80FE00007FC0FE00001FC0FE00000FE0FE000007F0FE000007F0FE000003F0FE
+000003F8FE000003F8FE000001F8FE000001F8FE000001F8FE000003F8FE000003F8FE00
+0003F0FE000007F0FE000007F0FE00000FE0FE00001FC0FE00007FC0FE0003FF80FFFFFF
+FF00FFFFFFFC00FFFFFFF800FFFFFFE000FFFFFF0000FE00000000FE00000000FE000000
+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
+FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
+00000000FE00000000FE00000000FE00000000253479B331>I<FFFFFF0000FFFFFFE000
+FFFFFFFC00FFFFFFFE00FFFFFFFF80FE0001FFC0FE00003FE0FE00000FF0FE000007F0FE
+000003F8FE000001F8FE000001FCFE000000FCFE000000FCFE000000FCFE000000FCFE00
+0001FCFE000001F8FE000003F8FE000007F0FE00000FF0FE00003FE0FE0001FFC0FFFFFF
+FF80FFFFFFFE00FFFFFFFC00FFFFFFE000FFFFFF8000FE001FC000FE000FC000FE000FE0
+00FE0007F000FE0003F000FE0003F800FE0001F800FE0001FC00FE0000FE00FE0000FE00
+FE00007F00FE00003F00FE00003F80FE00001FC0FE00001FC0FE00000FE0FE000007E0FE
+000007F0FE000003F8FE000003F8FE000001FCFE000000FCFE000000FEFE0000007F2834
+79B332>82 D<0003FE0000001FFFE000007FFFF80001FFFFFE0003FFFFFF0007FC03FF00
+0FF0007F001FC0001E001F80000E003F000006003F000002007E000000007E000000007E
+000000007E000000007E000000007E000000007F000000007F000000003F800000003FC0
+0000001FF00000001FFC0000000FFFE0000007FFFE000003FFFF800001FFFFE000007FFF
+F800001FFFFC000003FFFE0000003FFF00000003FF00000000FF800000003FC00000001F
+C00000001FC00000000FE00000000FE000000007E000000007E000000007E000000007E0
+00000007E000000007E04000000FC06000000FC07000001F807C00001F80FF00007F00FF
+C000FF00FFF803FE007FFFFFFC001FFFFFF00007FFFFE00000FFFF8000000FFC00002338
+7DB52B>I<FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF800
+001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
+001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
+001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
+001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
+001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
+001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
+001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
+001FC0000000001FC0000000001FC0000000001FC0000000001FC000002D347DB334>I<
+7FC0000007F03FC000000FF01FE000000FE00FF000001FC007F800003FC007F800007F80
+03FC00007F0001FE0000FE0000FE0001FE0000FF0001FC00007F8003F800003FC007F000
+001FC00FF000000FE00FE000000FF01FC0000007F83F80000003F83F80000001FC7F0000
+0001FEFE00000000FFFE000000007FFC000000003FF8000000001FF0000000001FF00000
+00000FE0000000001FE0000000001FF0000000003FF8000000007FFC000000007EFE0000
+0000FEFE00000001FC7F00000003F83F80000003F01FC0000007F01FC000000FE00FE000
+001FC007F000001FC007F800003F8003FC00007F0001FC0000FF0000FE0000FE0000FF00
+01FC00007F8003F800003F8003F800003FC007F000001FE00FE000000FF01FE0000007F0
+1FC0000007F83F80000003FC7F00000001FEFF00000001FF30347FB333>88
+D<7FFFFFFFFFFCFFFFFFFFFFFEFFFFFFFFFFFE7FFFFFFFFFFC2F047A6F3C>95
D<003FC00003FFF0000FFFFC001FFFFE001FFFFF001FC07F801E001F8018001FC010000F
C000000FE0000007E0000007E0000007E0000007E0000007E0000007E00003FFE0003FFF
E001FFFFE007FFFFE01FFFC7E03FF007E07F8007E07E0007E0FC0007E0FC0007E0FC0007
@@ -2853,25 +3013,28 @@
E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007
E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007
E0FC0007E0FC0007E0FC0007E0FC0007E0FC000FE0FC001FE0FE003FE0FF00FFE07FFFFF
-E07FFFF7E03FFFE7E01FFF07E007F800001B227AA028>I<FC0007F0001F80FE0007F000
-1F807E000FF0003F007E000FF8003F007E000F78003F003F001F78003E003F001F78007E
-003F001E7C007E001F803E7C007C001F803E3C00FC001F803E3E00FC000F803C3E00F800
-0FC07C3E01F8000FC07C1E01F8000FC07C1F01F80007E0781F01F00007E0F81F03F00007
-E0F80F83F00003E0F80F83E00003F0F00F83E00003F1F00F87E00001F1F007C7C00001F1
-E007C7C00001F1E007C7C00001FBE003CFC00000FBE003CF800000FBC003EF800000FBC0
-01EF8000007BC001EF0000007F8001FF0000007F8001FF0000003F8000FE0000003F0000
-FE000031217FA034>119 D<7E00003F003F00007F001F8000FE001FC000FC000FE001F8
-0007E003F00003F007E00001F80FE00000FC0FC000007E1F8000007F3F0000003F7E0000
-001FFC0000000FF800000007F800000003F000000003F000000007F80000000FFC000000
-1FFC0000003F3E0000003E1F0000007C1F800000FC0FC00001F807E00003F003F00007E0
-03F00007E001F8000FC000FC001F80007E003F00007F007F00003F80FE00001FC0222180
-A023>I<FE00003F7E00007E7E00007E3F00007E3F0000FC3F8000FC1F8001F81FC001F8
-0FC001F80FC003F007E003F007E003E007F007E003F007E003F007C001F80FC001F80F80
-00F80F8000FC1F8000FC1F00007C1F00007E3E00003E3E00003E3E00001F3C00001F7C00
-000F7800000F7800000F78000007F0000007F0000003E0000003E0000003E0000003C000
-0007C0000007800000078000000F8000000F0000001F0000001E0000203E0000387C0000
-3FFC00003FF800003FF800003FF000000FC0000020317FA023>I
-E
+E07FFFF7E03FFFE7E01FFF07E007F800001B227AA028>I<FC00003F7E00003E7E00007E
+7F00007E3F0000FC3F0000FC3F8000FC1F8001F81F8001F80FC003F00FC003F00FC003F0
+07E007E007E007E003F007C003F00FC003F00FC001F80F8001F81F8001F81F8000FC1F00
+00FC3F00007C3E00007E3E00007E7E00003E7C00003E7C00003E7C00001F7800001FF800
+000FF000000FF000000FF00020217FA023>I<FC0007F0001F80FE0007F0001F807E000F
+F0003F007E000FF8003F007E000F78003F003F001F78003E003F001F78007E003F001E7C
+007E001F803E7C007C001F803E3C00FC001F803E3E00FC000F803C3E00F8000FC07C3E01
+F8000FC07C1E01F8000FC07C1F01F80007E0781F01F00007E0F81F03F00007E0F80F83F0
+0003E0F80F83E00003F0F00F83E00003F1F00F87E00001F1F007C7C00001F1E007C7C000
+01F1E007C7C00001FBE003CFC00000FBE003CF800000FBC003EF800000FBC001EF800000
+7BC001EF0000007F8001FF0000007F8001FF0000003F8000FE0000003F0000FE00003121
+7FA034>I<7E00003F003F00007F001F8000FE001FC000FC000FE001F80007E003F00003
+F007E00001F80FE00000FC0FC000007E1F8000007F3F0000003F7E0000001FFC0000000F
+F800000007F800000003F000000003F000000007F80000000FFC0000001FFC0000003F3E
+0000003E1F0000007C1F800000FC0FC00001F807E00003F003F00007E003F00007E001F8
+000FC000FC001F80007E003F00007F007F00003F80FE00001FC0222180A023>I<FE0000
+3F7E00007E7E00007E3F00007E3F0000FC3F8000FC1F8001F81FC001F80FC001F80FC003
+F007E003F007E003E007F007E003F007E003F007C001F80FC001F80F8000F80F8000FC1F
+8000FC1F00007C1F00007E3E00003E3E00003E3E00001F3C00001F7C00000F7800000F78
+00000F78000007F0000007F0000003E0000003E0000003E0000003C0000007C000000780
+0000078000000F8000000F0000001F0000001E0000203E0000387C00003FFC00003FF800
+003FF800003FF000000FC0000020317FA023>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fq ecrm1000 10 83
/Fq 83 184 df<01800060038000E0070001C00E0003801C0007001800060038000E0030
@@ -3888,34 +4051,32 @@
00FE000001FC00FE000001FC00FE000003F800FE000003F800FE000007F000FE000007F0
00FE00000FE000FE00000FE000FF00001FC0007F00003F80007F00007F80007F8000FF00
003FC001FE00003FE007FC00003FF81FF800001FFFFFF000000FFFFFE0000007FFFFC000
-0003FFFF00000000FFFC000000001FE00000002C4577C231>48 D<0000003FC000000001
-FFF800000007FFFC0000001FFFFE0000003FFFFF0000007FFFFF800001FFC0FFC00003FE
-003FC00007FC001FE0000FF8000FE0001FF0000FF0001FE0000FF0003FC00007F0007F80
-0007F0007F000007F000FF000007F800FE000007F801FE000007F801FE000007F803FC00
-0007F803FC000007F803FC000007F807F8000007F807F8000007F807F8000007F807F800
-000FF007F800000FF007F000000FF00FF000000FF00FF000001FF00FF000001FF00FF000
-003FF00FF000003FE00FF000007FE007F800007FE007F80000FFE007F80001FFC007FC00
-03FFC003FC0007FFC003FE000FFFC003FF003FFF8001FFFFFF7F8001FFFFFC7F8000FFFF
-F8FF00007FFFE0FF00003FFF80FE00000FFE01FE0000000001FC0000000003FC00000000
-03F80000000007F80000000007F0000000000FF0000000001FE0000000001FC000000000
-3F80000000007F8000000000FF0000000001FE0000180003FC000038000FF800007E001F
-F000007F80FFE00000FFFFFFC000007FFFFF0000003FFFFE0000001FFFF80000000FFFE0
-00000001FF000000002D4578C231>57 D<0001FFFFFFF000000003FFFFFFFE00000003FF
-FFFFFFC0000003FFFFFFFFF0000003FFFFFFFFF8000007FFFFFFFFFC000007F800007FFE
-000007F800000FFF000007F8000003FF800007F8000000FF80000FF00000007FC0000FF0
-0000007FC0000FF00000003FE0000FF00000003FE0000FF00000003FE0001FE00000001F
-E0001FE00000001FE0001FE00000001FE0001FE00000003FE0001FE00000003FC0003FC0
-0000003FC0003FC00000007FC0003FC00000007F80003FC0000000FF80007F80000001FF
-00007F80000003FE00007F80000007FE00007F8000000FFC00007F8000003FF80000FF00
-0000FFF00000FF00000FFFC00000FFFFFFFFFF800000FFFFFFFFFE000000FFFFFFFFF800
-0001FFFFFFFFE0000001FFFFFFFF00000001FFFFFFFC00000001FE0001FC00000003FC00
-01FE00000003FC0001FE00000003FC0000FE00000003FC0000FF00000003FC00007F0000
-0007F800007F80000007F800007F80000007F800003F80000007F800003FC0000007F800
-003FC000000FF000001FC000000FF000001FE000000FF000001FE000000FF000000FF000
-000FF000000FF000001FE000000FF000001FE0000007F800001FE0000007F800001FE000
-0003F800003FC0000003FC00003FC0000003FC00003FC0000001FC00003FC0000001FE00
-003FC0000001FE00007F80000000FF00007F80000000FF00007F80000000FF00007F8000
-00007F80007F800000007F8000FF000000007F8000FF000000003FC0003B4577C43F>82
+0003FFFF00000000FFFC000000001FE00000002C4577C231>48 D<00000000C000000003
+C000000007C00000001F800000007F80000007FF80000FFFFF80000FFFFF80000FFFFF00
+000FFFFF00001FFEFF00001FF0FF00000000FF00000001FE00000001FE00000001FE0000
+0001FE00000001FE00000003FC00000003FC00000003FC00000003FC00000007F8000000
+07F800000007F800000007F800000007F80000000FF00000000FF00000000FF00000000F
+F00000000FF00000001FE00000001FE00000001FE00000001FE00000003FC00000003FC0
+0000003FC00000003FC00000003FC00000007F800000007F800000007F800000007F8000
+00007F80000000FF00000000FF00000000FF00000000FF00000000FF00000001FE000000
+01FE00000001FE00000001FE00000003FC00000003FC00000003FC00000003FC00000003
+FC00000007F800007FFFFFFF807FFFFFFF807FFFFFFF807FFFFFFF80FFFFFFFF00FFFFFF
+FF00224377C231>I<0001FFFFFFF000000003FFFFFFFE00000003FFFFFFFFC0000003FF
+FFFFFFF0000003FFFFFFFFF8000007FFFFFFFFFC000007F800007FFE000007F800000FFF
+000007F8000003FF800007F8000000FF80000FF00000007FC0000FF00000007FC0000FF0
+0000003FE0000FF00000003FE0000FF00000003FE0001FE00000001FE0001FE00000001F
+E0001FE00000001FE0001FE00000003FE0001FE00000003FC0003FC00000003FC0003FC0
+0000007FC0003FC00000007F80003FC0000000FF80007F80000001FF00007F80000003FE
+00007F80000007FE00007F8000000FFC00007F8000003FF80000FF000000FFF00000FF00
+000FFFC00000FFFFFFFFFF800000FFFFFFFFFE000000FFFFFFFFF8000001FFFFFFFFE000
+0001FFFFFFFF00000001FFFFFFFC00000001FE0001FC00000003FC0001FE00000003FC00
+01FE00000003FC0000FE00000003FC0000FF00000003FC00007F00000007F800007F8000
+0007F800007F80000007F800003F80000007F800003FC0000007F800003FC000000FF000
+001FC000000FF000001FE000000FF000001FE000000FF000000FF000000FF000000FF000
+001FE000000FF000001FE0000007F800001FE0000007F800001FE0000003F800003FC000
+0003FC00003FC0000003FC00003FC0000001FC00003FC0000001FE00003FC0000001FE00
+007F80000000FF00007F80000000FF00007F80000000FF00007F800000007F80007F8000
+00007F8000FF000000007F8000FF000000003FC0003B4577C43F>82
D<00000FFC000000FFFF800003FFFFC0001FFFFFF0003FFFFFF8003FFFFFF8007FE00FFC
007F0003FE00780003FE00600001FE00000001FE00000001FF00000000FF00000000FF00
000000FF00000001FE00000001FE00000001FE00000001FE00000001FE00000003FC0000
@@ -4457,9 +4618,9 @@
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 0 83 3901 9 v 1890 451 a Ft(Python)64
-b(Op)5 b(enSSL)64 b(Manual)3443 619 y Fs(Release)33 b(0.9)2927
-974 y Fr(Jean-P)m(aul)j(Calderone)3386 1328 y Fq(April)27
-b(25,)g(2009)3014 1475 y Fp(exa)n(rkun@t)n(wistedmatrix.com)1781
+b(Op)5 b(enSSL)64 b(Manual)3394 619 y Fs(Release)34 b(0.10)2927
+974 y Fr(Jean-P)m(aul)i(Calderone)3208 1328 y Fq(No)n(v)n(em)n(b)r(er)
+26 b(13,)h(2009)3014 1475 y Fp(exa)n(rkun@t)n(wistedmatrix.com)1781
1697 y Fo(Abstract)208 1841 y Fn(This)32 b(mo)r(dule)f(is)h(a)g(rather)
g(thin)f(wrapp)r(er)h(around)g(\(a)g(subset)f(of)6 b(\))32
b(the)g(Op)r(enSSL)e(library)-6 b(.)52 b(With)32 b(thin)f(wrapp)r(er)
@@ -4496,7 +4657,7 @@
b(jects)58 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
-b(7)315 3743 y(PK)n(CS7)27 b(ob)5 b(jects)59 b(.)41 b(.)h(.)f(.)h(.)g
+b(8)315 3743 y(PK)n(CS7)27 b(ob)5 b(jects)59 b(.)41 b(.)h(.)f(.)h(.)g
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
(.)h(.)f(.)h(.)134 b(8)315 3842 y(PK)n(CS12)27 b(ob)5
@@ -4506,34 +4667,34 @@
3942 y(X509Extension)27 b(ob)5 b(jects)102 b(.)41 b(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
-b(8)315 4041 y(Netscap)r(eSPKI)28 b(ob)5 b(jects)58 b(.)42
+b(9)315 4041 y(Netscap)r(eSPKI)28 b(ob)5 b(jects)58 b(.)42
b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)134 b(8)125 4141 y(3.2)83 b Fl(rand)26
+f(.)h(.)f(.)h(.)134 b(9)125 4141 y(3.2)83 b Fl(rand)26
b Fq(\026)i(An)g(in)n(terface)f(to)g(the)h(Op)r(enSSL)g(pseudo)f
(random)g(n)n(um)n(b)r(er)g(generator)50 b(.)41 b(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)134 b(9)125 4241 y(3.3)83 b Fl(SSL)27
b Fq(\026)g(An)i(in)n(terface)d(to)i(the)g(SSL-sp)r(eci\034c)f(parts)g
(of)h(Op)r(enSSL)64 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(9)315 4340 y(Con)n(text)28
+h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(10)315 4340 y(Con)n(text)28
b(ob)5 b(jects)98 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
b(11)315 4440 y(Connection)27 b(ob)5 b(jects)108 b(.)42
b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)93 b(12)0 4623 y Fm(4)77 b(In)m(ternals)3310
-b(14)125 4722 y Fq(4.1)83 b(Exceptions)i(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g
+h(.)f(.)h(.)f(.)h(.)93 b(13)0 4623 y Fm(4)77 b(In)m(ternals)3310
+b(16)125 4722 y Fq(4.1)83 b(Exceptions)i(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)93 b(14)125 4822 y(4.2)83 b(Callbac)n(ks)68
+(.)h(.)f(.)h(.)93 b(16)125 4822 y(4.2)83 b(Callbac)n(ks)68
b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(15)125 4921 y(4.3)83 b(A)n(cessing)27 b(So)r(c)n(k)n(et)g(Metho)r(ds)
+b(16)125 4921 y(4.3)83 b(A)n(cessing)27 b(So)r(c)n(k)n(et)g(Metho)r(ds)
82 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)93 b(15)p 0 5068 V eop end
+f(.)h(.)f(.)h(.)93 b(17)p 0 5068 V eop end
%%Page: 2 2
TeXDict begin 2 1 bop 0 85 a Fr(1)114 b(Intro)s(duction)0
314 y Fq(The)41 b(reason)e(p)n(yOp)r(enSSL)i(w)n(as)e(created)h(is)h
@@ -4619,856 +4780,977 @@
3635 y Fl(SSL)208 3734 y Fq(An)g(in)n(terface)e(to)i(the)g(SSL-sp)r
(eci\034c)f(parts)g(of)h(Op)r(enSSL.)0 4014 y Fj(3.1)97
b Fd(crypto)34 b Fj(\026)e(Generic)i(cryptographic)e(mo)s(dule)0
-4214 y Fl(X509Type)208 4314 y Fq(A)27 b(Python)h(t)n(yp)r(e)g(ob)5
-b(ject)28 b(represen)n(ting)d(the)j(X509)f(ob)5 b(ject)27
-b(t)n(yp)r(e.)0 4461 y Fl(X509\(\))208 4561 y Fq(F)-7
-b(actory)26 b(function)i(that)g(creates)e(an)i(X509)e(ob)5
-b(ject.)0 4707 y Fl(X509NameType)208 4807 y Fq(A)27 b(Python)h(t)n(yp)r
-(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(X509Name)f(ob)5
-b(ject)27 b(t)n(yp)r(e.)0 4954 y Fl(X509Name\()p Fc(x509name)6
-b Fl(\))208 5054 y Fq(F)-7 b(actory)26 b(function)i(that)g(creates)e(a)
-h(cop)n(y)g(of)34 b Fc(x509name)6 b Fq(.)0 5200 y Fl(X509ReqType)208
-5300 y Fq(A)27 b(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28
-b(represen)n(ting)d(the)j(X509Req)f(ob)5 b(ject)27 b(t)n(yp)r(e.)p
-0 5549 3901 4 v 0 5649 a Ff(2.2)82 b(Building)27 b(the)g(Mo)r(dule)g
-(on)g(a)g(Windo)n(ws)g(System)2164 b(3)p eop end
+4214 y Fl(X509Type)208 4314 y Fq(See)27 b Fl(X509)p Fq(.)0
+4461 y Fm(class)k Fl(X509\(\))208 4561 y Fq(A)c(class)g(represen)n
+(ting)f(X.509)h(certi\034cates.)0 4707 y Fl(X509NameType)208
+4807 y Fq(See)g Fl(X509Name)p Fq(.)0 4954 y Fm(class)k
+Fl(X509Name\()p Fc(x509name)6 b Fl(\))208 5054 y Fq(A)27
+b(class)g(represen)n(ting)f(X.509)h(Distinguished)g(Names.)208
+5186 y(This)g(constructor)f(creates)g(a)i(cop)n(y)e(of)34
+b Fc(x509name)h Fq(whic)n(h)28 b(should)f(b)r(e)h(an)f(instance)g(of)34
+b Fl(X509Name)p Fq(.)0 5333 y Fl(X509ReqType)p 0 5549
+3901 4 v 0 5649 a Ff(2.2)82 b(Building)27 b(the)g(Mo)r(dule)g(on)g(a)g
+(Windo)n(ws)g(System)2164 b(3)p eop end
%%Page: 4 4
-TeXDict begin 4 3 bop 0 83 a Fl(X509Req\(\))208 183 y
-Fq(F)-7 b(actory)26 b(function)i(that)g(creates)e(an)i(X509Req)e(ob)5
-b(ject.)0 330 y Fl(X509StoreType)208 429 y Fq(A)27 b(Python)h(t)n(yp)r
-(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(X509Store)e(ob)5
-b(ject)27 b(t)n(yp)r(e.)0 576 y Fl(PKeyType)208 676 y
-Fq(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
-(PKey)g(ob)5 b(ject)27 b(t)n(yp)r(e.)0 823 y Fl(PKey\(\))208
-922 y Fq(F)-7 b(actory)26 b(function)i(that)g(creates)e(a)h(PKey)h(ob)5
-b(ject.)0 1069 y Fl(PKCS7Type)208 1169 y Fq(A)27 b(Python)h(t)n(yp)r(e)
-g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(PK)n(CS7)f(ob)5
-b(ject)28 b(t)n(yp)r(e.)0 1316 y Fl(PKCS12Type)208 1415
-y Fq(A)f(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
-(PK)n(CS12)f(ob)5 b(ject)27 b(t)n(yp)r(e.)0 1562 y Fl(X509ExtensionTyp)
-o(e)208 1662 y Fq(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28
-b(represen)n(ting)d(the)j(X509Extension)f(ob)5 b(ject)27
-b(t)n(yp)r(e.)0 1808 y Fl(X509Extension\()p Fc(typ)l(ename,)e(critic)l
-(al,)31 b(value)6 b Fl(\))208 1908 y Fq(F)-7 b(actory)26
-b(function)i(that)g(creates)e(a)h(X509Extension)g(ob)5
-b(ject.)0 2055 y Fl(NetscapeSPKIType)208 2155 y Fq(A)27
-b(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
-(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(t)n(yp)r(e.)0 2316
-y Fl(NetscapeSPKI\()p Fb([)p Fc(enc)11 b Fb(])p Fl(\))208
-2415 y Fq(F)-7 b(actory)29 b(function)i(that)g(creates)e(a)h(Netscap)r
-(eSPKI)g(ob)5 b(ject.)45 b(If)31 b(the)g Fc(enc)k Fq(argumen)n(t)30
-b(is)g(presen)n(t,)h(it)f(should)h(b)r(e)f(a)208 2515
-y(base64-enco)r(ded)25 b(string)i(represen)n(ting)f(a)h(Netscap)r
-(eSPKI)h(ob)5 b(ject,)27 b(as)g(returned)g(b)n(y)g(the)h
-Fl(b64_encode)c Fq(metho)r(d.)0 2662 y Fl(FILETYPE_PEM)0
-2762 y(FILETYPE_ASN1)208 2861 y Fq(File)j(t)n(yp)r(e)h(constan)n(ts.)0
-3008 y Fl(TYPE_RSA)0 3108 y(TYPE_DSA)208 3207 y Fq(Key)e(t)n(yp)r(e)i
-(constan)n(ts.)0 3354 y Fm(exception)k Fl(Error)208 3454
-y Fq(Generic)27 b(exception)g(used)g(in)h(the)g Fl(crypto)d
-Fq(mo)r(dule.)0 3601 y Fl(dump_certificate)o(\()p Fc(t)o(yp)l(e,)g(c)l
-(ert)8 b Fl(\))208 3700 y Fq(Dump)28 b(the)g(certi\034cate)f
+TeXDict begin 4 3 bop 208 83 a Fq(See)27 b Fl(X509Req)p
+Fq(.)0 230 y Fm(class)k Fl(X509Req\(\))208 330 y Fq(A)c(class)g
+(represen)n(ting)f(X.509)h(certi\034cate)f(requests.)0
+476 y Fl(X509StoreType)208 576 y Fq(A)h(Python)h(t)n(yp)r(e)g(ob)5
+b(ject)28 b(represen)n(ting)d(the)j(X509Store)e(ob)5
+b(ject)27 b(t)n(yp)r(e.)0 723 y Fl(PKeyType)208 823 y
+Fq(See)g Fl(PKey)p Fq(.)0 969 y Fm(class)k Fl(PKey\(\))208
+1069 y Fq(A)c(class)g(represen)n(ting)f(DSA)i(or)f(RSA)h(k)n(eys.)0
+1216 y Fl(PKCS7Type)208 1316 y Fq(A)f(Python)h(t)n(yp)r(e)g(ob)5
+b(ject)28 b(represen)n(ting)d(the)j(PK)n(CS7)f(ob)5 b(ject)28
+b(t)n(yp)r(e.)0 1462 y Fl(PKCS12Type)208 1562 y Fq(A)f(Python)h(t)n(yp)
+r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(PK)n(CS12)f(ob)5
+b(ject)27 b(t)n(yp)r(e.)0 1709 y Fl(X509ExtensionTyp)o(e)208
+1808 y Fq(See)g Fl(X509Extension)p Fq(.)0 1955 y Fm(class)k
+Fl(X509Extension\()p Fc(typ)l(ename,)25 b(critic)l(al,)31
+b(value)6 b Fb([)p Fc(,)31 b(subje)l(ct)19 b Fb(][)p
+Fc(,)30 b(issuer)21 b Fb(])p Fl(\))208 2055 y Fq(A)181
+b(class)g(represen)n(ting)e(an)j(X.509)e(v3)h(certi\034cate)f
+(extensions.)498 b(See)208 2155 y Fp(http://op)r(enssl.o)n(rg/do)r
+(cs/apps/x509v3_con\034g.html#ST)-6 b(AND)n(ARD_EXTENSIONS)65
+b Fq(for)60 b Fc(typ)l(ename)67 b Fq(strings)59 b(and)208
+2254 y(their)27 b(options.)36 b(Optional)27 b(parameters)f
+Fc(subje)l(ct)35 b Fq(and)28 b Fc(issuer)36 b Fq(m)n(ust)28
+b(b)r(e)g(X509)e(ob)5 b(jects.)0 2401 y Fl(NetscapeSPKIType)208
+2501 y Fq(See)27 b Fl(NetscapeSPKI)p Fq(.)0 2664 y Fm(class)k
+Fl(NetscapeSPKI\()p Fb([)p Fc(enc)11 b Fb(])p Fl(\))208
+2764 y Fq(A)27 b(class)g(represen)n(ting)f(Netscap)r(e)i(SPKI)f(ob)5
+b(jects.)208 2890 y(If)37 b(the)g Fc(enc)k Fq(argumen)n(t)35
+b(is)i(presen)n(t,)h(it)f(should)f(b)r(e)h(a)g(base64-enco)r(ded)d
+(string)i(represen)n(ting)f(a)h(Netscap)r(eSPKI)208 2989
+y(ob)5 b(ject,)27 b(as)g(returned)g(b)n(y)g(the)h Fl(b64_encode)c
+Fq(metho)r(d.)0 3136 y Fl(FILETYPE_PEM)0 3236 y(FILETYPE_ASN1)208
+3335 y Fq(File)j(t)n(yp)r(e)h(constan)n(ts.)0 3482 y
+Fl(TYPE_RSA)0 3582 y(TYPE_DSA)208 3681 y Fq(Key)e(t)n(yp)r(e)i(constan)
+n(ts.)0 3828 y Fm(exception)k Fl(Error)208 3928 y Fq(Generic)27
+b(exception)g(used)g(in)h(the)g Fl(crypto)d Fq(mo)r(dule.)0
+4075 y Fl(dump_certificate)o(\()p Fc(t)o(yp)l(e,)g(c)l(ert)8
+b Fl(\))208 4174 y Fq(Dump)28 b(the)g(certi\034cate)f
Fc(c)l(ert)35 b Fq(in)n(to)27 b(a)h(bu\033er)f(string)g(enco)r(ded)h
-(with)g(the)g(t)n(yp)r(e)f Fc(typ)l(e)6 b Fq(.)0 3847
+(with)g(the)g(t)n(yp)r(e)f Fc(typ)l(e)6 b Fq(.)0 4321
y Fl(dump_certificate)o(_r)o(equ)o(es)o(t\()o Fc(typ)l(e,)25
-b(r)l(e)l(q)7 b Fl(\))208 3947 y Fq(Dump)28 b(the)g(certi\034cate)f
+b(r)l(e)l(q)7 b Fl(\))208 4421 y Fq(Dump)28 b(the)g(certi\034cate)f
(request)g Fc(r)l(e)l(q)35 b Fq(in)n(to)27 b(a)g(bu\033er)h(string)f
(enco)r(ded)g(with)h(the)g(t)n(yp)r(e)g Fc(typ)l(e)6
-b Fq(.)0 4108 y Fl(dump_privatekey\()o Fc(typ)l(e,)25
+b Fq(.)0 4582 y Fl(dump_privatekey\()o Fc(typ)l(e,)25
b(pkey)7 b Fb([)p Fc(,)31 b(cipher,)h(p)l(assphr)l(ase)19
-b Fb(])p Fl(\))208 4208 y Fq(Dump)39 b(the)f(priv)-5
+b Fb(])p Fl(\))208 4682 y Fq(Dump)39 b(the)f(priv)-5
b(ate)38 b(k)n(ey)h Fc(pkey)46 b Fq(in)n(to)38 b(a)g(bu\033er)g(string)
g(enco)r(ded)g(with)g(the)h(t)n(yp)r(e)f Fc(typ)l(e)6
b Fq(,)42 b(optionally)37 b(\(if)45 b Fc(typ)l(e)g Fq(is)208
-4307 y Fl(FILETYPE_PEM)p Fq(\))22 b(encrypting)27 b(it)h(using)h
+4781 y Fl(FILETYPE_PEM)p Fq(\))22 b(encrypting)27 b(it)h(using)h
Fc(cipher)38 b Fq(and)27 b Fc(p)l(assphr)l(ase)6 b Fq(.)208
-4440 y Fc(p)l(assphr)l(ase)35 b Fq(m)n(ust)28 b(b)r(e)g(either)f(a)g
+4907 y Fc(p)l(assphr)l(ase)35 b Fq(m)n(ust)28 b(b)r(e)g(either)f(a)g
(string)g(or)g(a)g(callbac)n(k)f(for)h(pro)n(viding)f(the)i(pass)f
-(phrase.)0 4587 y Fl(load_certificate)o(\()p Fc(t)o(yp)l(e,)e(bu\033er)
-9 b Fl(\))208 4687 y Fq(Load)26 b(a)h(certi\034cate)g(\(X509\))g(from)h
+(phrase.)0 5054 y Fl(load_certificate)o(\()p Fc(t)o(yp)l(e,)e(bu\033er)
+9 b Fl(\))208 5154 y Fq(Load)26 b(a)h(certi\034cate)g(\(X509\))g(from)h
(the)f(string)h Fc(bu\033er)37 b Fq(enco)r(ded)27 b(with)h(the)g(t)n
-(yp)r(e)g Fc(typ)l(e)6 b Fq(.)0 4834 y Fl(load_certificate)o(_r)o(equ)o
-(es)o(t\()o Fc(typ)l(e,)25 b(bu\033er)9 b Fl(\))208 4933
+(yp)r(e)g Fc(typ)l(e)6 b Fq(.)0 5300 y Fl(load_certificate)o(_r)o(equ)o
+(es)o(t\()o Fc(typ)l(e,)25 b(bu\033er)9 b Fl(\))208 5400
y Fq(Load)26 b(a)h(certi\034cate)g(request)g(\(X509Req\))g(from)g(the)h
(string)g Fc(bu\033er)37 b Fq(enco)r(ded)27 b(with)h(the)g(t)n(yp)r(e)g
-Fc(typ)l(e)6 b Fq(.)0 5099 y Fl(load_privatekey\()o Fc(typ)l(e,)25
+Fc(typ)l(e)6 b Fq(.)p 0 5549 3901 4 v 0 5649 a Ff(4)2239
+b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)h(to)f(Op)r
+(enSSL)p eop end
+%%Page: 5 5
+TeXDict begin 5 4 bop 0 90 a Fl(load_privatekey\()o Fc(typ)l(e,)25
b(bu\033er)9 b Fb([)p Fc(,)29 b(p)l(assphr)l(ase)20 b
-Fb(])p Fl(\))208 5199 y Fq(Load)43 b(a)h(priv)-5 b(ate)44
+Fb(])p Fl(\))208 189 y Fq(Load)43 b(a)h(priv)-5 b(ate)44
b(k)n(ey)f(\(PKey\))i(from)f(the)h(string)g Fc(bu\033er)53
b Fq(enco)r(ded)44 b(with)h(the)f(t)n(yp)r(e)h Fc(typ)l(e)51
-b Fq(\(m)n(ust)45 b(b)r(e)f(one)g(of)208 5298 y Fl(FILETYPE_PEM)22
-b Fq(and)28 b Fl(FILETYPE_ASN1)p Fq(\).)p 0 5549 3901
-4 v 0 5649 a Ff(4)2239 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f
-(interface)h(to)f(Op)r(enSSL)p eop end
-%%Page: 5 5
-TeXDict begin 5 4 bop 208 83 a Fc(p)l(assphr)l(ase)35
-b Fq(m)n(ust)28 b(b)r(e)g(either)f(a)g(string)g(or)g(a)g(callbac)n(k)f
-(for)h(pro)n(viding)f(the)i(pass)f(phrase.)0 230 y Fl
-(load_pkcs7_data\()o Fc(typ)l(e,)e(bu\033er)9 b Fl(\))208
-330 y Fq(Load)26 b(pk)n(cs7)h(data)g(from)g(the)h(string)g
+b Fq(\(m)n(ust)45 b(b)r(e)f(one)g(of)208 289 y Fl(FILETYPE_PEM)22
+b Fq(and)28 b Fl(FILETYPE_ASN1)p Fq(\).)208 422 y Fc(p)l(assphr)l(ase)
+35 b Fq(m)n(ust)28 b(b)r(e)g(either)f(a)g(string)g(or)g(a)g(callbac)n
+(k)f(for)h(pro)n(viding)f(the)i(pass)f(phrase.)0 569
+y Fl(load_pkcs7_data\()o Fc(typ)l(e,)e(bu\033er)9 b Fl(\))208
+668 y Fq(Load)26 b(pk)n(cs7)h(data)g(from)g(the)h(string)g
Fc(bu\033er)36 b Fq(enco)r(ded)28 b(with)g(the)g(t)n(yp)r(e)g
-Fc(typ)l(e)6 b Fq(.)0 491 y Fl(load_pkcs12\()p Fc(bu\033er)j
+Fc(typ)l(e)6 b Fq(.)0 829 y Fl(load_pkcs12\()p Fc(bu\033er)j
Fb([)p Fc(,)24 b(p)l(assphr)l(ase)c Fb(])p Fl(\))208
-590 y Fq(Load)30 b(pk)n(cs12)f(data)h(from)h(the)g(string)g
+929 y Fq(Load)30 b(pk)n(cs12)f(data)h(from)h(the)g(string)g
Fc(bu\033er)9 b Fq(.)47 b(If)31 b(the)h(pk)n(cs12)d(structure)h(is)h
(encrypted,)g(a)g Fc(p)l(assphr)l(ase)39 b Fq(m)n(ust)31
-b(b)r(e)208 690 y(included.)0 953 y Ff(X509)c(objects)0
-1154 y Fq(X509)f(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e
-(metho)r(ds:)0 1300 y Fl(get_issuer\(\))208 1400 y Fq(Return)h(an)h
-(X509Name)e(ob)5 b(ject)27 b(represen)n(ting)f(the)i(issuer)f(of)g(the)
-h(certi\034cate.)0 1547 y Fl(get_pubkey\(\))208 1646
-y Fq(Return)f(a)g(PKey)h(ob)5 b(ject)27 b(represen)n(ting)f(the)i
-(public)g(k)n(ey)f(of)g(the)h(certi\034cate.)0 1793 y
-Fl(get_serial_numbe)o(r\()o(\))208 1893 y Fq(Return)f(the)h
-(certi\034cate)f(serial)g(n)n(um)n(b)r(er.)0 2040 y Fl(get_subject\(\))
-208 2139 y Fq(Return)g(an)h(X509Name)e(ob)5 b(ject)27
-b(represen)n(ting)f(the)i(sub)5 b(ject)28 b(of)f(the)h(certi\034cate.)0
-2286 y Fl(get_version\(\))208 2386 y Fq(Return)f(the)h(certi\034cate)f
-(v)n(ersion.)0 2533 y Fl(get_notBefore\(\))208 2632 y
-Fq(Return)f(a)h(string)f(giving)f(the)j(time)f(b)r(efore)f(whic)n(h)h
-(the)g(certi\034cate)f(is)g(not)h(v)-5 b(alid.)37 b(The)26
-b(string)g(is)h(formatted)f(as)g(an)208 2732 y(ASN1)h(GENERALIZEDTIME:)
-1110 2956 y Fi(YYYYMMDDhhmmssZ)1110 3048 y(YYYYMMDDhhmmss+hhmm)1110
-3139 y(YYYYMMDDhhmmss-hhmm)208 3296 y Fq(If)h(no)f(v)-5
+b(b)r(e)208 1029 y(included.)37 b(The)27 b(MA)n(C)h(is)g(alw)n(a)n(ys)d
+(c)n(hec)n(k)n(ed)i(and)g(th)n(us)h(required.)208 1161
+y(See)f(also)g(the)h(man)f(page)g(for)g(the)h(C)f(function)h
+Fl(PKCS12_parse)p Fq(.)0 1424 y Ff(X509)f(objects)0 1625
+y Fq(X509)f(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r
+(ds:)0 1772 y Fl(get_issuer\(\))208 1871 y Fq(Return)h(an)h(X509Name)e
+(ob)5 b(ject)27 b(represen)n(ting)f(the)i(issuer)f(of)g(the)h
+(certi\034cate.)0 2018 y Fl(get_pubkey\(\))208 2118 y
+Fq(Return)f(a)g(PKey)h(ob)5 b(ject)27 b(represen)n(ting)f(the)i(public)
+g(k)n(ey)f(of)g(the)h(certi\034cate.)0 2265 y Fl(get_serial_numbe)o
+(r\()o(\))208 2364 y Fq(Return)f(the)h(certi\034cate)f(serial)g(n)n(um)
+n(b)r(er.)0 2511 y Fl(get_subject\(\))208 2611 y Fq(Return)g(an)h
+(X509Name)e(ob)5 b(ject)27 b(represen)n(ting)f(the)i(sub)5
+b(ject)28 b(of)f(the)h(certi\034cate.)0 2758 y Fl(get_version\(\))208
+2857 y Fq(Return)f(the)h(certi\034cate)f(v)n(ersion.)0
+3004 y Fl(get_notBefore\(\))208 3104 y Fq(Return)f(a)h(string)f(giving)
+f(the)j(time)f(b)r(efore)f(whic)n(h)h(the)g(certi\034cate)f(is)g(not)h
+(v)-5 b(alid.)37 b(The)26 b(string)g(is)h(formatted)f(as)g(an)208
+3204 y(ASN1)h(GENERALIZEDTIME:)1110 3428 y Fi(YYYYMMDDhhmmssZ)1110
+3519 y(YYYYMMDDhhmmss+hhmm)1110 3610 y(YYYYMMDDhhmmss-hhmm)208
+3767 y Fq(If)h(no)f(v)-5 b(alue)27 b(exists)g(for)g(this)h(\034eld,)g
+Fl(None)e Fq(is)i(returned.)0 3914 y Fl(get_notAfter\(\))208
+4014 y Fq(Return)h(a)g(string)g(giving)g(the)g(time)h(after)f(whic)n(h)
+h(the)g(certi\034cate)e(is)i(not)f(v)-5 b(alid.)43 b(The)29
+b(string)g(is)g(formatted)h(as)e(an)208 4113 y(ASN1)f(GENERALIZEDTIME:)
+1110 4337 y Fi(YYYYMMDDhhmmssZ)1110 4429 y(YYYYMMDDhhmmss+hhmm)1110
+4520 y(YYYYMMDDhhmmss-hhmm)208 4677 y Fq(If)h(no)f(v)-5
b(alue)27 b(exists)g(for)g(this)h(\034eld,)g Fl(None)e
-Fq(is)i(returned.)0 3443 y Fl(get_notAfter\(\))208 3542
-y Fq(Return)h(a)g(string)g(giving)g(the)g(time)h(after)f(whic)n(h)h
-(the)g(certi\034cate)e(is)i(not)f(v)-5 b(alid.)43 b(The)29
-b(string)g(is)g(formatted)h(as)e(an)208 3642 y(ASN1)f(GENERALIZEDTIME:)
-1110 3866 y Fi(YYYYMMDDhhmmssZ)1110 3957 y(YYYYMMDDhhmmss+hhmm)1110
-4049 y(YYYYMMDDhhmmss-hhmm)208 4205 y Fq(If)h(no)f(v)-5
-b(alue)27 b(exists)g(for)g(this)h(\034eld,)g Fl(None)e
-Fq(is)i(returned.)0 4352 y Fl(set_notBefore\()p Fc(when)6
-b Fl(\))208 4452 y Fq(Change)35 b(the)i(time)f(b)r(efore)g(whic)n(h)g
+Fq(is)i(returned.)0 4824 y Fl(set_notBefore\()p Fc(when)6
+b Fl(\))208 4923 y Fq(Change)35 b(the)i(time)f(b)r(efore)g(whic)n(h)g
(the)h(certi\034cate)f(is)g(not)g(v)-5 b(alid.)63 b Fc(when)43
b Fq(is)36 b(a)g(string)f(formatted)h(as)g(an)g(ASN1)208
-4552 y(GENERALIZEDTIME:)1110 4776 y Fi(YYYYMMDDhhmmssZ)1110
-4867 y(YYYYMMDDhhmmss+hhmm)1110 4958 y(YYYYMMDDhhmmss-hhmm)0
-5163 y Fl(set_notAfter\()p Fc(when)6 b Fl(\))208 5263
-y Fq(Change)38 b(the)h(time)h(after)e(whic)n(h)h(the)h(certi\034cate)e
-(is)h(not)g(v)-5 b(alid.)71 b Fc(when)46 b Fq(is)39 b(a)g(string)f
-(formatted)h(as)f(an)h(ASN1)208 5362 y(GENERALIZEDTIME:)p
-0 5549 3901 4 v 0 5649 a Ff(3.1)82 b Fl(crypto)25 b Ff(\026)j(Generic)g
-(cryptographic)e(mo)r(dule)2234 b(5)p eop end
+5023 y(GENERALIZEDTIME:)p 0 5549 3901 4 v 0 5649 a Ff(3.1)82
+b Fl(crypto)25 b Ff(\026)j(Generic)g(cryptographic)e(mo)r(dule)2234
+b(5)p eop end
%%Page: 6 6
TeXDict begin 6 5 bop 1110 174 a Fi(YYYYMMDDhhmmssZ)1110
266 y(YYYYMMDDhhmmss+hhmm)1110 357 y(YYYYMMDDhhmmss-hhmm)0
-562 y Fl(gmtime_adj_notBe)o(fo)o(re\()o Fc(time)6 b Fl(\))208
-661 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g(GMT\))g(when)g(the)f
-(certi\034cate)g(starts)g(b)r(eing)h(v)-5 b(alid.)0 808
-y Fl(gmtime_adj_notAf)o(te)o(r\()p Fc(t)o(ime)6 b Fl(\))208
-908 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g(GMT\))g(when)g(the)f
-(certi\034cate)g(stops)g(b)r(eing)h(v)-5 b(alid.)0 1054
-y Fl(has_expired\(\))208 1154 y Fq(Chec)n(ks)32 b(the)h
-(certi\034cate's)f(time)i(stamp)f(against)f(curren)n(t)g(time.)54
-b(Returns)33 b(true)g(if)g(the)h(certi\034cate)e(has)h(expired)208
-1254 y(and)27 b(false)g(otherwise.)0 1401 y Fl(set_issuer\()p
-Fc(issuer)9 b Fl(\))208 1500 y Fq(Set)28 b(the)f(issuer)g(of)h(the)g
-(certi\034cate)f(to)g Fc(issuer)9 b Fq(.)0 1647 y Fl(set_pubkey\()p
-Fc(pkey)e Fl(\))208 1747 y Fq(Set)28 b(the)f(public)h(k)n(ey)f(of)h
-(the)g(certi\034cate)f(to)g Fc(pkey)7 b Fq(.)0 1894 y
-Fl(set_serial_numbe)o(r\()o Fc(serialno)e Fl(\))208 1993
+562 y Fl(set_notAfter\()p Fc(when)6 b Fl(\))208 661 y
+Fq(Change)38 b(the)h(time)h(after)e(whic)n(h)h(the)h(certi\034cate)e
+(is)h(not)g(v)-5 b(alid.)71 b Fc(when)46 b Fq(is)39 b(a)g(string)f
+(formatted)h(as)f(an)h(ASN1)208 761 y(GENERALIZEDTIME:)1110
+985 y Fi(YYYYMMDDhhmmssZ)1110 1076 y(YYYYMMDDhhmmss+hhmm)1110
+1168 y(YYYYMMDDhhmmss-hhmm)0 1372 y Fl(gmtime_adj_notBe)o(fo)o(re\()o
+Fc(time)6 b Fl(\))208 1472 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g
+(GMT\))g(when)g(the)f(certi\034cate)g(starts)g(b)r(eing)h(v)-5
+b(alid.)0 1619 y Fl(gmtime_adj_notAf)o(te)o(r\()p Fc(t)o(ime)6
+b Fl(\))208 1718 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g(GMT\))g
+(when)g(the)f(certi\034cate)g(stops)g(b)r(eing)h(v)-5
+b(alid.)0 1865 y Fl(has_expired\(\))208 1965 y Fq(Chec)n(ks)32
+b(the)h(certi\034cate's)f(time)i(stamp)f(against)f(curren)n(t)g(time.)
+54 b(Returns)33 b(true)g(if)g(the)h(certi\034cate)e(has)h(expired)208
+2064 y(and)27 b(false)g(otherwise.)0 2211 y Fl(set_issuer\()p
+Fc(issuer)9 b Fl(\))208 2311 y Fq(Set)28 b(the)f(issuer)g(of)h(the)g
+(certi\034cate)f(to)g Fc(issuer)9 b Fq(.)0 2458 y Fl(set_pubkey\()p
+Fc(pkey)e Fl(\))208 2557 y Fq(Set)28 b(the)f(public)h(k)n(ey)f(of)h
+(the)g(certi\034cate)f(to)g Fc(pkey)7 b Fq(.)0 2704 y
+Fl(set_serial_numbe)o(r\()o Fc(serialno)e Fl(\))208 2804
y Fq(Set)28 b(the)f(serial)g(n)n(um)n(b)r(er)g(of)h(the)g
-(certi\034cate)f(to)g Fc(serialno)5 b Fq(.)0 2140 y Fl(set_subject\()p
-Fc(subje)l(ct)j Fl(\))208 2240 y Fq(Set)28 b(the)f(sub)5
+(certi\034cate)f(to)g Fc(serialno)5 b Fq(.)0 2951 y Fl(set_subject\()p
+Fc(subje)l(ct)j Fl(\))208 3050 y Fq(Set)28 b(the)f(sub)5
b(ject)28 b(of)g(the)g(certi\034cate)f(to)g Fc(subje)l(ct)8
-b Fq(.)0 2387 y Fl(set_version\()p Fc(version)e Fl(\))208
-2486 y Fq(Set)28 b(the)f(certi\034cate)g(v)n(ersion)f(to)i
-Fc(version)6 b Fq(.)0 2633 y Fl(sign\()p Fc(pkey,)29
-b(digest)8 b Fl(\))208 2733 y Fq(Sign)22 b(the)h(certi\034cate,)f
+b Fq(.)0 3197 y Fl(set_version\()p Fc(version)e Fl(\))208
+3297 y Fq(Set)28 b(the)f(certi\034cate)g(v)n(ersion)f(to)i
+Fc(version)6 b Fq(.)0 3444 y Fl(sign\()p Fc(pkey,)29
+b(digest)8 b Fl(\))208 3543 y Fq(Sign)22 b(the)h(certi\034cate,)f
(using)g(the)h(k)n(ey)g Fc(pkey)31 b Fq(and)22 b(the)h(message)e
(digest)h(algorithm)f(iden)n(ti\034ed)i(b)n(y)f(the)h(string)f
-Fc(digest)8 b Fq(.)0 2880 y Fl(subject_name_has)o(h\()o(\))208
-2979 y Fq(Return)27 b(the)h(hash)f(of)h(the)g(certi\034cate)f(sub)5
-b(ject.)0 3126 y Fl(digest\()p Fc(digest_name)h Fl(\))208
-3226 y Fq(Return)38 b(a)f(digest)h(of)g(the)g(certi\034cate,)i(using)e
+Fc(digest)8 b Fq(.)0 3690 y Fl(subject_name_has)o(h\()o(\))208
+3790 y Fq(Return)27 b(the)h(hash)f(of)h(the)g(certi\034cate)f(sub)5
+b(ject.)0 3937 y Fl(digest\()p Fc(digest_name)h Fl(\))208
+4036 y Fq(Return)38 b(a)f(digest)h(of)g(the)g(certi\034cate,)i(using)e
(the)g Fc(digest_name)45 b Fq(metho)r(d.)69 b Fc(digest_name)45
-b Fq(m)n(ust)38 b(b)r(e)g(a)g(string)208 3325 y(describing)28
+b Fq(m)n(ust)38 b(b)r(e)g(a)g(string)208 4136 y(describing)28
b(a)i(digest)f(algorithm)f(supp)r(orted)i(b)n(y)f(Op)r(enSSL)h(\(b)n(y)
g(EVP_get_digestb)n(yname,)f(sp)r(eci\034cally\).)43
-b(F)-7 b(or)208 3425 y(example,)27 b Fl("md5")e Fq(or)i
-Fl("sha1")p Fq(.)0 3572 y Fl(add_extensions\()p Fc(ex)o(tensions)7
-b Fl(\))208 3671 y Fq(A)n(dd)27 b(the)h(extensions)f(in)h(the)g
+b(F)-7 b(or)208 4236 y(example,)27 b Fl("md5")e Fq(or)i
+Fl("sha1")p Fq(.)0 4382 y Fl(add_extensions\()p Fc(ex)o(tensions)7
+b Fl(\))208 4482 y Fq(A)n(dd)27 b(the)h(extensions)f(in)h(the)g
(sequence)f Fc(extensions)34 b Fq(to)27 b(the)h(certi\034cate.)0
-3934 y Ff(X509Name)e(objects)0 4135 y Fq(X509Name)g(ob)5
+4745 y Ff(X509Name)e(objects)0 4946 y Fq(X509Name)g(ob)5
b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)0
-4282 y Fl(hash\(\))208 4381 y Fq(Return)e(an)g(in)n(teger)f(giving)g
+5092 y Fl(hash\(\))208 5192 y Fq(Return)e(an)g(in)n(teger)f(giving)g
(the)i(\034rst)f(four)g(b)n(ytes)f(of)h(the)h(MD5)f(digest)g(of)g(the)h
-(DER)g(represen)n(tation)e(of)h(the)g(name.)0 4528 y
-Fl(der\(\))208 4628 y Fq(Return)j(a)g(string)g(giving)g(the)h(DER)h
-(represen)n(tation)c(of)j(the)g(name.)0 4775 y Fl(get_components\(\))
-208 4874 y Fq(Return)f(a)g(list)h(of)g(t)n(w)n(o-tuples)e(of)i(strings)
-e(giving)h(the)h(comp)r(onen)n(ts)f(of)h(the)g(name.)0
-5021 y(X509Name)e(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e
-(mem)n(b)r(ers:)0 5168 y Fl(countryName)208 5268 y Fq(The)h(coun)n(try)
-g(of)g(the)h(en)n(tit)n(y)-7 b(.)37 b Fl(C)27 b Fq(ma)n(y)g(b)r(e)h
-(used)g(as)f(an)g(alias)f(for)h Fl(countryName)p Fq(.)p
-0 5549 3901 4 v 0 5649 a Ff(6)2239 b(3)83 b Fl(OpenSSL)24
-b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
-end
+(DER)g(represen)n(tation)e(of)h(the)g(name.)0 5339 y
+Fl(der\(\))p 0 5549 3901 4 v 0 5649 a Ff(6)2239 b(3)83
+b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p
+eop end
%%Page: 7 7
-TeXDict begin 7 6 bop 0 83 a Fl(stateOrProvinceN)o(am)o(e)208
-183 y Fq(The)27 b(state)h(or)e(pro)n(vince)g(of)i(the)g(en)n(tit)n(y)-7
+TeXDict begin 7 6 bop 208 83 a Fq(Return)27 b(a)g(string)g(giving)g
+(the)h(DER)h(represen)n(tation)c(of)j(the)g(name.)0 230
+y Fl(get_components\(\))208 330 y Fq(Return)f(a)g(list)h(of)g(t)n(w)n
+(o-tuples)e(of)i(strings)e(giving)h(the)h(comp)r(onen)n(ts)f(of)h(the)g
+(name.)0 476 y(X509Name)e(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n
+(wing)e(mem)n(b)r(ers:)0 623 y Fl(countryName)208 723
+y Fq(The)h(coun)n(try)g(of)g(the)h(en)n(tit)n(y)-7 b(.)37
+b Fl(C)27 b Fq(ma)n(y)g(b)r(e)h(used)g(as)f(an)g(alias)f(for)h
+Fl(countryName)p Fq(.)0 870 y Fl(stateOrProvinceN)o(am)o(e)208
+969 y Fq(The)g(state)h(or)e(pro)n(vince)g(of)i(the)g(en)n(tit)n(y)-7
b(.)37 b Fl(ST)27 b Fq(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
-Fl(stateOrProvince)o(Na)o(me)p Fq(\267)0 330 y Fl(localityName)208
-429 y Fq(The)g(lo)r(calit)n(y)g(of)h(the)f(en)n(tit)n(y)-7
+Fl(stateOrProvince)o(Na)o(me)p Fq(\267)0 1116 y Fl(localityName)208
+1216 y Fq(The)g(lo)r(calit)n(y)g(of)h(the)f(en)n(tit)n(y)-7
b(.)37 b Fl(L)28 b Fq(ma)n(y)e(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
-Fl(localityName)p Fq(.)0 576 y Fl(organizationName)208
-676 y Fq(The)g(organization)e(name)j(of)f(the)h(en)n(tit)n(y)-7
+Fl(localityName)p Fq(.)0 1363 y Fl(organizationName)208
+1462 y Fq(The)g(organization)e(name)j(of)f(the)h(en)n(tit)n(y)-7
b(.)37 b Fl(O)27 b Fq(ma)n(y)g(b)r(e)h(used)g(as)e(an)i(alias)e(for)h
-Fl(organizationName)p Fq(.)0 823 y Fl(organizationalUn)o(it)o(Nam)o(e)
-208 922 y Fq(The)g(organizational)e(unit)j(of)g(the)g(en)n(tit)n(y)-7
+Fl(organizationName)p Fq(.)0 1609 y Fl(organizationalUn)o(it)o(Nam)o(e)
+208 1709 y Fq(The)g(organizational)e(unit)j(of)g(the)g(en)n(tit)n(y)-7
b(.)36 b Fl(OU)27 b Fq(ma)n(y)g(b)r(e)h(used)g(as)f(an)g(alias)f(for)h
-Fl(organizationalUni)o(tN)o(am)o(e)p Fq(.)0 1069 y Fl(commonName)208
-1169 y Fq(The)g(common)g(name)h(of)f(the)h(en)n(tit)n(y)-7
+Fl(organizationalUni)o(tN)o(am)o(e)p Fq(.)0 1856 y Fl(commonName)208
+1955 y Fq(The)g(common)g(name)h(of)f(the)h(en)n(tit)n(y)-7
b(.)37 b Fl(CN)27 b Fq(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
-Fl(commonName)p Fq(.)0 1316 y Fl(emailAddress)208 1415
+Fl(commonName)p Fq(.)0 2102 y Fl(emailAddress)208 2202
y Fq(The)g(e-mail)g(address)f(of)i(the)g(en)n(tit)n(y)-7
-b(.)0 1678 y Ff(X509Req)26 b(objects)0 1879 y Fq(X509Req)g(ob)5
+b(.)0 2465 y Ff(X509Req)26 b(objects)0 2665 y Fq(X509Req)g(ob)5
b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)0
-2025 y Fl(get_pubkey\(\))208 2125 y Fq(Return)h(a)g(PKey)h(ob)5
+2812 y Fl(get_pubkey\(\))208 2912 y Fq(Return)h(a)g(PKey)h(ob)5
b(ject)27 b(represen)n(ting)f(the)i(public)g(k)n(ey)f(of)g(the)h
-(certi\034cate)f(request.)0 2272 y Fl(get_subject\(\))208
-2372 y Fq(Return)g(an)h(X509Name)e(ob)5 b(ject)27 b(represen)n(ting)f
+(certi\034cate)f(request.)0 3059 y Fl(get_subject\(\))208
+3158 y Fq(Return)g(an)h(X509Name)e(ob)5 b(ject)27 b(represen)n(ting)f
(the)i(sub)5 b(ject)28 b(of)f(the)h(certi\034cate.)0
-2518 y Fl(set_pubkey\()p Fc(pkey)7 b Fl(\))208 2618 y
+3305 y Fl(set_pubkey\()p Fc(pkey)7 b Fl(\))208 3405 y
Fq(Set)28 b(the)f(public)h(k)n(ey)f(of)h(the)g(certi\034cate)f(request)
-g(to)g Fc(pkey)7 b Fq(.)0 2765 y Fl(sign\()p Fc(pkey,)29
-b(digest)8 b Fl(\))208 2865 y Fq(Sign)36 b(the)g(certi\034cate)g
+g(to)g Fc(pkey)7 b Fq(.)0 3552 y Fl(sign\()p Fc(pkey,)29
+b(digest)8 b Fl(\))208 3651 y Fq(Sign)36 b(the)g(certi\034cate)g
(request,)h(using)f(the)g(k)n(ey)h Fc(pkey)45 b Fq(and)36
b(the)g(message)f(digest)g(algorithm)g(iden)n(ti\034ed)i(b)n(y)f(the)
-208 2964 y(string)28 b Fc(digest)8 b Fq(.)0 3111 y Fl(verify\()p
-Fc(pkey)f Fl(\))208 3211 y Fq(V)-7 b(erify)27 b(a)g(certi\034cate)g
+208 3751 y(string)28 b Fc(digest)8 b Fq(.)0 3898 y Fl(verify\()p
+Fc(pkey)f Fl(\))208 3997 y Fq(V)-7 b(erify)27 b(a)g(certi\034cate)g
(request)g(using)g(the)h(public)g(k)n(ey)g Fc(pkey)7
-b Fq(.)0 3358 y Fl(set_version\()p Fc(version)f Fl(\))208
-3457 y Fq(Set)28 b(the)f(v)n(ersion)f(\(RF)n(C)i(2459,)e(4.1.2.1\))g
+b Fq(.)0 4144 y Fl(set_version\()p Fc(version)f Fl(\))208
+4244 y Fq(Set)28 b(the)f(v)n(ersion)f(\(RF)n(C)i(2459,)e(4.1.2.1\))g
(of)i(the)g(certi\034cate)f(request)f(to)i Fc(version)6
-b Fq(.)0 3604 y Fl(get_version\(\))208 3704 y Fq(Get)28
+b Fq(.)0 4391 y Fl(get_version\(\))208 4490 y Fq(Get)28
b(the)f(v)n(ersion)f(\(RF)n(C)i(2459,)e(4.1.2.1\))g(of)i(the)g
-(certi\034cate)f(request.)0 3967 y Ff(X509Sto)n(re)f(objects)0
-4167 y Fq(The)i(X509Store)d(ob)5 b(ject)28 b(has)f(curren)n(tly)f(just)
-i(one)g(metho)r(d:)0 4314 y Fl(add_cert\()p Fc(c)l(ert)8
-b Fl(\))208 4414 y Fq(A)n(dd)27 b(the)h(certi\034cate)f
-Fc(c)l(ert)36 b Fq(to)27 b(the)h(certi\034cate)f(store.)0
-4677 y Ff(PKey)g(objects)0 4877 y Fq(The)h(PKey)f(ob)5
-b(ject)27 b(has)g(the)h(follo)n(wing)f(metho)r(ds:)0
-5024 y Fl(bits\(\))208 5124 y Fq(Return)g(the)h(n)n(um)n(b)r(er)f(of)h
-(bits)g(of)f(the)h(k)n(ey)-7 b(.)0 5271 y Fl(generate_key\()p
-Fc(typ)l(e,)25 b(bits)7 b Fl(\))208 5370 y Fq(Generate)22
+(certi\034cate)f(request.)0 4753 y Ff(X509Sto)n(re)f(objects)0
+4954 y Fq(The)i(X509Store)d(ob)5 b(ject)28 b(has)f(curren)n(tly)f(just)
+i(one)g(metho)r(d:)0 5101 y Fl(add_cert\()p Fc(c)l(ert)8
+b Fl(\))208 5200 y Fq(A)n(dd)27 b(the)h(certi\034cate)f
+Fc(c)l(ert)36 b Fq(to)27 b(the)h(certi\034cate)f(store.)p
+0 5549 3901 4 v 0 5649 a Ff(3.1)82 b Fl(crypto)25 b Ff(\026)j(Generic)g
+(cryptographic)e(mo)r(dule)2234 b(7)p eop end
+%%Page: 8 8
+TeXDict begin 8 7 bop 0 83 a Ff(PKey)27 b(objects)0 283
+y Fq(The)h(PKey)f(ob)5 b(ject)27 b(has)g(the)h(follo)n(wing)f(metho)r
+(ds:)0 430 y Fl(bits\(\))208 530 y Fq(Return)g(the)h(n)n(um)n(b)r(er)f
+(of)h(bits)g(of)f(the)h(k)n(ey)-7 b(.)0 677 y Fl(generate_key\()p
+Fc(typ)l(e,)25 b(bits)7 b Fl(\))208 776 y Fq(Generate)22
b(a)h(public/priv)-5 b(ate)23 b(k)n(ey)f(pair)h(of)g(the)h(t)n(yp)r(e)f
Fc(typ)l(e)30 b Fq(\(one)23 b(of)30 b Fl(TYPE_RSA)19
b Fq(and)24 b Fl(TYPE_DSA)p Fq(\))c(with)j(the)h(size)f
-Fc(bits)7 b Fq(.)p 0 5549 3901 4 v 0 5649 a Ff(3.1)82
-b Fl(crypto)25 b Ff(\026)j(Generic)g(cryptographic)e(mo)r(dule)2234
-b(7)p eop end
-%%Page: 8 8
-TeXDict begin 8 7 bop 0 83 a Fl(type\(\))208 183 y Fq(Return)27
-b(the)h(t)n(yp)r(e)g(of)f(the)h(k)n(ey)-7 b(.)0 446 y
-Ff(PK)n(CS7)27 b(objects)0 646 y Fq(PK)n(CS7)g(ob)5 b(jects)27
-b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)0 793
-y Fl(type_is_signed\(\))208 893 y Fq(FIXME)0 1040 y Fl
-(type_is_envelope)o(d\()o(\))208 1139 y Fq(FIXME)0 1286
-y Fl(type_is_signedAn)o(dE)o(nve)o(lo)o(pe)o(d\(\))208
-1386 y Fq(FIXME)0 1532 y Fl(type_is_data\(\))208 1632
-y Fq(FIXME)0 1779 y Fl(get_type_name\(\))208 1879 y Fq(Get)h(the)f(t)n
-(yp)r(e)h(name)g(of)f(the)h(PK)n(CS7.)0 2142 y Ff(PK)n(CS12)e(objects)0
-2342 y Fq(PK)n(CS12)g(ob)5 b(jects)28 b(ha)n(v)n(e)e(the)i(follo)n
-(wing)e(metho)r(ds:)0 2489 y Fl(get_certificate\()o(\))208
-2589 y Fq(Return)h(certi\034cate)g(p)r(ortion)g(of)h(the)g(PK)n(CS12)e
-(structure.)0 2735 y Fl(get_privatekey\(\))208 2835 y
-Fq(Return)h(priv)-5 b(ate)27 b(k)n(ey)g(p)r(ortion)g(of)h(the)g(PK)n
-(CS12)e(structure)0 2982 y Fl(get_ca_certifica)o(te)o(s\(\))208
-3082 y Fq(Return)k(CA)g(certi\034cates)f(within)i(the)f(PK)n(CS12)f(ob)
-5 b(ject)30 b(as)f(a)g(tuple.)45 b(Returns)30 b(None)g(if)g(no)g(CA)g
-(certi\034cates)f(are)208 3181 y(presen)n(t.)0 3444 y
-Ff(X509Extension)c(objects)0 3645 y Fq(X509Extension)h(ob)5
-b(jects)27 b(ha)n(v)n(e)g(sev)n(eral)f(metho)r(ds:)0
-3792 y Fl(get_critical\(\))208 3891 y Fq(Return)h(the)h(critical)f
-(\034eld)h(of)f(the)h(extension)f(ob)5 b(ject.)0 4038
-y Fl(get_short_name\(\))208 4138 y Fq(Return)27 b(the)h(short)f(t)n(yp)
-r(e)h(name)f(of)h(the)g(extension)f(ob)5 b(ject.)0 4401
-y Ff(Netscap)r(eSPKI)27 b(objects)0 4601 y Fq(Netscap)r(eSPKI)h(ob)5
-b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)e(metho)r(ds:)0
-4748 y Fl(b64_encode\(\))208 4848 y Fq(Return)h(a)g(base64-enco)r(ded)f
-(string)h(represen)n(tation)e(of)j(the)g(ob)5 b(ject.)0
-4995 y Fl(get_pubkey\(\))208 5094 y Fq(Return)27 b(the)h(public)g(k)n
-(ey)f(of)h(ob)5 b(ject.)0 5241 y Fl(set_pubkey\()p Fc(key)i
-Fl(\))208 5341 y Fq(Set)28 b(the)f(public)h(k)n(ey)f(of)h(the)g(ob)5
-b(ject)27 b(to)h Fc(key)7 b Fq(.)p 0 5549 3901 4 v 0
-5649 a Ff(8)2239 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)
-h(to)f(Op)r(enSSL)p eop end
+Fc(bits)7 b Fq(.)0 923 y Fl(type\(\))208 1023 y Fq(Return)27
+b(the)h(t)n(yp)r(e)g(of)f(the)h(k)n(ey)-7 b(.)0 1282
+y Ff(PK)n(CS7)27 b(objects)0 1483 y Fq(PK)n(CS7)g(ob)5
+b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)0
+1630 y Fl(type_is_signed\(\))208 1729 y Fq(FIXME)0 1876
+y Fl(type_is_envelope)o(d\()o(\))208 1976 y Fq(FIXME)0
+2123 y Fl(type_is_signedAn)o(dE)o(nve)o(lo)o(pe)o(d\(\))208
+2222 y Fq(FIXME)0 2369 y Fl(type_is_data\(\))208 2469
+y Fq(FIXME)0 2616 y Fl(get_type_name\(\))208 2715 y Fq(Get)h(the)f(t)n
+(yp)r(e)h(name)g(of)f(the)h(PK)n(CS7.)0 2975 y Ff(PK)n(CS12)e(objects)0
+3175 y Fq(PK)n(CS12)g(ob)5 b(jects)28 b(ha)n(v)n(e)e(the)i(follo)n
+(wing)e(metho)r(ds:)0 3336 y Fl(export\()p Fb([)p Fc(p)l(assphr)l
+(ase=None)16 b Fb(][)p Fc(,)29 b(iter=2048)c Fb(][)p
+Fc(,)k(maciter=1)24 b Fb(])p Fl(\))208 3436 y Fq(Returns)j(a)g(PK)n
+(CS12)g(ob)5 b(ject)27 b(as)g(a)g(string.)208 3564 y(The)g(optional)g
+Fc(p)l(assphr)l(ase)35 b Fq(m)n(ust)28 b(b)r(e)g(a)f(string)g(not)h(a)f
+(callbac)n(k.)208 3693 y(See)g(also)g(the)h(man)f(page)g(for)g(the)h(C)
+f(function)h Fl(PKCS12_create)p Fq(.)0 3840 y Fl(get_ca_certifica)o(te)
+o(s\(\))208 3939 y Fq(Return)i(CA)h(certi\034cates)f(within)h(the)g(PK)
+n(CS12)f(ob)5 b(ject)30 b(as)g(a)h(tuple.)46 b(Returns)31
+b Fl(None)e Fq(if)i(no)f(CA)h(certi\034cates)f(are)208
+4039 y(presen)n(t.)0 4186 y Fl(get_certificate\()o(\))208
+4286 y Fq(Return)d(certi\034cate)g(p)r(ortion)g(of)h(the)g(PK)n(CS12)e
+(structure.)0 4432 y Fl(get_friendlyname)o(\(\))208 4532
+y Fq(Return)h(friendlyName)h(p)r(ortion)f(of)g(the)h(PK)n(CS12)f
+(structure.)0 4679 y Fl(get_privatekey\(\))208 4778 y
+Fq(Return)g(priv)-5 b(ate)27 b(k)n(ey)g(p)r(ortion)g(of)h(the)g(PK)n
+(CS12)e(structure)0 4925 y Fl(set_ca_certifica)o(te)o(s\()p
+Fc(c)-5 b(ac)l(erts)7 b Fl(\))208 5025 y Fq(Replace)27
+b(or)f(set)i(the)g(CA)g(certi\034cates)e(within)j(the)f(PK)n(CS12)e(ob)
+5 b(ject)27 b(with)h(the)g(sequence)f Fc(c)l(ac)l(erts)7
+b Fq(.)208 5154 y(Set)28 b Fc(c)l(ac)l(erts)34 b Fq(to)27
+b Fl(None)f Fq(to)i(remo)n(v)n(e)e(all)h(CA)h(certi\034cates.)0
+5300 y Fl(set_certificate\()o Fc(c)l(ert)8 b Fl(\))208
+5400 y Fq(Replace)27 b(or)f(set)i(the)g(certi\034cate)f(p)r(ortion)g
+(of)g(the)h(PK)n(CS12)f(structure.)p 0 5549 3901 4 v
+0 5649 a Ff(8)2239 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f
+(interface)h(to)f(Op)r(enSSL)p eop end
%%Page: 9 9
-TeXDict begin 9 8 bop 0 83 a Fl(sign\()p Fc(key,)29 b(digest_name)6
-b Fl(\))208 183 y Fq(Sign)30 b(the)h(Netscap)r(eSPKI)f(ob)5
+TeXDict begin 9 8 bop 0 83 a Fl(set_friendlyname)o(\()p
+Fc(n)o(ame)6 b Fl(\))208 183 y Fq(Replace)27 b(or)f(set)i(the)g
+(friendlyName)f(p)r(ortion)g(of)h(the)g(PK)n(CS12)e(structure.)0
+330 y Fl(set_privatekey\()p Fc(pkey)7 b Fl(\))208 429
+y Fq(Replace)27 b(or)f(set)i(priv)-5 b(ate)27 b(k)n(ey)g(p)r(ortion)g
+(of)h(the)g(PK)n(CS12)e(structure)0 692 y Ff(X509Extension)f(objects)0
+893 y Fq(X509Extension)h(ob)5 b(jects)27 b(ha)n(v)n(e)g(sev)n(eral)f
+(metho)r(ds:)0 1040 y Fl(get_critical\(\))208 1139 y
+Fq(Return)h(the)h(critical)f(\034eld)h(of)f(the)h(extension)f(ob)5
+b(ject.)0 1286 y Fl(get_short_name\(\))208 1386 y Fq(Return)27
+b(the)h(short)f(t)n(yp)r(e)h(name)f(of)h(the)g(extension)f(ob)5
+b(ject.)0 1649 y Ff(Netscap)r(eSPKI)27 b(objects)0 1849
+y Fq(Netscap)r(eSPKI)h(ob)5 b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n
+(wing)e(metho)r(ds:)0 1996 y Fl(b64_encode\(\))208 2096
+y Fq(Return)h(a)g(base64-enco)r(ded)f(string)h(represen)n(tation)e(of)j
+(the)g(ob)5 b(ject.)0 2242 y Fl(get_pubkey\(\))208 2342
+y Fq(Return)27 b(the)h(public)g(k)n(ey)f(of)h(ob)5 b(ject.)0
+2489 y Fl(set_pubkey\()p Fc(key)i Fl(\))208 2589 y Fq(Set)28
+b(the)f(public)h(k)n(ey)f(of)h(the)g(ob)5 b(ject)27 b(to)h
+Fc(key)7 b Fq(.)0 2735 y Fl(sign\()p Fc(key,)29 b(digest_name)6
+b Fl(\))208 2835 y Fq(Sign)30 b(the)h(Netscap)r(eSPKI)f(ob)5
b(ject)30 b(using)g(the)h(giv)n(en)f Fc(key)38 b Fq(and)31
b Fc(digest_name)6 b Fq(.)46 b Fc(digest_name)37 b Fq(m)n(ust)31
-b(b)r(e)g(a)f(string)208 282 y(describing)e(a)i(digest)f(algorithm)f
+b(b)r(e)g(a)f(string)208 2935 y(describing)e(a)i(digest)f(algorithm)f
(supp)r(orted)i(b)n(y)f(Op)r(enSSL)h(\(b)n(y)g(EVP_get_digestb)n
-(yname,)f(sp)r(eci\034cally\).)43 b(F)-7 b(or)208 382
+(yname,)f(sp)r(eci\034cally\).)43 b(F)-7 b(or)208 3034
y(example,)27 b Fl("md5")e Fq(or)i Fl("sha1")p Fq(.)0
-529 y Fl(verify\()p Fc(key)7 b Fl(\))208 628 y Fq(V)-7
+3181 y Fl(verify\()p Fc(key)7 b Fl(\))208 3281 y Fq(V)-7
b(erify)27 b(the)h(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(using)g(the)h
-(giv)n(en)f Fc(key)7 b Fq(.)0 906 y Fj(3.2)97 b Fd(rand)34
+(giv)n(en)f Fc(key)7 b Fq(.)0 3560 y Fj(3.2)97 b Fd(rand)34
b Fj(\026)e(An)h(interface)g(to)g(the)g(Op)s(enSSL)f(pseudo)h(random)g
-(numb)s(er)g(generato)m(r)0 1106 y Fq(This)28 b(mo)r(dule)f(handles)h
+(numb)s(er)g(generato)m(r)0 3761 y Fq(This)28 b(mo)r(dule)f(handles)h
(the)f(Op)r(enSSL)h(pseudo)f(random)g(n)n(um)n(b)r(er)g(generator)f
-(\(PRNG\))j(and)e(declares)f(the)i(follo)n(wing:)0 1253
-y Fl(add\()p Fc(string,)g(entr)l(opy)7 b Fl(\))208 1353
+(\(PRNG\))j(and)e(declares)f(the)i(follo)n(wing:)0 3908
+y Fl(add\()p Fc(string,)g(entr)l(opy)7 b Fl(\))208 4007
y Fq(Mix)22 b(b)n(ytes)g(from)g Fc(string)30 b Fq(in)n(to)22
b(the)h(PRNG)h(state.)35 b(The)22 b Fc(entr)l(opy)30
b Fq(argumen)n(t)22 b(is)g(\(the)h(lo)n(w)n(er)e(b)r(ound)i(of)6
-b(\))23 b(an)f(estimate)208 1452 y(of)f(ho)n(w)g(m)n(uc)n(h)h
+b(\))23 b(an)f(estimate)208 4107 y(of)f(ho)n(w)g(m)n(uc)n(h)h
(randomness)e(is)h(con)n(tained)g(in)h Fc(string)7 b
Fq(,)23 b(measured)e(in)h(b)n(ytes.)34 b(F)-7 b(or)21
-b(more)g(information,)h(see)g(e.g.)34 b(RF)n(C)208 1552
-y(1750.)0 1699 y Fl(egd\()p Fc(p)l(ath)6 b Fb([)p Fc(,)29
-b(bytes)19 b Fb(])p Fl(\))208 1798 y Fq(Query)29 b(the)j(En)n(trop)n(y)
-e(Gathering)g(Daemon)1629 1768 y Fk(2)1697 1798 y Fq(on)h(so)r(c)n(k)n
-(et)f Fc(p)l(ath)38 b Fq(for)30 b Fc(bytes)38 b Fq(b)n(ytes)31
-b(of)g(random)f(data)g(and)h(and)g(uses)208 1898 y Fl(add)26
-b Fq(to)h(seed)h(the)g(PRNG.)g(The)g(default)g(v)-5 b(alue)27
-b(of)34 b Fc(bytes)h Fq(is)27 b(255.)0 2059 y Fl(load_file\()p
-Fc(p)l(ath)6 b Fb([)p Fc(,)26 b(bytes)19 b Fb(])p Fl(\))208
-2159 y Fq(Read)29 b Fc(bytes)38 b Fq(b)n(ytes)30 b(\(or)f(all)h(of)g
-(it,)i(if)37 b Fc(bytes)g Fq(is)31 b(negativ)n(e\))e(of)h(data)g(from)g
-(the)g(\034le)h Fc(p)l(ath)37 b Fq(to)30 b(seed)g(the)h(PRNG.)g(The)208
-2259 y(default)d(v)-5 b(alue)27 b(of)34 b Fc(bytes)h
-Fq(is)27 b(-1.)0 2405 y Fl(screen\(\))208 2505 y Fq(A)n(dd)g(the)h
-(curren)n(t)f(con)n(ten)n(ts)g(of)g(the)h(screen)f(to)g(the)h(PRNG)h
-(state.)37 b(A)-9 b(v)k(ailabilit)n(y:)36 b(Windo)n(ws.)0
-2652 y Fl(seed\()p Fc(string)7 b Fl(\))208 2752 y Fq(This)27
-b(is)h(equiv)-5 b(alen)n(t)27 b(to)g(calling)h Fl(add)f
-Fq(with)h Fc(entr)l(opy)35 b Fq(as)27 b(the)h(length)f(of)h(the)g
-(string.)0 2898 y Fl(status\(\))208 2998 y Fq(Returns)f(true)g(if)i
-(the)e(PRNG)i(has)e(b)r(een)h(seeded)f(with)h(enough)f(data,)g(and)h
-(false)f(otherwise.)0 3145 y Fl(write_file\()p Fc(p)l(ath)6
-b Fl(\))208 3245 y Fq(W)-7 b(rite)34 b(a)g(n)n(um)n(b)r(er)g(of)h
-(random)e(b)n(ytes)h(\(curren)n(tly)g(1024\))f(to)h(the)h(\034le)f
-Fc(p)l(ath)6 b Fq(.)59 b(This)34 b(\034le)h(can)f(then)g(b)r(e)h(used)g
-(with)208 3344 y Fl(load_file)23 b Fq(to)28 b(seed)f(the)h(PRNG)h
-(again.)0 3621 y Fj(3.3)97 b Fd(SSL)33 b Fj(\026)f(An)h(interface)h(to)
-e(the)h(SSL-sp)s(eci\034c)h(pa)m(rts)f(of)f(Op)s(enSSL)0
-3822 y Fq(This)c(mo)r(dule)f(handles)h(things)f(sp)r(eci\034c)h(to)f
-(SSL.)h(There)f(are)f(t)n(w)n(o)h(ob)5 b(jects)27 b(de\034ned:)38
-b(Con)n(text,)27 b(Connection.)0 3969 y Fl(SSLv2_METHOD)0
-4068 y(SSLv3_METHOD)0 4168 y(SSLv23_METHOD)0 4268 y(TLSv1_METHOD)208
-4367 y Fq(These)g(constan)n(ts)f(represen)n(t)h(the)h(di\033eren)n(t)f
-(SSL)h(metho)r(ds)g(to)f(use)h(when)f(creating)g(a)g(con)n(text)g(ob)5
-b(ject.)0 4514 y Fl(VERIFY_NONE)0 4614 y(VERIFY_PEER)0
-4713 y(VERIFY_FAIL_IF_N)o(O_)o(PEE)o(R_)o(CE)o(RT)208
-4813 y Fq(These)27 b(constan)n(ts)f(represen)n(t)h(the)h(v)n
-(eri\034cation)e(mo)r(de)h(used)h(b)n(y)f(the)h(Con)n(text)f(ob)5
-b(ject's)27 b Fl(set_verify)d Fq(metho)r(d.)0 4960 y
-Fl(FILETYPE_PEM)0 5060 y(FILETYPE_ASN1)208 5159 y Fq(File)41
-b(t)n(yp)r(e)g(constan)n(ts)f(used)h(with)g(the)h Fl(use_certificate)o
-(_f)o(ile)34 b Fq(and)41 b Fl(use_privatekey_f)o(il)o(e)35
-b Fq(metho)r(ds)41 b(of)208 5259 y(Con)n(text)27 b(ob)5
-b(jects.)p 0 5323 1560 4 v 92 5377 a Fh(2)127 5400 y
-Fg(See)24 b Fp(http://www.lotha)n(r.com/tech/crypto/)p
+b(more)g(information,)h(see)g(e.g.)34 b(RF)n(C)208 4207
+y(1750.)0 4354 y Fl(bytes\()p Fc(num_bytes)7 b Fl(\))208
+4453 y Fq(Get)28 b(some)e(random)h(b)n(ytes)g(from)g(the)h(PRNG)h(as)e
+(a)g(string.)208 4586 y(This)g(is)h(a)f(wrapp)r(er)f(for)h(the)h(C)g
+(function)g Fl(RAND_bytes)p Fq(.)0 4733 y Fl(cleanup\(\))208
+4833 y Fq(Erase)e(the)i(memory)f(used)h(b)n(y)f(the)h(PRNG.)208
+4965 y(This)f(is)h(a)f(wrapp)r(er)f(for)h(the)h(C)g(function)g
+Fl(RAND_cleanup)p Fq(.)0 5129 y Fl(egd\()p Fc(p)l(ath)6
+b Fb([)p Fc(,)29 b(bytes)19 b Fb(])p Fl(\))208 5229 y
+Fq(Query)29 b(the)j(En)n(trop)n(y)e(Gathering)g(Daemon)1629
+5198 y Fk(2)1697 5229 y Fq(on)h(so)r(c)n(k)n(et)f Fc(p)l(ath)38
+b Fq(for)30 b Fc(bytes)38 b Fq(b)n(ytes)31 b(of)g(random)f(data)g(and)h
+(and)g(uses)p 0 5298 1560 4 v 92 5352 a Fh(2)127 5375
+y Fg(See)24 b Fp(http://www.lotha)n(r.com/tech/crypto/)p
0 5549 3901 4 v 0 5649 a Ff(3.2)82 b Fl(rand)26 b Ff(\026)i(An)g
(interface)f(to)g(the)h(Op)r(enSSL)g(pseudo)e(random)h(numb)r(er)h
(generato)n(r)1148 b(9)p eop end
%%Page: 10 10
-TeXDict begin 10 9 bop 0 83 a Fl(OP_SINGLE_DH_USE)0 183
-y(OP_EPHEMERAL_RSA)0 282 y(OP_NO_SSLv2)0 382 y(OP_NO_SSLv3)0
-482 y(OP_NO_TLSv1)208 581 y Fq(Constan)n(ts)30 b(used)i(with)g
-Fl(set_options)26 b Fq(of)32 b(Con)n(text)f(ob)5 b(jects.)48
-b Fl(OP_SINGLE_DH_USE)25 b Fq(means)31 b(to)g(alw)n(a)n(ys)f(create)g
-(a)208 681 y(new)19 b(k)n(ey)f(when)h(using)g(ephemeral)f
-(Di\036e-Hellman.)34 b Fl(OP_EPHEMERAL_RSA)13 b Fq(means)18
-b(to)h(alw)n(a)n(ys)e(use)i(ephemeral)g(RSA)208 780 y(k)n(eys)f(when)h
-(doing)f(RSA)i(op)r(erations.)33 b Fl(OP_NO_SSLv2)p Fq(,)16
-b Fl(OP_NO_SSLv3)f Fq(and)k Fl(OP_NO_TLSv1)14 b Fq(means)19
-b(to)g(disable)f(those)208 880 y(sp)r(eci\034c)29 b(proto)r(cols.)39
-b(This)29 b(is)g(in)n(teresting)g(if)g(y)n(ou're)f(using)g(e.g.)41
-b Fl(SSLv23_METHOD)24 b Fq(to)29 b(get)g(an)f(SSLv2-compatible)208
-980 y(handshak)n(e,)e(but)i(don't)g(w)n(an)n(t)f(to)g(use)h(SSLv2.)0
-1127 y Fl(ContextType)208 1226 y Fq(A)f(Python)h(t)n(yp)r(e)g(ob)5
-b(ject)28 b(represen)n(ting)d(the)j(Con)n(text)g(ob)5
-b(ject)27 b(t)n(yp)r(e.)0 1373 y Fl(Context\()p Fc(metho)l(d)9
-b Fl(\))208 1473 y Fq(F)-7 b(actory)34 b(function)i(that)g(creates)f(a)
-g(new)h(Con)n(text)f(ob)5 b(ject)36 b(giv)n(en)e(an)i(SSL)g(metho)r(d.)
-61 b(The)36 b(metho)r(d)g(should)g(b)r(e)208 1572 y Fl(SSLv2_METHOD)p
-Fq(,)22 b Fl(SSLv3_METHOD)p Fq(,)h Fl(SSLv23_METHOD)f
-Fq(or)27 b Fl(TLSv1_METHOD)p Fq(.)0 1719 y Fl(ConnectionType)208
-1819 y Fq(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d
-(the)j(Connection)f(ob)5 b(ject)28 b(t)n(yp)r(e.)0 1966
-y Fl(Connection\()p Fc(c)l(ontext,)c(so)l(cket)8 b Fl(\))208
-2065 y Fq(F)-7 b(actory)26 b(fucnction)i(that)g(creates)e(a)h(new)h
-(Connection)f(ob)5 b(ject)27 b(giv)n(en)g(an)g(SSL)h(con)n(text)f(and)h
-(a)f(so)r(c)n(k)n(et)3538 2035 y Fk(3)3603 2065 y Fq(ob)5
-b(ject.)0 2212 y Fm(exception)32 b Fl(Error)208 2312
-y Fq(This)i(exception)g(is)h(used)f(as)g(a)h(base)e(class)h(for)g(the)h
-(other)f(SSL-related)g(exceptions,)i(but)f(ma)n(y)f(also)f(b)r(e)i
-(raised)208 2411 y(directly)-7 b(.)208 2544 y(Whenev)n(er)36
+TeXDict begin 10 9 bop 208 83 a Fl(add)26 b Fq(to)h(seed)h(the)g(PRNG.)
+g(The)g(default)g(v)-5 b(alue)27 b(of)34 b Fc(bytes)h
+Fq(is)27 b(255.)0 244 y Fl(load_file\()p Fc(p)l(ath)6
+b Fb([)p Fc(,)26 b(bytes)19 b Fb(])p Fl(\))208 344 y
+Fq(Read)29 b Fc(bytes)38 b Fq(b)n(ytes)30 b(\(or)f(all)h(of)g(it,)i(if)
+37 b Fc(bytes)g Fq(is)31 b(negativ)n(e\))e(of)h(data)g(from)g(the)g
+(\034le)h Fc(p)l(ath)37 b Fq(to)30 b(seed)g(the)h(PRNG.)g(The)208
+444 y(default)d(v)-5 b(alue)27 b(of)34 b Fc(bytes)h Fq(is)27
+b(-1.)0 590 y Fl(screen\(\))208 690 y Fq(A)n(dd)g(the)h(curren)n(t)f
+(con)n(ten)n(ts)g(of)g(the)h(screen)f(to)g(the)h(PRNG)h(state.)37
+b(A)-9 b(v)k(ailabilit)n(y:)36 b(Windo)n(ws.)0 837 y
+Fl(seed\()p Fc(string)7 b Fl(\))208 937 y Fq(This)27
+b(is)h(equiv)-5 b(alen)n(t)27 b(to)g(calling)h Fl(add)f
+Fq(with)h Fc(entr)l(opy)35 b Fq(as)27 b(the)h(length)f(of)h(the)g
+(string.)0 1083 y Fl(status\(\))208 1183 y Fq(Returns)f(true)g(if)i
+(the)e(PRNG)i(has)e(b)r(een)h(seeded)f(with)h(enough)f(data,)g(and)h
+(false)f(otherwise.)0 1330 y Fl(write_file\()p Fc(p)l(ath)6
+b Fl(\))208 1430 y Fq(W)-7 b(rite)34 b(a)g(n)n(um)n(b)r(er)g(of)h
+(random)e(b)n(ytes)h(\(curren)n(tly)g(1024\))f(to)h(the)h(\034le)f
+Fc(p)l(ath)6 b Fq(.)59 b(This)34 b(\034le)h(can)f(then)g(b)r(e)h(used)g
+(with)208 1529 y Fl(load_file)23 b Fq(to)28 b(seed)f(the)h(PRNG)h
+(again.)0 1676 y Fm(exception)j Fl(Error)208 1776 y Fq(If)i(the)g
+(curren)n(t)f(RAND)i(metho)r(d)f(supp)r(orts)f(an)n(y)g(errors,)h(this)
+g(is)f(raised)g(when)h(needed.)56 b(The)33 b(default)i(metho)r(d)208
+1875 y(do)r(es)27 b(not)g(raise)g(this)h(when)f(the)h(en)n(trop)n(y)e
+(p)r(o)r(ol)i(is)f(depleted.)208 2000 y(Whenev)n(er)36
b(this)h(exception)g(is)g(raised)f(directly)-7 b(,)40
b(it)d(has)g(a)f(list)i(of)f(error)e(messages)g(from)i(the)h(Op)r
-(enSSL)f(error)208 2644 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
+(enSSL)f(error)208 2100 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
(tuple)h Fl(\()p Fc(lib)5 b Fl(,)44 b Fc(function)6 b
Fl(,)43 b Fc(r)l(e)l(ason)6 b Fl(\))p Fq(.)70 b(Here)38
b Fc(lib)5 b Fq(,)43 b Fc(function)h Fq(and)39 b Fc(r)l(e)l(ason)45
-b Fq(are)37 b(all)208 2743 y(strings,)26 b(describing)h(where)g(and)g
+b Fq(are)37 b(all)208 2200 y(strings,)26 b(describing)h(where)g(and)g
(what)h(the)g(problem)f(is.)36 b(See)28 b Fc(err)p Fq(\(3\))g(for)f
-(more)g(information.)0 2890 y Fm(exception)32 b Fl(ZeroReturnError)208
-2990 y Fq(This)g(exception)g(matc)n(hes)g(the)h(error)d(return)i(co)r
-(de)h Fl(SSL_ERROR_ZERO_)o(RE)o(TUR)o(N)p Fq(,)26 b(and)33
-b(is)f(raised)f(when)i(the)g(SSL)208 3090 y(Connection)c(has)g(b)r(een)
-h(closed.)43 b(In)29 b(SSL)h(3.0)f(and)h(TLS)g(1.0,)f(this)h(only)f(o)r
-(ccurs)g(if)h(a)g(closure)e(alert)h(has)g(o)r(ccurred)208
-3189 y(in)g(the)g(proto)r(col,)f(i.e.)41 b(the)29 b(connection)f(has)g
-(b)r(een)i(closed)e(cleanly)-7 b(.)40 b(Note)29 b(that)g(this)g(do)r
-(es)f(not)h(necessarily)e(mean)208 3289 y(that)g(the)h(transp)r(ort)f
-(la)n(y)n(er)f(\(e.g.)36 b(a)28 b(so)r(c)n(k)n(et\))e(has)h(b)r(een)h
-(closed.)208 3422 y(It)k(ma)n(y)f(seem)h(a)f(little)i(strange)e(that)h
-(this)g(is)g(an)g(exception,)g(but)h(it)f(do)r(es)g(matc)n(h)g(an)f
-Fl(SSL_ERROR)e Fq(co)r(de,)j(and)g(is)208 3521 y(v)n(ery)26
-b(con)n(v)n(enien)n(t.)0 3668 y Fm(exception)32 b Fl(WantReadError)208
-3768 y Fq(The)i(op)r(eration)e(did)j(not)f(complete;)j(the)d(same)g
-(I/O)f(metho)r(d)h(should)g(b)r(e)g(called)g(again)f(later,)i(with)f
-(the)h(same)208 3867 y(argumen)n(ts.)g(An)n(y)28 b(I/O)e(metho)r(d)i
-(can)f(lead)h(to)f(this)h(since)f(new)h(handshak)n(es)e(can)h(o)r(ccur)
-g(at)g(an)n(y)g(time.)0 4014 y Fm(exception)32 b Fl(WantWriteError)208
-4114 y Fq(See)27 b Fl(WantReadError)p Fq(.)0 4261 y Fm(exception)32
-b Fl(WantX509LookupE)o(rr)o(or)208 4360 y Fq(The)24 b(op)r(eration)g
-(did)h(not)g(complete)f(b)r(ecause)g(an)h(application)f(callbac)n(k)f
-(has)h(ask)n(ed)g(to)g(b)r(e)h(called)g(again.)34 b(The)25
-b(I/O)208 4460 y(metho)r(d)f(should)h(b)r(e)f(called)g(again)g(later,)g
-(with)h(the)g(same)e(argumen)n(ts.)35 b(Note:)g(This)24
-b(w)n(on't)h(o)r(ccur)e(in)i(this)g(v)n(ersion,)208 4560
-y(as)h(there)i(are)e(no)i(suc)n(h)f(callbac)n(ks)f(in)i(this)f(v)n
-(ersion.)0 4707 y Fm(exception)32 b Fl(SysCallError)208
-4806 y Fq(The)25 b Fl(SysCallError)20 b Fq(o)r(ccurs)k(when)i(there's)e
-(an)h(I/O)g(error)e(and)i(Op)r(enSSL's)g(error)e(queue)i(do)r(es)g(not)
-g(con)n(tain)g(an)n(y)208 4906 y(information.)59 b(This)36
-b(can)f(mean)g(t)n(w)n(o)g(things:)52 b(An)36 b(error)d(in)j(the)g
-(transp)r(ort)e(proto)r(col,)i(or)f(an)g(end)h(of)f(\034le)h(that)208
-5005 y(violates)26 b(the)i(proto)r(col.)36 b(The)27 b(parameter)f(to)i
-(the)g(exception)f(is)g(alw)n(a)n(ys)f(a)h(pair)g Fl(\()p
-Fc(errnum)6 b Fl(,)42 b Fc(errstr)9 b Fl(\))p Fq(.)p
-0 5075 1560 4 v 92 5128 a Fh(3)127 5152 y Fg(A)n(ctually)-6
-b(,)25 b(all)e(that)j(is)d(required)j(is)e(an)g(ob)t(ject)h(that)h
-Fa(b)l(ehaves)e Fg(lik)n(e)g(a)h(so)r(c)n(k)n(et,)g(y)n(ou)g(could)g
-(ev)n(en)g(use)f(\034les,)g(ev)n(en)i(though)f(it'd)f(b)r(e)h(tric)n
-(ky)g(to)0 5231 y(get)g(the)f(handshak)n(es)h(righ)n(t!)p
-0 5549 3901 4 v 0 5649 a Ff(10)2197 b(3)83 b Fl(OpenSSL)24
+(more)g(information.)0 2473 y Fj(3.3)97 b Fd(SSL)33 b
+Fj(\026)f(An)h(interface)h(to)e(the)h(SSL-sp)s(eci\034c)h(pa)m(rts)f
+(of)f(Op)s(enSSL)0 2673 y Fq(This)c(mo)r(dule)f(handles)h(things)f(sp)r
+(eci\034c)h(to)f(SSL.)h(There)f(are)f(t)n(w)n(o)h(ob)5
+b(jects)27 b(de\034ned:)38 b(Con)n(text,)27 b(Connection.)0
+2820 y Fl(SSLv2_METHOD)0 2920 y(SSLv3_METHOD)0 3019 y(SSLv23_METHOD)0
+3119 y(TLSv1_METHOD)208 3218 y Fq(These)g(constan)n(ts)f(represen)n(t)h
+(the)h(di\033eren)n(t)f(SSL)h(metho)r(ds)g(to)f(use)h(when)f(creating)g
+(a)g(con)n(text)g(ob)5 b(ject.)0 3365 y Fl(VERIFY_NONE)0
+3465 y(VERIFY_PEER)0 3565 y(VERIFY_FAIL_IF_N)o(O_)o(PEE)o(R_)o(CE)o(RT)
+208 3664 y Fq(These)27 b(constan)n(ts)f(represen)n(t)h(the)h(v)n
+(eri\034cation)e(mo)r(de)h(used)h(b)n(y)f(the)h(Con)n(text)f(ob)5
+b(ject's)27 b Fl(set_verify)d Fq(metho)r(d.)0 3811 y
+Fl(FILETYPE_PEM)0 3911 y(FILETYPE_ASN1)208 4010 y Fq(File)41
+b(t)n(yp)r(e)g(constan)n(ts)f(used)h(with)g(the)h Fl(use_certificate)o
+(_f)o(ile)34 b Fq(and)41 b Fl(use_privatekey_f)o(il)o(e)35
+b Fq(metho)r(ds)41 b(of)208 4110 y(Con)n(text)27 b(ob)5
+b(jects.)0 4257 y Fl(OP_SINGLE_DH_USE)0 4356 y(OP_EPHEMERAL_RSA)0
+4456 y(OP_NO_SSLv2)0 4556 y(OP_NO_SSLv3)0 4655 y(OP_NO_TLSv1)208
+4755 y Fq(Constan)n(ts)30 b(used)i(with)g Fl(set_options)26
+b Fq(of)32 b(Con)n(text)f(ob)5 b(jects.)48 b Fl(OP_SINGLE_DH_USE)25
+b Fq(means)31 b(to)g(alw)n(a)n(ys)f(create)g(a)208 4855
+y(new)19 b(k)n(ey)f(when)h(using)g(ephemeral)f(Di\036e-Hellman.)34
+b Fl(OP_EPHEMERAL_RSA)13 b Fq(means)18 b(to)h(alw)n(a)n(ys)e(use)i
+(ephemeral)g(RSA)208 4954 y(k)n(eys)f(when)h(doing)f(RSA)i(op)r
+(erations.)33 b Fl(OP_NO_SSLv2)p Fq(,)16 b Fl(OP_NO_SSLv3)f
+Fq(and)k Fl(OP_NO_TLSv1)14 b Fq(means)19 b(to)g(disable)f(those)208
+5054 y(sp)r(eci\034c)29 b(proto)r(cols.)39 b(This)29
+b(is)g(in)n(teresting)g(if)g(y)n(ou're)f(using)g(e.g.)41
+b Fl(SSLv23_METHOD)24 b Fq(to)29 b(get)g(an)f(SSLv2-compatible)208
+5154 y(handshak)n(e,)e(but)i(don't)g(w)n(an)n(t)f(to)g(use)h(SSLv2.)0
+5300 y Fl(ContextType)208 5400 y Fq(See)f Fl(Context)p
+Fq(.)p 0 5549 3901 4 v 0 5649 a Ff(10)2197 b(3)83 b Fl(OpenSSL)24
b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
end
%%Page: 11 11
-TeXDict begin 11 10 bop 0 83 a Ff(Context)27 b(objects)0
-283 y Fq(Con)n(text)g(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n
-(wing)e(metho)r(ds:)0 430 y Fl(check_privatekey)o(\(\))208
-547 y Fq(Chec)n(k)k(if)i(the)g(priv)-5 b(ate)31 b(k)n(ey)f(\(loaded)h
-(with)h Fl(use_privatekey)p Fb([)p Fl(_)o(fi)o(le)11
+TeXDict begin 11 10 bop 0 83 a Fm(class)31 b Fl(Context\()p
+Fc(metho)l(d)9 b Fl(\))208 183 y Fq(A)27 b(class)g(represen)n(ting)f
+(SSL)i(con)n(texts.)36 b(Con)n(texts)27 b(de\034ne)h(the)g(parameters)d
+(of)j(one)f(or)g(more)f(SSL)i(connections.)208 315 y
+Fc(metho)l(d)36 b Fq(should)28 b(b)r(e)g Fl(SSLv2_METHOD)p
+Fq(,)22 b Fl(SSLv3_METHOD)p Fq(,)h Fl(SSLv23_METHOD)f
+Fq(or)27 b Fl(TLSv1_METHOD)p Fq(.)0 462 y Fl(ConnectionType)208
+562 y Fq(See)g Fl(Connection)p Fq(.)0 709 y Fm(class)k
+Fl(Connection\()p Fc(c)l(ontext,)25 b(so)l(cket)8 b Fl(\))208
+808 y Fq(A)27 b(class)g(represen)n(ting)f(SSL)i(connections.)208
+941 y Fc(c)l(ontext)44 b Fq(should)37 b(b)r(e)g(an)g(instance)g(of)44
+b Fl(Context)34 b Fq(and)j Fc(so)l(cket)46 b Fq(should)37
+b(b)r(e)g(a)g(so)r(c)n(k)n(et)2978 911 y Fk(3)3053 941
+y Fq(ob)5 b(ject.)66 b Fc(so)l(cket)45 b Fq(ma)n(y)37
+b(b)r(e)208 1041 y Fc(None)6 b Fq(;)27 b(in)h(this)g(case,)e(the)i
+(Connection)f(is)g(created)g(with)h(a)f(memory)g(BIO:)f(see)h(the)h
+Fl(bio_read)p Fq(,)c Fl(bio_write)p Fq(,)g(and)208 1141
+y Fl(bio_shutdown)e Fq(metho)r(ds.)0 1287 y Fm(exception)32
+b Fl(Error)208 1387 y Fq(This)i(exception)g(is)h(used)f(as)g(a)h(base)e
+(class)h(for)g(the)h(other)f(SSL-related)g(exceptions,)i(but)f(ma)n(y)f
+(also)f(b)r(e)i(raised)208 1487 y(directly)-7 b(.)208
+1620 y(Whenev)n(er)36 b(this)h(exception)g(is)g(raised)f(directly)-7
+b(,)40 b(it)d(has)g(a)f(list)i(of)f(error)e(messages)g(from)i(the)h(Op)
+r(enSSL)f(error)208 1719 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
+(tuple)h Fl(\()p Fc(lib)5 b Fl(,)44 b Fc(function)6 b
+Fl(,)43 b Fc(r)l(e)l(ason)6 b Fl(\))p Fq(.)70 b(Here)38
+b Fc(lib)5 b Fq(,)43 b Fc(function)h Fq(and)39 b Fc(r)l(e)l(ason)45
+b Fq(are)37 b(all)208 1819 y(strings,)26 b(describing)h(where)g(and)g
+(what)h(the)g(problem)f(is.)36 b(See)28 b Fc(err)p Fq(\(3\))g(for)f
+(more)g(information.)0 1966 y Fm(exception)32 b Fl(ZeroReturnError)208
+2065 y Fq(This)g(exception)g(matc)n(hes)g(the)h(error)d(return)i(co)r
+(de)h Fl(SSL_ERROR_ZERO_)o(RE)o(TUR)o(N)p Fq(,)26 b(and)33
+b(is)f(raised)f(when)i(the)g(SSL)208 2165 y(Connection)c(has)g(b)r(een)
+h(closed.)43 b(In)29 b(SSL)h(3.0)f(and)h(TLS)g(1.0,)f(this)h(only)f(o)r
+(ccurs)g(if)h(a)g(closure)e(alert)h(has)g(o)r(ccurred)208
+2265 y(in)g(the)g(proto)r(col,)f(i.e.)41 b(the)29 b(connection)f(has)g
+(b)r(een)i(closed)e(cleanly)-7 b(.)40 b(Note)29 b(that)g(this)g(do)r
+(es)f(not)h(necessarily)e(mean)208 2364 y(that)g(the)h(transp)r(ort)f
+(la)n(y)n(er)f(\(e.g.)36 b(a)28 b(so)r(c)n(k)n(et\))e(has)h(b)r(een)h
+(closed.)208 2497 y(It)k(ma)n(y)f(seem)h(a)f(little)i(strange)e(that)h
+(this)g(is)g(an)g(exception,)g(but)h(it)f(do)r(es)g(matc)n(h)g(an)f
+Fl(SSL_ERROR)e Fq(co)r(de,)j(and)g(is)208 2597 y(v)n(ery)26
+b(con)n(v)n(enien)n(t.)0 2743 y Fm(exception)32 b Fl(WantReadError)208
+2843 y Fq(The)i(op)r(eration)e(did)j(not)f(complete;)j(the)d(same)g
+(I/O)f(metho)r(d)h(should)g(b)r(e)g(called)g(again)f(later,)i(with)f
+(the)h(same)208 2943 y(argumen)n(ts.)g(An)n(y)28 b(I/O)e(metho)r(d)i
+(can)f(lead)h(to)f(this)h(since)f(new)h(handshak)n(es)e(can)h(o)r(ccur)
+g(at)g(an)n(y)g(time.)208 3076 y(The)44 b(w)n(an)n(ted)h(read)f(is)g
+(for)h Fc(dirty)g Fq(data)g(sen)n(t)f(o)n(v)n(er)f(the)j(net)n(w)n
+(ork,)h(not)e(the)h Fc(cle)l(an)f Fq(data)f(inside)h(the)g(tunnel.)208
+3175 y(F)-7 b(or)39 b(a)i(so)r(c)n(k)n(et)e(based)h(SSL)h(connection,)i
+Fc(r)l(e)l(ad)e Fq(means)f(data)g(coming)g(at)g(us)h(o)n(v)n(er)e(the)i
+(net)n(w)n(ork.)74 b(Un)n(til)41 b(that)208 3275 y(read)d(succeeds,)k
+(the)d(attempted)h Fl(OpenSSL.SSL.Conn)o(ect)o(io)o(n.)o(rec)o(v)p
+Fq(,)c Fl(OpenSSL.SSL.Conn)o(ec)o(tio)o(n.)o(se)o(nd)p
+Fq(,)g(or)208 3374 y Fl(OpenSSL.SSL.Con)o(ne)o(ct)o(ion)o(.d)o(o_h)o
+(an)o(ds)o(hak)o(e)15 b Fq(is)22 b(prev)n(en)n(ted)e(or)h(incomplete.)
+35 b(Y)-7 b(ou)22 b(probably)e(w)n(an)n(t)h(to)g Fl(select\(\))208
+3474 y Fq(on)27 b(the)h(so)r(c)n(k)n(et)e(b)r(efore)h(trying)g(again.)0
+3621 y Fm(exception)32 b Fl(WantWriteError)208 3721 y
+Fq(See)27 b Fl(WantReadError)p Fq(.)32 b(The)27 b(so)r(c)n(k)n(et)g
+(send)g(bu\033er)h(ma)n(y)f(b)r(e)h(to)r(o)f(full)h(to)g(write)f(more)g
+(data.)0 3867 y Fm(exception)32 b Fl(WantX509LookupE)o(rr)o(or)208
+3967 y Fq(The)24 b(op)r(eration)g(did)h(not)g(complete)f(b)r(ecause)g
+(an)h(application)f(callbac)n(k)f(has)h(ask)n(ed)g(to)g(b)r(e)h(called)
+g(again.)34 b(The)25 b(I/O)208 4067 y(metho)r(d)f(should)h(b)r(e)f
+(called)g(again)g(later,)g(with)h(the)g(same)e(argumen)n(ts.)35
+b(Note:)g(This)24 b(w)n(on't)h(o)r(ccur)e(in)i(this)g(v)n(ersion,)208
+4166 y(as)h(there)i(are)e(no)i(suc)n(h)f(callbac)n(ks)f(in)i(this)f(v)n
+(ersion.)0 4313 y Fm(exception)32 b Fl(SysCallError)208
+4413 y Fq(The)25 b Fl(SysCallError)20 b Fq(o)r(ccurs)k(when)i(there's)e
+(an)h(I/O)g(error)e(and)i(Op)r(enSSL's)g(error)e(queue)i(do)r(es)g(not)
+g(con)n(tain)g(an)n(y)208 4512 y(information.)59 b(This)36
+b(can)f(mean)g(t)n(w)n(o)g(things:)52 b(An)36 b(error)d(in)j(the)g
+(transp)r(ort)e(proto)r(col,)i(or)f(an)g(end)h(of)f(\034le)h(that)208
+4612 y(violates)26 b(the)i(proto)r(col.)36 b(The)27 b(parameter)f(to)i
+(the)g(exception)f(is)g(alw)n(a)n(ys)f(a)h(pair)g Fl(\()p
+Fc(errnum)6 b Fl(,)42 b Fc(errstr)9 b Fl(\))p Fq(.)0
+4875 y Ff(Context)27 b(objects)0 5076 y Fq(Con)n(text)g(ob)5
+b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)p
+0 5145 1560 4 v 92 5198 a Fh(3)127 5222 y Fg(A)n(ctually)-6
+b(,)25 b(all)e(that)j(is)d(required)j(is)e(an)g(ob)t(ject)h(that)h
+Fa(b)l(ehaves)e Fg(lik)n(e)g(a)h(so)r(c)n(k)n(et,)g(y)n(ou)g(could)g
+(ev)n(en)g(use)f(\034les,)g(ev)n(en)i(though)f(it'd)f(b)r(e)h(tric)n
+(ky)g(to)0 5301 y(get)g(the)f(handshak)n(es)h(righ)n(t!)p
+0 5549 3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26 b Ff(\026)i(An)g
+(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)
+1611 b(11)p eop end
+%%Page: 12 12
+TeXDict begin 12 11 bop 0 83 a Fl(check_privatekey)o(\(\))208
+199 y Fq(Chec)n(k)30 b(if)i(the)g(priv)-5 b(ate)31 b(k)n(ey)f(\(loaded)
+h(with)h Fl(use_privatekey)p Fb([)p Fl(_)o(fi)o(le)11
b Fb(])p Fq(\))26 b(matc)n(hes)k(the)i(certi\034cate)f(\(loaded)g(with)
-208 674 y Fl(use_certificate)o Fb([)p Fl(_)o(fil)o(e)11
+208 327 y Fl(use_certificate)o Fb([)p Fl(_)o(fil)o(e)11
b Fb(])p Fq(\).)31 b(Returns)d Fl(None)e Fq(if)i(they)f(matc)n(h,)h
-(raises)e Fl(Error)g Fq(otherwise.)0 821 y Fl(get_app_data\(\))208
-921 y Fq(Retriev)n(e)g(application)h(data)g(as)g(set)h(b)n(y)g
-Fl(set_app_data)p Fq(.)0 1068 y Fl(get_cert_store\(\))208
-1167 y Fq(Retriev)n(e)34 b(the)i(certi\034cate)f(store)f(\(a)h
+(raises)e Fl(Error)g Fq(otherwise.)0 474 y Fl(get_app_data\(\))208
+573 y Fq(Retriev)n(e)g(application)h(data)g(as)g(set)h(b)n(y)g
+Fl(set_app_data)p Fq(.)0 720 y Fl(get_cert_store\(\))208
+820 y Fq(Retriev)n(e)34 b(the)i(certi\034cate)f(store)f(\(a)h
(X509Store)f(ob)5 b(ject\))35 b(that)h(the)f(con)n(text)g(uses.)60
-b(This)35 b(can)g(b)r(e)h(used)f(to)g(add)208 1267 y("trusted")26
+b(This)35 b(can)g(b)r(e)h(used)f(to)g(add)208 920 y("trusted")26
b(certi\034cates)h(without)h(using)f(the.)37 b Fl(load_verify_loca)o
-(tio)o(ns)o(\(\))21 b Fq(metho)r(d.)0 1414 y Fl(get_timeout\(\))208
-1513 y Fq(Retriev)n(e)26 b(session)h(timeout,)h(as)f(set)g(b)n(y)i
+(tio)o(ns)o(\(\))21 b Fq(metho)r(d.)0 1066 y Fl(get_timeout\(\))208
+1166 y Fq(Retriev)n(e)26 b(session)h(timeout,)h(as)f(set)g(b)n(y)i
Fl(set_timeout)p Fq(.)j(The)c(default)g(is)f(300)f(seconds.)0
-1660 y Fl(get_verify_depth)o(\(\))208 1760 y Fq(Retriev)n(e)g(the)i
+1313 y Fl(get_verify_depth)o(\(\))208 1413 y Fq(Retriev)n(e)g(the)i
(Con)n(text)f(ob)5 b(ject's)28 b(v)n(erify)e(depth,)j(as)d(set)i(b)n(y)
-g Fl(set_verify_depth)p Fq(.)0 1907 y Fl(get_verify_mode\()o(\))208
-2006 y Fq(Retriev)n(e)e(the)i(Con)n(text)f(ob)5 b(ject's)28
+g Fl(set_verify_depth)p Fq(.)0 1559 y Fl(get_verify_mode\()o(\))208
+1659 y Fq(Retriev)n(e)e(the)i(Con)n(text)f(ob)5 b(ject's)28
b(v)n(erify)e(mo)r(de,)i(as)f(set)h(b)n(y)g Fl(set_verify)p
-Fq(.)0 2153 y Fl(load_client_ca\()p Fc(p)l(em\034le)6
-b Fl(\))208 2253 y Fq(Read)33 b(a)g(\034le)h(with)g(PEM-formatted)g
+Fq(.)0 1806 y Fl(load_client_ca\()p Fc(p)l(em\034le)6
+b Fl(\))208 1906 y Fq(Read)33 b(a)g(\034le)h(with)g(PEM-formatted)g
(certi\034cates)f(that)h(will)g(b)r(e)g(sen)n(t)f(to)h(the)g(clien)n(t)
-f(when)h(requesting)f(a)g(clien)n(t)208 2353 y(certi\034cate.)0
-2499 y Fl(load_verify_loca)o(ti)o(ons)o(\()p Fc(p)l(em\034le,)24
-b(c)l(ap)l(ath)6 b Fl(\))208 2599 y Fq(Sp)r(ecify)24
-b(where)f(CA)g(certi\034cates)g(for)g(v)n(eri\034cation)f(purp)r(oses)h
-(are)f(lo)r(cated.)35 b(These)23 b(are)g(trusted)g(certi\034cates.)35
-b(Note)208 2699 y(that)c(the)g(certi\034cates)f(ha)n(v)n(e)f(to)i(b)r
-(e)g(in)g(PEM)h(format.)46 b(If)31 b(capath)f(is)h(passed,)f(it)i(m)n
-(ust)e(b)r(e)i(a)e(directory)f(prepared)208 2798 y(using)i(the)h
-Fl(c_rehash)c Fq(to)r(ol)j(included)h(with)g(Op)r(enSSL.)g(Either,)h
-(but)f(not)g(b)r(oth,)h(of)38 b Fc(p)l(em\034le)g Fq(or)31
-b Fc(c)l(ap)l(ath)39 b Fq(ma)n(y)31 b(b)r(e)208 2898
-y Fl(None)p Fq(.)0 3045 y Fl(set_default_veri)o(fy)o(_pa)o(th)o(s\()o
-(\))208 3144 y Fq(Sp)r(ecify)20 b(that)h(the)g(platform)f(pro)n(vided)f
-(CA)h(certi\034cates)g(are)f(to)h(b)r(e)h(used)f(for)g(v)n
-(eri\034cation)f(purp)r(oses.)33 b(This)21 b(metho)r(d)208
-3244 y(ma)n(y)26 b(not)i(w)n(ork)e(prop)r(erly)h(on)g(OS)g(X.)0
-3391 y Fl(load_tmp_dh\()p Fc(dh\034le)6 b Fl(\))208 3491
-y Fq(Load)26 b(parameters)g(for)h(Ephemeral)g(Di\036e-Hellman)h(from)g
-Fc(dh\034le)6 b Fq(.)0 3637 y Fl(set_app_data\()p Fc(data)g
-Fl(\))208 3737 y Fq(Asso)r(ciate)25 b Fc(data)33 b Fq(with)27
+f(when)h(requesting)f(a)g(clien)n(t)208 2005 y(certi\034cate.)0
+2152 y Fl(set_client_ca_li)o(st)o(\()p Fc(c)l(erti\034c)l(ate_au)o
+(thorities)7 b Fl(\))208 2252 y Fq(Replace)23 b(the)h(curren)n(t)g
+(list)g(of)g(preferred)f(certi\034cate)g(signers)g(that)h(w)n(ould)f(b)
+r(e)i(sen)n(t)f(to)g(the)g(clien)n(t)g(when)g(requesting)208
+2351 y(a)j(clien)n(t)g(certi\034cate)g(with)h(the)g Fc(c)l(erti\034c)l
+(ate_authorities)35 b Fq(sequence)27 b(of)34 b Fl(OpenSSL.crypto.X5)o
+(09)o(Na)o(me)p Fq(s)o(.)208 2484 y(New)27 b(in)h(v)n(ersion)e(0.10.)0
+2631 y Fl(add_client_ca\()p Fc(c)l(erti\034c)l(ate_aut)o(hority)7
+b Fl(\))208 2731 y Fq(Extract)22 b(a)g Fl(OpenSSL.crypto.X)o(50)o(9Na)o
+(me)16 b Fq(from)22 b(the)h Fc(c)l(erti\034c)l(ate_authority)30
+b Fl(OpenSSL.crypto.X)o(509)16 b Fq(certi\034cate)208
+2830 y(and)k(add)g(it)h(to)f(the)h(list)f(of)h(preferred)e
+(certi\034cate)h(signers)f(sen)n(t)h(to)g(the)h(clien)n(t)f(when)h
+(requesting)e(a)h(clien)n(t)h(certi\034cate.)208 2963
+y(New)27 b(in)h(v)n(ersion)e(0.10.)0 3110 y Fl(load_verify_loca)o(ti)o
+(ons)o(\()p Fc(p)l(em\034le,)e(c)l(ap)l(ath)6 b Fl(\))208
+3210 y Fq(Sp)r(ecify)24 b(where)f(CA)g(certi\034cates)g(for)g(v)n
+(eri\034cation)f(purp)r(oses)h(are)f(lo)r(cated.)35 b(These)23
+b(are)g(trusted)g(certi\034cates.)35 b(Note)208 3309
+y(that)c(the)g(certi\034cates)f(ha)n(v)n(e)f(to)i(b)r(e)g(in)g(PEM)h
+(format.)46 b(If)31 b(capath)f(is)h(passed,)f(it)i(m)n(ust)e(b)r(e)i(a)
+e(directory)f(prepared)208 3409 y(using)i(the)h Fl(c_rehash)c
+Fq(to)r(ol)j(included)h(with)g(Op)r(enSSL.)g(Either,)h(but)f(not)g(b)r
+(oth,)h(of)38 b Fc(p)l(em\034le)g Fq(or)31 b Fc(c)l(ap)l(ath)39
+b Fq(ma)n(y)31 b(b)r(e)208 3509 y Fl(None)p Fq(.)0 3655
+y Fl(set_default_veri)o(fy)o(_pa)o(th)o(s\()o(\))208
+3755 y Fq(Sp)r(ecify)20 b(that)h(the)g(platform)f(pro)n(vided)f(CA)h
+(certi\034cates)g(are)f(to)h(b)r(e)h(used)f(for)g(v)n(eri\034cation)f
+(purp)r(oses.)33 b(This)21 b(metho)r(d)208 3855 y(ma)n(y)26
+b(not)i(w)n(ork)e(prop)r(erly)h(on)g(OS)g(X.)0 4002 y
+Fl(load_tmp_dh\()p Fc(dh\034le)6 b Fl(\))208 4101 y Fq(Load)26
+b(parameters)g(for)h(Ephemeral)g(Di\036e-Hellman)h(from)g
+Fc(dh\034le)6 b Fq(.)0 4248 y Fl(set_app_data\()p Fc(data)g
+Fl(\))208 4348 y Fq(Asso)r(ciate)25 b Fc(data)33 b Fq(with)27
b(this)f(Con)n(text)f(ob)5 b(ject.)36 b Fc(data)e Fq(can)25
b(b)r(e)i(retriev)n(ed)d(later)i(using)f(the)i Fl(get_app_data)21
-b Fq(metho)r(d.)0 3884 y Fl(set_cipher_list\()o Fc(ciphers)7
-b Fl(\))208 3984 y Fq(Set)28 b(the)g(list)h(of)f(ciphers)f(to)h(b)r(e)g
+b Fq(metho)r(d.)0 4495 y Fl(set_cipher_list\()o Fc(ciphers)7
+b Fl(\))208 4594 y Fq(Set)28 b(the)g(list)h(of)f(ciphers)f(to)h(b)r(e)g
(used)g(in)g(this)h(con)n(text.)37 b(See)28 b(the)h(Op)r(enSSL)f(man)n
-(ual)f(for)h(more)f(information)g(\(e.g.)208 4083 y(ciphers\(1\)\))0
-4230 y Fl(set_info_callbac)o(k\()o Fc(c)l(al)t(lb)l(ack)9
-b Fl(\))208 4330 y Fq(Set)33 b(the)f(information)g(callbac)n(k)f(to)i
+(ual)f(for)h(more)f(information)g(\(e.g.)208 4694 y(ciphers\(1\)\))0
+4841 y Fl(set_info_callbac)o(k\()o Fc(c)l(al)t(lb)l(ack)9
+b Fl(\))208 4940 y Fq(Set)33 b(the)f(information)g(callbac)n(k)f(to)i
Fc(c)l(al)t(lb)l(ack)9 b Fq(.)54 b(This)32 b(function)h(will)g(b)r(e)g
(called)f(from)g(time)h(to)g(time)g(during)f(SSL)208
-4429 y(handshak)n(es.)49 b Fc(c)l(al)t(lb)l(ack)43 b
+5040 y(handshak)n(es.)49 b Fc(c)l(al)t(lb)l(ack)43 b
Fq(should)32 b(tak)n(e)g(three)g(argumen)n(ts:)45 b(a)32
b(Connection)g(ob)5 b(ject)32 b(and)g(t)n(w)n(o)g(in)n(tegers.)50
-b(The)32 b(\034rst)208 4529 y(in)n(teger)f(sp)r(eci\034es)g(where)h(in)
+b(The)32 b(\034rst)208 5140 y(in)n(teger)f(sp)r(eci\034es)g(where)h(in)
g(the)g(SSL)g(handshak)n(e)f(the)h(function)h(w)n(as)e(called,)h(and)g
-(the)g(other)g(the)g(return)f(co)r(de)208 4629 y(from)c(a)g(\(p)r
+(the)g(other)g(the)g(return)f(co)r(de)208 5239 y(from)c(a)g(\(p)r
(ossibly)g(failed\))h(in)n(ternal)f(function)h(call.)0
-4775 y Fl(set_options\()p Fc(options)7 b Fl(\))208 4875
-y Fq(A)n(dd)28 b(SSL)h(options.)38 b(Options)28 b(y)n(ou)f(ha)n(v)n(e)g
-(set)i(b)r(efore)f(are)f(not)h(cleared!)38 b(This)28
-b(metho)r(d)h(should)f(b)r(e)h(used)f(with)h(the)208
-4975 y Fl(OP_*)d Fq(constan)n(ts.)0 5122 y Fl(set_passwd_cb\()p
+5386 y Fl(set_options\()p Fc(options)7 b Fl(\))p 0 5549
+3901 4 v 0 5649 a Ff(12)2197 b(3)83 b Fl(OpenSSL)24 b
+Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
+end
+%%Page: 13 13
+TeXDict begin 13 12 bop 208 83 a Fq(A)n(dd)28 b(SSL)h(options.)38
+b(Options)28 b(y)n(ou)f(ha)n(v)n(e)g(set)i(b)r(efore)f(are)f(not)h
+(cleared!)38 b(This)28 b(metho)r(d)h(should)f(b)r(e)h(used)f(with)h
+(the)208 183 y Fl(OP_*)d Fq(constan)n(ts.)0 330 y Fl(set_passwd_cb\()p
Fc(c)l(al)t(lb)l(ack)9 b Fb([)p Fc(,)25 b(user)l(data)19
-b Fb(])p Fl(\))208 5221 y Fq(Set)42 b(the)g(passphrase)f(callbac)n(k)f
+b Fb(])p Fl(\))208 429 y Fq(Set)42 b(the)g(passphrase)f(callbac)n(k)f
(to)i Fc(c)l(al)t(lb)l(ack)9 b Fq(.)82 b(This)42 b(function)h(will)f(b)
r(e)g(called)g(when)g(a)g(priv)-5 b(ate)42 b(k)n(ey)f(with)h(a)208
-5321 y(passphrase)32 b(is)i(loaded.)56 b Fc(c)l(al)t(lb)l(ack)45
+529 y(passphrase)32 b(is)i(loaded.)56 b Fc(c)l(al)t(lb)l(ack)45
b Fq(m)n(ust)34 b(accept)g(three)g(p)r(ositional)f(argumen)n(ts.)56
-b(First,)35 b(an)f(in)n(teger)f(giving)h(the)p 0 5549
-3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26 b Ff(\026)i(An)g(interface)g
-(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)1611
-b(11)p eop end
-%%Page: 12 12
-TeXDict begin 12 11 bop 208 83 a Fq(maxim)n(um)32 b(length)i(of)f(the)g
-(passphrase)f(it)h(ma)n(y)g(return.)53 b(If)33 b(the)h(returned)e
-(passphrase)g(is)h(longer)f(than)h(this,)i(it)208 183
-y(will)29 b(b)r(e)h(truncated.)43 b(Second,)30 b(a)f(b)r(o)r(olean)g(v)
--5 b(alue)29 b(whic)n(h)h(will)g(b)r(e)g(true)f(if)h(the)g(user)f
-(should)g(b)r(e)h(prompted)g(for)f(the)208 282 y(passphrase)k(t)n(wice)
-h(and)h(the)g(callbac)n(k)f(should)g(v)n(erify)h(that)g(the)g(t)n(w)n
-(o)f(v)-5 b(alues)35 b(supplied)g(are)f(equal.)58 b(Third,)37
-b(the)208 382 y(v)-5 b(alue)27 b(giv)n(en)g(as)g(the)h
-Fc(user)l(data)35 b Fq(parameter)26 b(to)h Fl(set_passwd_cb)p
-Fq(.)32 b(If)c(an)g(error)d(o)r(ccurs,)i Fc(c)l(al)t(lb)l(ack)39
-b Fq(should)27 b(return)g(a)208 482 y(false)g(v)-5 b(alue)27
-b(\(e.g.)37 b(an)27 b(empt)n(y)h(string\).)0 628 y Fl(set_session_id\()
-p Fc(n)o(ame)6 b Fl(\))208 728 y Fq(Set)33 b(the)h(con)n(text)f
-Fc(name)39 b Fq(within)34 b(whic)n(h)f(a)g(session)f(can)h(b)r(e)h
-(reused)e(for)h(this)g(Con)n(text)g(ob)5 b(ject.)54 b(This)33
-b(is)g(needed)208 828 y(when)e(doing)g(session)g(resumption,)h(b)r
-(ecause)g(there)f(is)h(no)f(w)n(a)n(y)g(for)g(a)g(stored)g(session)f
-(to)i(kno)n(w)f(whic)n(h)g(Con)n(text)208 927 y(ob)5
-b(ject)27 b(it)h(is)f(asso)r(ciated)g(with.)37 b Fc(name)d
-Fq(ma)n(y)27 b(b)r(e)h(an)n(y)e(binary)h(data.)0 1074
-y Fl(set_timeout\()p Fc(time)l(out)8 b Fl(\))208 1174
-y Fq(Set)29 b(the)g(timeout)h(for)e(newly)h(created)f(sessions)g(for)h
-(this)g(Con)n(text)g(ob)5 b(ject)28 b(to)h Fc(time)l(out)8
+b(First,)35 b(an)f(in)n(teger)f(giving)h(the)208 628
+y(maxim)n(um)e(length)i(of)f(the)g(passphrase)f(it)h(ma)n(y)g(return.)
+53 b(If)33 b(the)h(returned)e(passphrase)g(is)h(longer)f(than)h(this,)i
+(it)208 728 y(will)29 b(b)r(e)h(truncated.)43 b(Second,)30
+b(a)f(b)r(o)r(olean)g(v)-5 b(alue)29 b(whic)n(h)h(will)g(b)r(e)g(true)f
+(if)h(the)g(user)f(should)g(b)r(e)h(prompted)g(for)f(the)208
+828 y(passphrase)k(t)n(wice)h(and)h(the)g(callbac)n(k)f(should)g(v)n
+(erify)h(that)g(the)g(t)n(w)n(o)f(v)-5 b(alues)35 b(supplied)g(are)f
+(equal.)58 b(Third,)37 b(the)208 927 y(v)-5 b(alue)27
+b(giv)n(en)g(as)g(the)h Fc(user)l(data)35 b Fq(parameter)26
+b(to)h Fl(set_passwd_cb)p Fq(.)32 b(If)c(an)g(error)d(o)r(ccurs,)i
+Fc(c)l(al)t(lb)l(ack)39 b Fq(should)27 b(return)g(a)208
+1027 y(false)g(v)-5 b(alue)27 b(\(e.g.)37 b(an)27 b(empt)n(y)h
+(string\).)0 1174 y Fl(set_session_id\()p Fc(n)o(ame)6
+b Fl(\))208 1273 y Fq(Set)33 b(the)h(con)n(text)f Fc(name)39
+b Fq(within)34 b(whic)n(h)f(a)g(session)f(can)h(b)r(e)h(reused)e(for)h
+(this)g(Con)n(text)g(ob)5 b(ject.)54 b(This)33 b(is)g(needed)208
+1373 y(when)e(doing)g(session)g(resumption,)h(b)r(ecause)g(there)f(is)h
+(no)f(w)n(a)n(y)g(for)g(a)g(stored)g(session)f(to)i(kno)n(w)f(whic)n(h)
+g(Con)n(text)208 1473 y(ob)5 b(ject)27 b(it)h(is)f(asso)r(ciated)g
+(with.)37 b Fc(name)d Fq(ma)n(y)27 b(b)r(e)h(an)n(y)e(binary)h(data.)0
+1620 y Fl(set_timeout\()p Fc(time)l(out)8 b Fl(\))208
+1719 y Fq(Set)29 b(the)g(timeout)h(for)e(newly)h(created)f(sessions)g
+(for)h(this)g(Con)n(text)g(ob)5 b(ject)28 b(to)h Fc(time)l(out)8
b Fq(.)41 b Fc(time)l(out)36 b Fq(m)n(ust)29 b(b)r(e)h(giv)n(en)208
-1273 y(in)f(\(whole\))f(seconds.)40 b(The)29 b(default)g(v)-5
+1819 y(in)f(\(whole\))f(seconds.)40 b(The)29 b(default)g(v)-5
b(alue)28 b(is)h(300)e(seconds.)40 b(See)29 b(the)g(Op)r(enSSL)g(man)n
-(ual)f(for)g(more)g(information)208 1373 y(\(e.g.)36
-b(SSL_CTX_set_timeout\(3\)\).)0 1520 y Fl(set_verify\()p
-Fc(mo)l(de,)26 b(c)l(al)t(lb)l(ack)9 b Fl(\))208 1620
+(ual)f(for)g(more)g(information)208 1918 y(\(e.g.)36
+b(SSL_CTX_set_timeout\(3\)\).)0 2065 y Fl(set_verify\()p
+Fc(mo)l(de,)26 b(c)l(al)t(lb)l(ack)9 b Fl(\))208 2165
y Fq(Set)36 b(the)h(v)n(eri\034cation)e(\035ags)g(for)h(this)h(Con)n
(text)f(ob)5 b(ject)36 b(to)g Fc(mo)l(de)44 b Fq(and)36
b(sp)r(ecify)g(that)h Fc(c)l(al)t(lb)l(ack)47 b Fq(should)36
-b(b)r(e)h(used)208 1719 y(for)30 b(v)n(eri\034cation)g(callbac)n(ks.)45
+b(b)r(e)h(used)208 2265 y(for)30 b(v)n(eri\034cation)g(callbac)n(ks.)45
b Fc(mo)l(de)38 b Fq(should)31 b(b)r(e)h(one)e(of)38
b Fl(VERIFY_NONE)26 b Fq(and)31 b Fl(VERIFY_PEER)p Fq(.)c(If)38
-b Fl(VERIFY_PEER)26 b Fq(is)208 1819 y(used,)j Fc(mo)l(de)36
+b Fl(VERIFY_PEER)26 b Fq(is)208 2364 y(used,)j Fc(mo)l(de)36
b Fq(can)29 b(b)r(e)g(OR:ed)g(with)g Fl(VERIFY_FAIL_IF_NO)o(_P)o(EE)o
(R_C)o(ER)o(T)23 b Fq(and)29 b Fl(VERIFY_CLIENT_O)o(NCE)22
-b Fq(to)29 b(further)208 1918 y(con)n(trol)23 b(the)j(b)r(eha)n(viour.)
+b Fq(to)29 b(further)208 2464 y(con)n(trol)23 b(the)j(b)r(eha)n(viour.)
34 b Fc(c)l(al)t(lb)l(ack)i Fq(should)25 b(tak)n(e)f(\034v)n(e)h
(argumen)n(ts:)34 b(A)25 b(Connection)g(ob)5 b(ject,)25
-b(an)g(X509)f(ob)5 b(ject,)25 b(and)208 2018 y(three)e(in)n(teger)g(v)
+b(an)g(X509)f(ob)5 b(ject,)25 b(and)208 2563 y(three)e(in)n(teger)g(v)
-5 b(ariables,)23 b(whic)n(h)h(are)f(in)h(turn)g(p)r(oten)n(tial)g
(error)d(n)n(um)n(b)r(er,)k(error)c(depth)k(and)f(return)f(co)r(de.)35
-b Fc(c)l(al)t(lb)l(ack)208 2118 y Fq(should)27 b(return)g(true)g(if)h
+b Fc(c)l(al)t(lb)l(ack)208 2663 y Fq(should)27 b(return)g(true)g(if)h
(v)n(eri\034cation)f(passes)f(and)h(false)h(otherwise.)0
-2265 y Fl(set_verify_depth)o(\()p Fc(depth)6 b Fl(\))208
-2364 y Fq(Set)36 b(the)g(maxim)n(um)f(depth)h(for)g(the)g
+2810 y Fl(set_verify_depth)o(\()p Fc(depth)6 b Fl(\))208
+2910 y Fq(Set)36 b(the)g(maxim)n(um)f(depth)h(for)g(the)g
(certi\034cate)f(c)n(hain)g(v)n(eri\034cation)f(that)i(shall)f(b)r(e)h
-(allo)n(w)n(ed)e(for)i(this)f(Con)n(text)208 2464 y(ob)5
-b(ject.)0 2611 y Fl(use_certificate\()o Fc(c)l(ert)j
-Fl(\))208 2710 y Fq(Use)27 b(the)h(certi\034cate)f Fc(c)l(ert)35
+(allo)n(w)n(ed)e(for)i(this)f(Con)n(text)208 3009 y(ob)5
+b(ject.)0 3156 y Fl(use_certificate\()o Fc(c)l(ert)j
+Fl(\))208 3256 y Fq(Use)27 b(the)h(certi\034cate)f Fc(c)l(ert)35
b Fq(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(X509)g(ob)5
-b(ject.)0 2857 y Fl(add_extra_chain_)o(ce)o(rt\()o Fc(c)l(ert)j
-Fl(\))208 2957 y Fq(A)n(dds)32 b(the)h(certi\034cate)f
+b(ject.)0 3403 y Fl(add_extra_chain_)o(ce)o(rt\()o Fc(c)l(ert)j
+Fl(\))208 3502 y Fq(A)n(dds)32 b(the)h(certi\034cate)f
Fc(c)l(ert)8 b Fq(,)34 b(whic)n(h)f(has)f(to)g(b)r(e)i(a)e(X509)f(ob)5
b(ject,)34 b(to)f(the)g(certi\034cate)f(c)n(hain)g(presen)n(ted)g
-(together)208 3056 y(with)c(the)g(certi\034cate.)0 3203
+(together)208 3602 y(with)c(the)g(certi\034cate.)0 3749
y Fl(use_certificate_)o(ch)o(ain)o(_f)o(il)o(e\()p Fc(\034)o(le)6
-b Fl(\))208 3303 y Fq(Load)26 b(a)h(certi\034cate)g(c)n(hain)g(from)h
+b Fl(\))208 3848 y Fq(Load)26 b(a)h(certi\034cate)g(c)n(hain)g(from)h
Fc(\034le)34 b Fq(whic)n(h)27 b(m)n(ust)h(b)r(e)g(PEM)g(enco)r(ded.)0
-3450 y Fl(use_privatekey\()p Fc(pkey)7 b Fl(\))208 3549
+3995 y Fl(use_privatekey\()p Fc(pkey)7 b Fl(\))208 4095
y Fq(Use)27 b(the)h(priv)-5 b(ate)27 b(k)n(ey)h Fc(pkey)36
b Fq(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(PKey)h(ob)5
-b(ject.)0 3711 y Fl(use_certificate_)o(fi)o(le\()o Fc(\034le)h
-Fb([)p Fc(,)24 b(format)d Fb(])p Fl(\))208 3810 y Fq(Load)i(the)h
+b(ject.)0 4256 y Fl(use_certificate_)o(fi)o(le\()o Fc(\034le)h
+Fb([)p Fc(,)24 b(format)d Fb(])p Fl(\))208 4356 y Fq(Load)i(the)h
(\034rst)g(certi\034cate)f(found)h(in)h Fc(\034le)6 b
Fq(.)36 b(The)24 b(certi\034cate)f(m)n(ust)h(b)r(e)h(in)f(the)g(format)
g(sp)r(eci\034ed)g(b)n(y)h Fc(format)8 b Fq(,)25 b(whic)n(h)208
-3910 y(is)i(either)g Fl(FILETYPE_PEM)c Fq(or)k Fl(FILETYPE_ASN1)p
+4455 y(is)i(either)g Fl(FILETYPE_PEM)c Fq(or)k Fl(FILETYPE_ASN1)p
Fq(.)k(The)d(default)g(is)f Fl(FILETYPE_PEM)p Fq(.)0
-4057 y Fl(use_privatekey_f)o(il)o(e\()p Fc(\034)o(le)6
-b Fb([)p Fc(,)25 b(format)20 b Fb(])p Fl(\))208 4156
+4602 y Fl(use_privatekey_f)o(il)o(e\()p Fc(\034)o(le)6
+b Fb([)p Fc(,)25 b(format)20 b Fb(])p Fl(\))208 4702
y Fq(Load)31 b(the)h(\034rst)g(priv)-5 b(ate)31 b(k)n(ey)g(found)i(in)f
Fc(\034le)6 b Fq(.)50 b(The)32 b(priv)-5 b(ate)32 b(k)n(ey)f(m)n(ust)h
(b)r(e)g(in)h(the)f(format)f(sp)r(eci\034ed)i(b)n(y)f
-Fc(format)8 b Fq(,)208 4256 y(whic)n(h)27 b(is)g(either)h
+Fc(format)8 b Fq(,)208 4801 y(whic)n(h)27 b(is)g(either)h
Fl(FILETYPE_PEM)22 b Fq(or)27 b Fl(FILETYPE_ASN1)p Fq(.)32
-b(The)27 b(default)h(is)g Fl(FILETYPE_PEM)p Fq(.)0 4519
-y Ff(Connection)e(objects)0 4720 y Fq(Connection)h(ob)5
-b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)0
-4866 y Fl(accept\(\))208 4966 y Fq(Call)33 b(the)g Fl(accept)e
-Fq(metho)r(d)j(of)f(the)h(underlying)f(so)r(c)n(k)n(et)f(and)h(set)h
-(up)g(SSL)f(on)g(the)h(returned)f(so)r(c)n(k)n(et,)h(using)f(the)208
-5066 y(Con)n(text)22 b(ob)5 b(ject)22 b(supplied)h(to)f(this)h
-(Connection)f(ob)5 b(ject)22 b(at)h(creation.)34 b(Returns)22
-b(a)g(pair)g Fl(\()p Fc(c)l(onn)6 b Fl(,)43 b Fc(addr)l(ess)7
-b Fl(\))p Fq(.)36 b(where)208 5165 y Fc(c)l(onn)d Fq(is)28
-b(the)g(new)f(Connection)g(ob)5 b(ject)28 b(created,)e(and)i
-Fc(addr)l(ess)35 b Fq(is)28 b(as)f(returned)g(b)n(y)g(the)h(so)r(c)n(k)
-n(et's)e Fl(accept)p Fq(.)0 5312 y Fl(bind\()p Fc(addr)l(ess)7
-b Fl(\))p 0 5549 3901 4 v 0 5649 a Ff(12)2197 b(3)83
-b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p
-eop end
-%%Page: 13 13
-TeXDict begin 13 12 bop 208 83 a Fq(Call)27 b(the)h Fl(bind)e
-Fq(metho)r(d)i(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
-230 y Fl(close\(\))208 330 y Fq(Call)i(the)h Fl(close)e
-Fq(metho)r(d)i(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)43
-b(Note:)e(If)31 b(y)n(ou)e(w)n(an)n(t)g(correct)f(SSL)i(closure,)f(y)n
-(ou)g(need)h(to)208 429 y(call)d(the)h Fl(shutdown)c
-Fq(metho)r(d)k(\034rst.)0 576 y Fl(connect\()p Fc(addr)l(ess)7
-b Fl(\))208 676 y Fq(Call)31 b(the)h Fl(connect)e Fq(metho)r(d)i(of)g
-(the)g(underlying)g(so)r(c)n(k)n(et)e(and)i(set)g(up)g(SSL)h(on)e(the)i
-(so)r(c)n(k)n(et,)f(using)f(the)h(Con)n(text)208 775
-y(ob)5 b(ject)27 b(supplied)h(to)f(this)h(Connection)f(ob)5
-b(ject)27 b(at)h(creation.)0 922 y Fl(connect_ex\()p
-Fc(addr)l(ess)7 b Fl(\))208 1022 y Fq(Call)24 b(the)g
-Fl(connect_ex)c Fq(metho)r(d)25 b(of)f(the)h(underlying)f(so)r(c)n(k)n
-(et)f(and)h(set)g(up)h(SSL)f(on)g(the)h(so)r(c)n(k)n(et,)f(using)g(the)
-g(Con)n(text)208 1121 y(ob)5 b(ject)35 b(supplied)g(to)h(this)f
-(Connection)g(ob)5 b(ject)36 b(at)f(creation.)59 b(Note)36
-b(that)f(if)h(the)g Fl(connect_ex)31 b Fq(metho)r(d)36
-b(of)g(the)208 1221 y(so)r(c)n(k)n(et)26 b(do)r(esn't)i(return)f(0,)g
-(SSL)h(w)n(on't)f(b)r(e)h(initialized.)0 1368 y Fl(do_handshake\(\))208
-1468 y Fq(P)n(erform)49 b(an)h(SSL)g(handshak)n(e)f(\(usually)h(called)
-g(after)f Fl(renegotiate)d Fq(or)j(one)h(of)57 b Fl(set_accept_stat)o
-(e)44 b Fq(or)208 1567 y Fl(set_accept_stat)o(e)p Fq(\).)31
+b(The)27 b(default)h(is)g Fl(FILETYPE_PEM)p Fq(.)0 5064
+y Ff(Connection)e(objects)0 5265 y Fq(Connection)h(ob)5
+b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)p
+0 5549 3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26 b Ff(\026)i(An)g
+(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)
+1611 b(13)p eop end
+%%Page: 14 14
+TeXDict begin 14 13 bop 0 83 a Fl(accept\(\))208 183
+y Fq(Call)33 b(the)g Fl(accept)e Fq(metho)r(d)j(of)f(the)h(underlying)f
+(so)r(c)n(k)n(et)f(and)h(set)h(up)g(SSL)f(on)g(the)h(returned)f(so)r(c)
+n(k)n(et,)h(using)f(the)208 282 y(Con)n(text)22 b(ob)5
+b(ject)22 b(supplied)h(to)f(this)h(Connection)f(ob)5
+b(ject)22 b(at)h(creation.)34 b(Returns)22 b(a)g(pair)g
+Fl(\()p Fc(c)l(onn)6 b Fl(,)43 b Fc(addr)l(ess)7 b Fl(\))p
+Fq(.)36 b(where)208 382 y Fc(c)l(onn)d Fq(is)28 b(the)g(new)f
+(Connection)g(ob)5 b(ject)28 b(created,)e(and)i Fc(addr)l(ess)35
+b Fq(is)28 b(as)f(returned)g(b)n(y)g(the)h(so)r(c)n(k)n(et's)e
+Fl(accept)p Fq(.)0 529 y Fl(bind\()p Fc(addr)l(ess)7
+b Fl(\))208 628 y Fq(Call)27 b(the)h Fl(bind)e Fq(metho)r(d)i(of)f(the)
+h(underlying)f(so)r(c)n(k)n(et.)0 775 y Fl(close\(\))208
+875 y Fq(Call)i(the)h Fl(close)e Fq(metho)r(d)i(of)g(the)g(underlying)f
+(so)r(c)n(k)n(et.)43 b(Note:)e(If)31 b(y)n(ou)e(w)n(an)n(t)g(correct)f
+(SSL)i(closure,)f(y)n(ou)g(need)h(to)208 975 y(call)d(the)h
+Fl(shutdown)c Fq(metho)r(d)k(\034rst.)0 1121 y Fl(connect\()p
+Fc(addr)l(ess)7 b Fl(\))208 1221 y Fq(Call)31 b(the)h
+Fl(connect)e Fq(metho)r(d)i(of)g(the)g(underlying)g(so)r(c)n(k)n(et)e
+(and)i(set)g(up)g(SSL)h(on)e(the)i(so)r(c)n(k)n(et,)f(using)f(the)h
+(Con)n(text)208 1321 y(ob)5 b(ject)27 b(supplied)h(to)f(this)h
+(Connection)f(ob)5 b(ject)27 b(at)h(creation.)0 1468
+y Fl(connect_ex\()p Fc(addr)l(ess)7 b Fl(\))208 1567
+y Fq(Call)24 b(the)g Fl(connect_ex)c Fq(metho)r(d)25
+b(of)f(the)h(underlying)f(so)r(c)n(k)n(et)f(and)h(set)g(up)h(SSL)f(on)g
+(the)h(so)r(c)n(k)n(et,)f(using)g(the)g(Con)n(text)208
+1667 y(ob)5 b(ject)35 b(supplied)g(to)h(this)f(Connection)g(ob)5
+b(ject)36 b(at)f(creation.)59 b(Note)36 b(that)f(if)h(the)g
+Fl(connect_ex)31 b Fq(metho)r(d)36 b(of)g(the)208 1766
+y(so)r(c)n(k)n(et)26 b(do)r(esn't)i(return)f(0,)g(SSL)h(w)n(on't)f(b)r
+(e)h(initialized.)0 1913 y Fl(do_handshake\(\))208 2013
+y Fq(P)n(erform)49 b(an)h(SSL)g(handshak)n(e)f(\(usually)h(called)g
+(after)f Fl(renegotiate)d Fq(or)j(one)h(of)57 b Fl(set_accept_stat)o(e)
+44 b Fq(or)208 2113 y Fl(set_accept_stat)o(e)p Fq(\).)31
b(This)d(can)f(raise)f(the)i(same)f(exceptions)g(as)g
-Fl(send)f Fq(and)h Fl(recv)p Fq(.)0 1714 y Fl(fileno\(\))208
-1814 y Fq(Retriev)n(e)f(the)i(\034le)g(descriptor)e(n)n(um)n(b)r(er)i
-(for)f(the)h(underlying)e(so)r(c)n(k)n(et.)0 1961 y Fl(listen\()p
-Fc(b)l(acklo)l(g)7 b Fl(\))208 2060 y Fq(Call)27 b(the)h
+Fl(send)f Fq(and)h Fl(recv)p Fq(.)0 2259 y Fl(fileno\(\))208
+2359 y Fq(Retriev)n(e)f(the)i(\034le)g(descriptor)e(n)n(um)n(b)r(er)i
+(for)f(the)h(underlying)e(so)r(c)n(k)n(et.)0 2506 y Fl(listen\()p
+Fc(b)l(acklo)l(g)7 b Fl(\))208 2606 y Fq(Call)27 b(the)h
Fl(listen)d Fq(metho)r(d)j(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
-2207 y Fl(get_app_data\(\))208 2307 y Fq(Retriev)n(e)f(application)h
-(data)g(as)g(set)h(b)n(y)g Fl(set_app_data)p Fq(.)0 2454
-y Fl(get_cipher_list\()o(\))208 2553 y Fq(Retriev)n(e)23
+2752 y Fl(get_app_data\(\))208 2852 y Fq(Retriev)n(e)f(application)h
+(data)g(as)g(set)h(b)n(y)g Fl(set_app_data)p Fq(.)0 2999
+y Fl(get_cipher_list\()o(\))208 3099 y Fq(Retriev)n(e)23
b(the)h(list)g(of)g(ciphers)g(used)g(b)n(y)f(the)i(Connection)e(ob)5
b(ject.)36 b(W)-9 b(ARNING:)25 b(This)f(API)h(has)e(c)n(hanged.)35
-b(It)24 b(used)208 2653 y(to)j(tak)n(e)g(an)g(optional)g(parameter)f
+b(It)24 b(used)208 3198 y(to)j(tak)n(e)g(an)g(optional)g(parameter)f
(and)h(just)h(return)g(a)f(string,)g(but)h(not)f(it)h(returns)f(the)h
-(en)n(tire)f(list)h(in)g(one)f(go.)0 2800 y Fl(get_context\(\))208
-2899 y Fq(Retriev)n(e)f(the)i(Con)n(text)f(ob)5 b(ject)28
-b(asso)r(ciated)e(with)i(this)g(Connection.)0 3046 y
-Fl(get_peer_certifi)o(ca)o(te\()o(\))208 3146 y Fq(Retriev)n(e)e(the)i
-(other)f(side's)g(certi\034cate)g(\(if)i(an)n(y\))0 3293
-y Fl(getpeername\(\))208 3392 y Fq(Call)e(the)h Fl(getpeername)23
+(en)n(tire)f(list)h(in)g(one)f(go.)0 3345 y Fl(get_client_ca_li)o(st)o
+(\(\))208 3445 y Fq(Retriev)n(e)e(the)i(list)g(of)f(preferred)g(clien)n
+(t)g(certi\034cate)g(issuers)g(sen)n(t)g(b)n(y)g(the)h(serv)n(er)e(as)h
+Fl(OpenSSL.crypto.)o(X50)o(9N)o(am)o(e)208 3544 y Fq(ob)5
+b(jects.)208 3677 y(If)25 b(this)g(is)f(a)h(clien)n(t)f
+Fl(Connection)p Fq(,)e(the)j(list)g(will)g(b)r(e)g(empt)n(y)f(un)n(til)
+h(the)h(connection)e(with)h(the)g(serv)n(er)e(is)h(established.)208
+3810 y(If)33 b(this)g(is)g(a)f(serv)n(er)g Fl(Connection)p
+Fq(,)e(return)i(the)h(list)h(of)e(certi\034cate)h(authorities)f(that)h
+(will)g(b)r(e)h(sen)n(t)e(or)g(has)h(b)r(een)208 3910
+y(sen)n(t)27 b(to)g(the)h(clien)n(t,)g(as)f(con)n(trolled)f(b)n(y)h
+(this)h Fl(Connection)p Fq('s)c Fl(Context)p Fq(.)208
+4042 y(New)j(in)h(v)n(ersion)e(0.10.)0 4189 y Fl(get_context\(\))208
+4289 y Fq(Retriev)n(e)g(the)i(Con)n(text)f(ob)5 b(ject)28
+b(asso)r(ciated)e(with)i(this)g(Connection.)0 4436 y
+Fl(get_peer_certifi)o(ca)o(te\()o(\))208 4535 y Fq(Retriev)n(e)e(the)i
+(other)f(side's)g(certi\034cate)g(\(if)i(an)n(y\))0 4682
+y Fl(getpeername\(\))208 4782 y Fq(Call)e(the)h Fl(getpeername)23
b Fq(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
-3539 y Fl(getsockname\(\))208 3639 y Fq(Call)g(the)h
+4929 y Fl(getsockname\(\))208 5028 y Fq(Call)g(the)h
Fl(getsockname)23 b Fq(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n
-(k)n(et.)0 3802 y Fl(getsockopt\()p Fc(level,)f(optname)6
-b Fb([)p Fc(,)31 b(bu\035en)18 b Fb(])p Fl(\))208 3902
+(k)n(et.)0 5192 y Fl(getsockopt\()p Fc(level,)f(optname)6
+b Fb([)p Fc(,)31 b(bu\035en)18 b Fb(])p Fl(\))208 5292
y Fq(Call)27 b(the)h Fl(getsockopt)23 b Fq(metho)r(d)28
-b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0 4049 y Fl(pending\(\))208
-4148 y Fq(Retriev)n(e)22 b(the)h(n)n(um)n(b)r(er)g(of)g(b)n(ytes)g
-(that)h(can)e(b)r(e)i(safely)f(read)f(from)h(the)g(SSL)h(bu\033er)f(\()
-p Fc(not)g Fq(the)h(underlying)e(transp)r(ort)208 4248
-y(bu\033er\).)0 4395 y Fl(recv\()p Fc(bufsize)6 b Fl(\))208
-4495 y Fq(Receiv)n(e)30 b(data)h(from)g(the)h(Connection.)47
-b(The)31 b(return)g(v)-5 b(alue)31 b(is)h(a)e(string)h(represen)n(ting)
-f(the)h(data)g(receiv)n(ed.)47 b(The)208 4594 y(maxim)n(um)27
-b(amoun)n(t)g(of)g(data)h(to)f(b)r(e)h(receiv)n(ed)e(at)i(once,)f(is)g
-(sp)r(eci\034ed)h(b)n(y)h Fc(bufsize)6 b Fq(.)0 4741
-y Fl(renegotiate\(\))208 4841 y Fq(Renegotiate)26 b(the)i(SSL)g
-(session.)36 b(Call)27 b(this)h(if)g(y)n(ou)f(wish)g(to)h(c)n(hange)e
-(cipher)h(suites)h(or)e(an)n(ything)h(lik)n(e)g(that.)0
-4988 y Fl(send\()p Fc(string)7 b Fl(\))208 5087 y Fq(Send)27
-b(the)h Fc(string)35 b Fq(data)27 b(to)h(the)g(Connection.)0
-5234 y Fl(sendall\()p Fc(string)7 b Fl(\))208 5334 y
-Fq(Send)30 b(all)f(of)h(the)g Fc(string)37 b Fq(data)29
-b(to)g(the)h(Connection.)43 b(This)30 b(calls)f Fl(send)f
-Fq(rep)r(eatedly)h(un)n(til)h(all)f(data)h(is)f(sen)n(t.)43
-b(If)30 b(an)p 0 5549 3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26
-b Ff(\026)i(An)g(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f
-(of)h(Op)r(enSSL)1611 b(13)p eop end
-%%Page: 14 14
-TeXDict begin 14 13 bop 208 83 a Fq(error)25 b(o)r(ccurs,)i(it's)h(imp)
-r(ossible)f(to)g(tell)h(ho)n(w)f(m)n(uc)n(h)h(data)f(has)g(b)r(een)h
-(sen)n(t.)0 230 y Fl(set_accept_state)o(\(\))208 330
-y Fq(Set)20 b(the)g(connection)f(to)h(w)n(ork)e(in)i(serv)n(er)e(mo)r
-(de.)34 b(The)20 b(handshak)n(e)f(will)h(b)r(e)g(handled)g
-(automatically)e(b)n(y)i(read/write.)0 476 y Fl(set_app_data\()p
-Fc(data)6 b Fl(\))208 576 y Fq(Asso)r(ciate)39 b Fc(data)47
-b Fq(with)40 b(this)g(Connection)g(ob)5 b(ject.)73 b
-Fc(data)47 b Fq(can)39 b(b)r(e)i(retriev)n(ed)d(later)h(using)h(the)g
-Fl(get_app_data)208 676 y Fq(metho)r(d.)0 823 y Fl(set_connect_stat)o
-(e\()o(\))208 922 y Fq(Set)21 b(the)g(connection)g(to)g(w)n(ork)e(in)i
+b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)p 0 5549 3901
+4 v 0 5649 a Ff(14)2197 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f
+(interface)h(to)f(Op)r(enSSL)p eop end
+%%Page: 15 15
+TeXDict begin 15 14 bop 0 83 a Fl(pending\(\))208 183
+y Fq(Retriev)n(e)22 b(the)h(n)n(um)n(b)r(er)g(of)g(b)n(ytes)g(that)h
+(can)e(b)r(e)i(safely)f(read)f(from)h(the)g(SSL)h(bu\033er)f(\()p
+Fc(not)g Fq(the)h(underlying)e(transp)r(ort)208 282 y(bu\033er\).)0
+429 y Fl(recv\()p Fc(bufsize)6 b Fl(\))208 529 y Fq(Receiv)n(e)30
+b(data)h(from)g(the)h(Connection.)47 b(The)31 b(return)g(v)-5
+b(alue)31 b(is)h(a)e(string)h(represen)n(ting)f(the)h(data)g(receiv)n
+(ed.)47 b(The)208 628 y(maxim)n(um)27 b(amoun)n(t)g(of)g(data)h(to)f(b)
+r(e)h(receiv)n(ed)e(at)i(once,)f(is)g(sp)r(eci\034ed)h(b)n(y)h
+Fc(bufsize)6 b Fq(.)0 775 y Fl(bio_write\()p Fc(bytes)h
+Fl(\))208 875 y Fq(If)27 b(the)h(Connection)f(w)n(as)f(created)h(with)g
+(a)g(memory)g(BIO,)g(this)g(metho)r(d)h(can)f(b)r(e)h(used)f(to)g(add)g
+(b)n(ytes)g(to)g(the)h(read)208 975 y(end)g(of)g(that)g(memory)f(BIO.)g
+(The)h(Connection)g(can)f(then)i(read)e(the)h(b)n(ytes)g(\(for)f
+(example,)h(in)g(resp)r(onse)f(to)h(a)f(call)208 1074
+y(to)g Fl(recv)p Fq(\).)0 1221 y Fl(renegotiate\(\))208
+1321 y Fq(Renegotiate)f(the)i(SSL)g(session.)36 b(Call)27
+b(this)h(if)g(y)n(ou)f(wish)g(to)h(c)n(hange)e(cipher)h(suites)h(or)e
+(an)n(ything)h(lik)n(e)g(that.)0 1468 y Fl(send\()p Fc(string)7
+b Fl(\))208 1567 y Fq(Send)27 b(the)h Fc(string)35 b
+Fq(data)27 b(to)h(the)g(Connection.)0 1714 y Fl(bio_read\()p
+Fc(bufsize)6 b Fl(\))208 1814 y Fq(If)31 b(the)g(Connection)g(w)n(as)f
+(created)g(with)i(a)e(memory)g(BIO,)h(this)g(metho)r(d)g(can)g(b)r(e)h
+(used)e(to)h(read)f(b)n(ytes)h(from)g(the)208 1913 y(write)d(end)g(of)g
+(that)h(memory)e(BIO.)h(Man)n(y)f(Connection)h(metho)r(ds)h(will)f(add)
+g(b)n(ytes)g(whic)n(h)g(m)n(ust)g(b)r(e)h(read)e(in)i(this)208
+2013 y(manner)c(or)h(the)g(bu\033er)h(will)f(ev)n(en)n(tually)f(\034ll)
+i(up)g(and)f(the)g(Connection)g(will)g(b)r(e)h(able)f(to)g(tak)n(e)g
+(no)g(further)g(actions.)0 2160 y Fl(sendall\()p Fc(string)7
+b Fl(\))208 2259 y Fq(Send)30 b(all)f(of)h(the)g Fc(string)37
+b Fq(data)29 b(to)g(the)h(Connection.)43 b(This)30 b(calls)f
+Fl(send)f Fq(rep)r(eatedly)h(un)n(til)h(all)f(data)h(is)f(sen)n(t.)43
+b(If)30 b(an)208 2359 y(error)25 b(o)r(ccurs,)i(it's)h(imp)r(ossible)f
+(to)g(tell)h(ho)n(w)f(m)n(uc)n(h)h(data)f(has)g(b)r(een)h(sen)n(t.)0
+2506 y Fl(set_accept_state)o(\(\))208 2606 y Fq(Set)20
+b(the)g(connection)f(to)h(w)n(ork)e(in)i(serv)n(er)e(mo)r(de.)34
+b(The)20 b(handshak)n(e)f(will)h(b)r(e)g(handled)g(automatically)e(b)n
+(y)i(read/write.)0 2752 y Fl(set_app_data\()p Fc(data)6
+b Fl(\))208 2852 y Fq(Asso)r(ciate)39 b Fc(data)47 b
+Fq(with)40 b(this)g(Connection)g(ob)5 b(ject.)73 b Fc(data)47
+b Fq(can)39 b(b)r(e)i(retriev)n(ed)d(later)h(using)h(the)g
+Fl(get_app_data)208 2952 y Fq(metho)r(d.)0 3099 y Fl(set_connect_stat)o
+(e\()o(\))208 3198 y Fq(Set)21 b(the)g(connection)g(to)g(w)n(ork)e(in)i
(clien)n(t)g(mo)r(de.)35 b(The)21 b(handshak)n(e)f(will)h(b)r(e)g
-(handled)g(automatically)f(b)n(y)h(read/write.)0 1069
-y Fl(setblocking\()p Fc(\035ag)7 b Fl(\))208 1169 y Fq(Call)27
+(handled)g(automatically)f(b)n(y)h(read/write.)0 3345
+y Fl(setblocking\()p Fc(\035ag)7 b Fl(\))208 3445 y Fq(Call)27
b(the)h Fl(setblocking)23 b Fq(metho)r(d)28 b(of)f(the)h(underlying)f
-(so)r(c)n(k)n(et.)0 1316 y Fl(setsockopt\()p Fc(level,)f(optname,)31
-b(value)6 b Fl(\))208 1415 y Fq(Call)27 b(the)h Fl(setsockopt)23
+(so)r(c)n(k)n(et.)0 3591 y Fl(setsockopt\()p Fc(level,)f(optname,)31
+b(value)6 b Fl(\))208 3691 y Fq(Call)27 b(the)h Fl(setsockopt)23
b Fq(metho)r(d)28 b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0
-1562 y Fl(shutdown\(\))208 1662 y Fq(Send)35 b(the)h(sh)n(utdo)n(wn)f
+3838 y Fl(shutdown\(\))208 3938 y Fq(Send)35 b(the)h(sh)n(utdo)n(wn)f
(message)f(to)h(the)h(Connection.)60 b(Returns)35 b(true)g(if)h(the)g
-(sh)n(utdo)n(wn)e(message)g(exc)n(hange)g(is)208 1761
+(sh)n(utdo)n(wn)e(message)g(exc)n(hange)g(is)208 4037
y(completed)25 b(and)g(false)h(otherwise)e(\(in)i(whic)n(h)g(case)e(y)n
(ou)h(call)g Fl(recv\(\))e Fq(or)i Fl(send\(\))e Fq(when)j(the)g
-(connection)f(b)r(ecomes)208 1861 y(readable/writeable.)0
-2008 y Fl(get_shutdown\(\))208 2107 y Fq(Get)70 b(the)g(sh)n(utdo)n(wn)
+(connection)f(b)r(ecomes)208 4137 y(readable/writeable.)0
+4284 y Fl(get_shutdown\(\))208 4383 y Fq(Get)70 b(the)g(sh)n(utdo)n(wn)
f(state)g(of)h(the)g(Connection.)162 b(Returns)69 b(a)h(bitv)n(ector)e
-(of)i(either)f(or)g(b)r(oth)h(of)208 2207 y Fc(SENT_SHUTDO)n(WN)39
-b Fq(and)27 b Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 2354
-y Fl(set_shutdown\()p Fc(state)6 b Fl(\))208 2454 y Fq(Set)21
+(of)i(either)f(or)g(b)r(oth)h(of)208 4483 y Fc(SENT_SHUTDO)n(WN)39
+b Fq(and)27 b Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 4630
+y Fl(set_shutdown\()p Fc(state)6 b Fl(\))208 4729 y Fq(Set)21
b(the)g(sh)n(utdo)n(wn)g(state)g(of)g(the)g(Connection.)34
b Fc(state)27 b Fq(is)21 b(a)g(bitv)n(ector)f(of)h(either)g(or)f(b)r
-(oth)i(of)27 b Fc(SENT_SHUTDO)n(WN)208 2553 y Fq(and)g
-Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 2700 y Fl(sock_shutdown\()p
-Fc(how)9 b Fl(\))208 2800 y Fq(Call)27 b(the)h Fl(shutdown)c
+(oth)i(of)27 b Fc(SENT_SHUTDO)n(WN)208 4829 y Fq(and)g
+Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 4976 y Fl(sock_shutdown\()p
+Fc(how)9 b Fl(\))208 5076 y Fq(Call)27 b(the)h Fl(shutdown)c
Fq(metho)r(d)k(of)g(the)g(underlying)e(so)r(c)n(k)n(et.)0
-2946 y Fl(state_string\(\))208 3046 y Fq(Retriev)n(e)g(a)i(v)n(erb)r
-(ose)e(string)g(detailing)i(the)g(state)f(of)h(the)f(Connection.)0
-3193 y Fl(want_read\(\))208 3293 y Fq(Chec)n(ks)f(if)i(more)f(data)g
+5222 y Fl(bio_shutdown\(\))208 5322 y Fq(If)j(the)h(Connection)f(w)n
+(as)f(created)g(with)i(a)f(memory)f(BIO,)h(this)h(metho)r(d)f(can)g(b)r
+(e)h(used)f(to)g(indicate)g(that)h(\020end)f(of)p 0 5549
+3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26 b Ff(\026)i(An)g(interface)g
+(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)1611
+b(15)p eop end
+%%Page: 16 16
+TeXDict begin 16 15 bop 208 83 a Fq(\034le\021)34 b(has)27
+b(b)r(een)h(reac)n(hed)e(on)h(the)h(read)f(end)h(of)f(that)h(memory)f
+(BIO.)0 230 y Fl(state_string\(\))208 330 y Fq(Retriev)n(e)f(a)i(v)n
+(erb)r(ose)e(string)g(detailing)i(the)g(state)f(of)h(the)f(Connection.)
+0 476 y Fl(client_random\(\))208 576 y Fq(Retriev)n(e)f(the)i(random)f
+(v)-5 b(alue)27 b(used)h(with)g(the)g(clien)n(t)f(hello)h(message.)0
+723 y Fl(server_random\(\))208 823 y Fq(Retriev)n(e)e(the)i(random)f(v)
+-5 b(alue)27 b(used)h(with)g(the)g(serv)n(er)e(hello)h(message.)0
+969 y Fl(master_key\(\))208 1069 y Fq(Retriev)n(e)f(the)i(v)-5
+b(alue)28 b(of)f(the)h(master)f(k)n(ey)g(for)g(this)h(session.)0
+1216 y Fl(want_read\(\))208 1316 y Fq(Chec)n(ks)e(if)i(more)f(data)g
(has)g(to)h(b)r(e)g(read)e(from)i(the)f(transp)r(ort)g(la)n(y)n(er)f
-(to)h(complete)h(an)f(op)r(eration.)0 3439 y Fl(want_write\(\))208
-3539 y Fq(Chec)n(ks)f(if)i(there)g(is)f(data)g(to)h(write)f(to)g(the)h
+(to)h(complete)h(an)f(op)r(eration.)0 1462 y Fl(want_write\(\))208
+1562 y Fq(Chec)n(ks)f(if)i(there)g(is)f(data)g(to)h(write)f(to)g(the)h
(transp)r(ort)f(la)n(y)n(er)f(to)h(complete)h(an)f(op)r(eration.)0
-3861 y Fr(4)114 b(Internals)0 4090 y Fq(W)-7 b(e)25 b(ran)g(in)n(to)f
+1882 y Fr(4)114 b(Internals)0 2111 y Fq(W)-7 b(e)25 b(ran)g(in)n(to)f
(three)h(main)g(problems)f(dev)n(eloping)g(this:)36 b(Exceptions,)25
b(callbac)n(ks)f(and)h(accessing)e(so)r(c)n(k)n(et)h(metho)r(ds.)36
-b(This)0 4190 y(is)27 b(what)h(this)g(c)n(hapter)e(is)i(ab)r(out.)0
-4469 y Fj(4.1)97 b(Exceptions)0 4670 y Fq(W)-7 b(e)52
+b(This)0 2210 y(is)27 b(what)h(this)g(c)n(hapter)e(is)i(ab)r(out.)0
+2488 y Fj(4.1)97 b(Exceptions)0 2688 y Fq(W)-7 b(e)52
b(realized)f(early)g(that)h(most)g(of)g(the)g(exceptions)f(w)n(ould)h
(b)r(e)g(raised)f(b)n(y)h(the)g(I/O)f(functions)h(of)g(Op)r(enSSL,)0
-4769 y(so)d(it)i(felt)f(natural)f(to)h(mimic)g(Op)r(enSSL's)g(error)e
+2788 y(so)d(it)i(felt)f(natural)f(to)h(mimic)g(Op)r(enSSL's)g(error)e
(co)r(de)i(system,)55 b(translating)48 b(them)j(in)n(to)e(Python)i
-(exceptions.)0 4869 y(This)30 b(naturally)e(giv)n(es)h(us)h(the)g
+(exceptions.)0 2887 y(This)30 b(naturally)e(giv)n(es)h(us)h(the)g
(exceptions)f Fl(SSL.ZeroReturnEr)o(ro)o(r)p Fq(,)24
b Fl(SSL.WantReadError)o Fq(,)h Fl(SSL.WantWriteEr)o(ro)o(r)p
-Fq(,)0 4969 y Fl(SSL.WantX509Look)o(up)o(Err)o(or)c Fq(and)27
-b Fl(SSL.SysCallError)p Fq(.)0 5115 y(F)-7 b(or)27 b(more)g
-(information)g(ab)r(out)g(this,)h(see)f(section)g(3.3.)p
-0 5549 3901 4 v 0 5649 a Ff(14)3368 b(4)83 b(Internals)p
-eop end
-%%Page: 15 15
-TeXDict begin 15 14 bop 0 83 a Fj(4.2)97 b(Callbacks)0
-283 y Fq(There)34 b(are)f(a)h(n)n(um)n(b)r(er)g(of)h(problems)e(with)i
-(callbac)n(ks.)56 b(First)34 b(of)g(all,)i(Op)r(enSSL)f(is)f(written)h
-(as)e(a)h(C)h(library)-7 b(,)34 b(it's)h(not)0 383 y(mean)n(t)26
-b(to)g(ha)n(v)n(e)e(Python)j(callbac)n(ks,)d(so)i(a)f(w)n(a)n(y)g
-(around)g(that)h(is)g(needed.)36 b(Another)26 b(problem)f(is)h(thread)g
-(supp)r(ort.)36 b(A)26 b(lot)0 483 y(of)h(the)g(Op)r(enSSL)g(I/O)e
-(functions)i(can)g(blo)r(c)n(k)f(if)h(the)g(so)r(c)n(k)n(et)f(is)g(in)h
-(blo)r(c)n(king)f(mo)r(de,)h(and)g(then)g(y)n(ou)f(w)n(an)n(t)g(other)g
-(Python)0 582 y(threads)i(to)g(b)r(e)h(able)g(to)f(do)h(other)f
-(things.)40 b(The)28 b(real)g(trouble)g(is)h(if)g(y)n(ou'v)n(e)e
-(released)h(the)h(global)e(CPython)i(in)n(terpreter)0
-682 y(lo)r(c)n(k)e(to)h(do)f(a)h(p)r(oten)n(tially)f(blo)r(c)n(king)g
-(op)r(eration,)g(and)h(the)g(op)r(eration)f(calls)g(a)g(callbac)n(k.)36
-b(Then)28 b(w)n(e)g(m)n(ust)g(tak)n(e)f(the)h(GIL)0 782
-y(bac)n(k,)f(since)g(calling)g(Python)h(APIs)g(without)g(holding)f(it)h
-(is)g(not)f(allo)n(w)n(ed.)0 929 y(There)d(are)f(t)n(w)n(o)g(solutions)
-h(to)g(the)h(\034rst)f(problem,)g(b)r(oth)h(of)f(whic)n(h)g(are)f
-(necessary)-7 b(.)34 b(The)25 b(\034rst)f(solution)f(to)h(use)h(is)f
-(if)g(the)h(C)0 1028 y(callbac)n(k)i(allo)n(ws)f(\021userdata\021)33
+Fq(,)0 2987 y Fl(SSL.WantX509Look)o(up)o(Err)o(or)c Fq(and)27
+b Fl(SSL.SysCallError)p Fq(.)0 3134 y(F)-7 b(or)27 b(more)g
+(information)g(ab)r(out)g(this,)h(see)f(section)g(3.3.)0
+3411 y Fj(4.2)97 b(Callbacks)0 3612 y Fq(There)34 b(are)f(a)h(n)n(um)n
+(b)r(er)g(of)h(problems)e(with)i(callbac)n(ks.)56 b(First)34
+b(of)g(all,)i(Op)r(enSSL)f(is)f(written)h(as)e(a)h(C)h(library)-7
+b(,)34 b(it's)h(not)0 3711 y(mean)n(t)26 b(to)g(ha)n(v)n(e)e(Python)j
+(callbac)n(ks,)d(so)i(a)f(w)n(a)n(y)g(around)g(that)h(is)g(needed.)36
+b(Another)26 b(problem)f(is)h(thread)g(supp)r(ort.)36
+b(A)26 b(lot)0 3811 y(of)h(the)g(Op)r(enSSL)g(I/O)e(functions)i(can)g
+(blo)r(c)n(k)f(if)h(the)g(so)r(c)n(k)n(et)f(is)g(in)h(blo)r(c)n(king)f
+(mo)r(de,)h(and)g(then)g(y)n(ou)f(w)n(an)n(t)g(other)g(Python)0
+3911 y(threads)i(to)g(b)r(e)h(able)g(to)f(do)h(other)f(things.)40
+b(The)28 b(real)g(trouble)g(is)h(if)g(y)n(ou'v)n(e)e(released)h(the)h
+(global)e(CPython)i(in)n(terpreter)0 4010 y(lo)r(c)n(k)e(to)h(do)f(a)h
+(p)r(oten)n(tially)f(blo)r(c)n(king)g(op)r(eration,)g(and)h(the)g(op)r
+(eration)f(calls)g(a)g(callbac)n(k.)36 b(Then)28 b(w)n(e)g(m)n(ust)g
+(tak)n(e)f(the)h(GIL)0 4110 y(bac)n(k,)f(since)g(calling)g(Python)h
+(APIs)g(without)g(holding)f(it)h(is)g(not)f(allo)n(w)n(ed.)0
+4257 y(There)d(are)f(t)n(w)n(o)g(solutions)h(to)g(the)h(\034rst)f
+(problem,)g(b)r(oth)h(of)f(whic)n(h)g(are)f(necessary)-7
+b(.)34 b(The)25 b(\034rst)f(solution)f(to)h(use)h(is)f(if)g(the)h(C)0
+4356 y(callbac)n(k)i(allo)n(ws)f(\021userdata\021)33
b(to)28 b(b)r(e)h(passed)e(to)h(it)g(\(an)g(arbitrary)e(p)r(oin)n(ter)i
(normally\).)37 b(This)28 b(is)g(great!)37 b(W)-7 b(e)28
-b(can)g(set)g(our)0 1128 y(Python)i(function)g(ob)5 b(ject)29
+b(can)g(set)g(our)0 4456 y(Python)i(function)g(ob)5 b(ject)29
b(as)f(the)i(real)f(userdata)f(and)h(em)n(ulate)g(userdata)f(for)h(the)
h(Python)f(function)h(in)g(another)e(w)n(a)n(y)-7 b(.)0
-1227 y(The)24 b(other)g(solution)g(can)g(b)r(e)h(used)g(if)g(an)f(ob)5
+4556 y(The)24 b(other)g(solution)g(can)g(b)r(e)h(used)g(if)g(an)f(ob)5
b(ject)24 b(with)h(an)f(\021app_data\021)29 b(system)c(alw)n(a)n(ys)d
(is)j(passed)e(to)h(the)h(callbac)n(k.)35 b(F)-7 b(or)0
-1327 y(example,)26 b(the)h(SSL)f(ob)5 b(ject)26 b(in)h(Op)r(enSSL)f
+4655 y(example,)26 b(the)h(SSL)f(ob)5 b(ject)26 b(in)h(Op)r(enSSL)f
(has)g(app_data)f(functions)i(and)f(in)h(e.g.)36 b(the)26
b(v)n(eri\034cation)f(callbac)n(ks,)g(y)n(ou)g(can)0
-1427 y(retriev)n(e)i(the)i(related)f(SSL)h(ob)5 b(ject.)39
+4755 y(retriev)n(e)i(the)i(related)f(SSL)h(ob)5 b(ject.)39
b(What)29 b(w)n(e)g(do)f(is)g(to)h(set)f(our)g(wrapp)r(er)g
Fl(Connection)c Fq(ob)5 b(ject)28 b(as)g(app_data)g(for)g(the)0
-1526 y(SSL)g(ob)5 b(ject,)27 b(and)h(w)n(e)f(can)g(easily)g(\034nd)h
-(the)g(Python)g(callbac)n(k.)0 1673 y(The)23 b(other)g(problem)g(is)g
+4855 y(SSL)g(ob)5 b(ject,)27 b(and)h(w)n(e)f(can)g(easily)g(\034nd)h
+(the)g(Python)g(callbac)n(k.)0 5001 y(The)23 b(other)g(problem)g(is)g
(solv)n(ed)f(using)h(thread)g(lo)r(cal)g(v)-5 b(ariables.)34
b(Whenev)n(er)22 b(the)i(GIL)g(is)f(released)f(b)r(efore)h(calling)f
-(in)n(to)h(an)0 1773 y(Op)r(enSSL)j(API,)g(the)g(PyThreadState)f(p)r
+(in)n(to)h(an)0 5101 y(Op)r(enSSL)j(API,)g(the)g(PyThreadState)f(p)r
(oin)n(ter)g(returned)g(b)n(y)h Fl(PyEval_SaveState)19
b Fq(is)25 b(stored)g(in)g(a)g(global)g(thread)g(lo)r(cal)0
-1872 y(v)-5 b(ariable)27 b(\(using)g(Python's)h(o)n(wn)f(TLS)h(API,)g
+5201 y(v)-5 b(ariable)27 b(\(using)g(Python's)h(o)n(wn)f(TLS)h(API,)g
Fl(PyThread_set_key_)o(va)o(lue)o Fq(\).)k(When)c(it)g(is)g(necessary)e
-(to)h(re-acquire)f(the)0 1972 y(GIL,)c(either)g(after)g(the)h(Op)r
+(to)h(re-acquire)f(the)0 5300 y(GIL,)c(either)g(after)g(the)h(Op)r
(enSSL)f(API)h(returns)e(or)h(in)g(a)g(C)g(callbac)n(k)f(in)n(v)n(ok)n
(ed)f(b)n(y)i(that)h(Op)r(enSSL)f(API,)h(the)g(v)-5 b(alue)22
-b(of)g(the)0 2072 y(thread)32 b(lo)r(cal)f(v)-5 b(ariable)32
+b(of)g(the)0 5400 y(thread)32 b(lo)r(cal)f(v)-5 b(ariable)32
b(is)g(retriev)n(ed)f(\()p Fl(PyThread_get_key)o(_va)o(lu)o(e)p
Fq(\))26 b(and)33 b(used)f(to)g(re-acquire)e(the)j(GIL.)f(This)h(allo)n
-(ws)0 2171 y(Python)f(threads)e(to)h(execute)h(while)f(Op)r(enSSL)g
-(APIs)h(are)f(running)f(and)i(allo)n(ws)e(use)h(of)g(an)n(y)f
-(particular)g(p)n(yOp)r(enSSL)0 2271 y(ob)5 b(ject)29
-b(from)f(an)n(y)g(Python)i(thread,)e(since)h(there)g(is)g(no)f(p)r
-(er-thread)g(state)h(asso)r(ciated)f(with)h(an)n(y)f(of)h(these)g(ob)5
-b(jects)28 b(and)0 2371 y(since)f(Op)r(enSSL)h(is)g(threadsafe)e(\(as)h
-(long)g(as)g(prop)r(erly)g(initialized,)g(as)g(p)n(yOp)r(enSSL)h
-(initializes)f(it\).)0 2650 y Fj(4.3)97 b(A)m(cessing)35
-b(So)s(ck)m(et)e(Metho)s(ds)0 2851 y Fq(W)-7 b(e)27 b(quic)n(kly)e(sa)n
+(ws)p 0 5549 3901 4 v 0 5649 a Ff(16)3368 b(4)83 b(Internals)p
+eop end
+%%Page: 17 17
+TeXDict begin 17 16 bop 0 83 a Fq(Python)32 b(threads)e(to)h(execute)h
+(while)f(Op)r(enSSL)g(APIs)h(are)f(running)f(and)i(allo)n(ws)e(use)h
+(of)g(an)n(y)f(particular)g(p)n(yOp)r(enSSL)0 183 y(ob)5
+b(ject)29 b(from)f(an)n(y)g(Python)i(thread,)e(since)h(there)g(is)g(no)
+f(p)r(er-thread)g(state)h(asso)r(ciated)f(with)h(an)n(y)f(of)h(these)g
+(ob)5 b(jects)28 b(and)0 282 y(since)f(Op)r(enSSL)h(is)g(threadsafe)e
+(\(as)h(long)g(as)g(prop)r(erly)g(initialized,)g(as)g(p)n(yOp)r(enSSL)h
+(initializes)f(it\).)0 562 y Fj(4.3)97 b(A)m(cessing)35
+b(So)s(ck)m(et)e(Metho)s(ds)0 762 y Fq(W)-7 b(e)27 b(quic)n(kly)e(sa)n
(w)h(the)g(b)r(ene\034t)h(of)g(wrapping)e(so)r(c)n(k)n(et)g(metho)r(ds)
h(in)h(the)g Fl(SSL.Connection)20 b Fq(class,)26 b(for)g(an)g(easy)f
-(transition)0 2950 y(in)n(to)e(using)f(SSL.)h(The)g(problem)f(here)h
-(is)f(that)h(the)h Fl(socket)c Fq(mo)r(dule)j(lac)n(ks)f(a)g(C)h(API,)h
-(and)e(all)h(the)g(metho)r(ds)g(are)f(declared)0 3050
+(transition)0 862 y(in)n(to)e(using)f(SSL.)h(The)g(problem)f(here)h(is)
+f(that)h(the)h Fl(socket)c Fq(mo)r(dule)j(lac)n(ks)f(a)g(C)h(API,)h
+(and)e(all)h(the)g(metho)r(ds)g(are)f(declared)0 962
y(static.)36 b(One)27 b(approac)n(h)d(w)n(ould)i(b)r(e)h(to)f(ha)n(v)n
(e)g Fl(OpenSSL)d Fq(as)j(a)g(submo)r(dule)h(to)f(the)h
Fl(socket)d Fq(mo)r(dule,)j(placing)f(all)g(the)h(co)r(de)0
-3149 y(in)j(`)p Fp(so)r(ck)n(etmo)r(dule.c)p Fq(',)h(but)f(this)g(is)g
+1061 y(in)j(`)p Fp(so)r(ck)n(etmo)r(dule.c)p Fq(',)h(but)f(this)g(is)g
(ob)n(viously)e(not)i(a)f(go)r(o)r(d)g(solution,)h(since)g(y)n(ou)f
(migh)n(t)g(not)h(w)n(an)n(t)f(to)h(imp)r(ort)g(tonnes)f(of)0
-3249 y(extra)f(stu\033)h(y)n(ou're)e(not)i(going)e(to)i(use)f(when)h
+1161 y(extra)f(stu\033)h(y)n(ou're)e(not)i(going)e(to)i(use)f(when)h
(imp)r(orting)f(the)i Fl(socket)c Fq(mo)r(dule.)40 b(The)29
-b(other)f(approac)n(h)e(is)j(to)f(someho)n(w)0 3349 y(get)33
+b(other)f(approac)n(h)e(is)j(to)f(someho)n(w)0 1261 y(get)33
b(a)g(p)r(oin)n(ter)g(to)h(the)f(metho)r(d)h(to)g(b)r(e)f(called,)i
(either)e(the)h(C)g(function,)h(or)e(a)g(callable)f(Python)i(ob)5
-b(ject.)54 b(This)34 b(is)f(not)0 3448 y(really)26 b(a)i(go)r(o)r(d)f
+b(ject.)54 b(This)34 b(is)f(not)0 1360 y(really)26 b(a)i(go)r(o)r(d)f
(solution)g(either,)g(since)g(there's)h(a)f(lot)g(of)h(lo)r(okups)f(in)
-n(v)n(olv)n(ed.)0 3595 y(The)h(w)n(a)n(y)f(it)h(w)n(orks)e(is)i(that)h
+n(v)n(olv)n(ed.)0 1507 y(The)h(w)n(a)n(y)f(it)h(w)n(orks)e(is)i(that)h
(y)n(ou)e(ha)n(v)n(e)g(to)g(supply)h(a)g(\020)7 b Fl(socket)p
Fq(-lik)n(e\021)31 b(transp)r(ort)c(ob)5 b(ject)28 b(to)f(the)i
-Fl(SSL.Connection)p Fq(.)j(The)0 3695 y(only)24 b(requiremen)n(t)f(of)i
+Fl(SSL.Connection)p Fq(.)j(The)0 1607 y(only)24 b(requiremen)n(t)f(of)i
(this)f(ob)5 b(ject)24 b(is)h(that)f(it)h(has)f(a)g Fl(fileno\(\))d
Fq(metho)r(d)k(that)f(returns)g(a)g(\034le)g(descriptor)f(that's)i(v)-5
-b(alid)24 b(at)0 3794 y(the)g(C)g(lev)n(el)f(\(i.e.)36
+b(alid)24 b(at)0 1706 y(the)g(C)g(lev)n(el)f(\(i.e.)36
b(y)n(ou)23 b(can)h(use)f(the)i(system)e(calls)g(read)g(and)h(write\).)
35 b(If)25 b(y)n(ou)e(w)n(an)n(t)g(to)h(use)f(the)h Fl(connect\(\))c
-Fq(or)j Fl(accept\(\))0 3894 y Fq(metho)r(ds)29 b(of)h(the)f
+Fq(or)j Fl(accept\(\))0 1806 y Fq(metho)r(ds)29 b(of)h(the)f
Fl(SSL.Connection)24 b Fq(ob)5 b(ject,)29 b(the)h(transp)r(ort)e(ob)5
b(ject)29 b(has)f(to)h(supply)h(suc)n(h)f(metho)r(ds)g(to)r(o.)41
-b(Apart)29 b(from)0 3994 y(them,)c(an)n(y)e(metho)r(d)h(lo)r(okups)f
+b(Apart)29 b(from)0 1906 y(them,)c(an)n(y)e(metho)r(d)h(lo)r(okups)f
(in)h(the)f Fl(SSL.Connection)18 b Fq(ob)5 b(ject)24
b(that)f(fail)h(are)f(passed)f(on)i(to)f(the)h(underlying)f(transp)r
-(ort)0 4093 y(ob)5 b(ject.)0 4240 y(F)-7 b(uture)25 b(c)n(hanges)f
+(ort)0 2005 y(ob)5 b(ject.)0 2152 y(F)-7 b(uture)25 b(c)n(hanges)f
(migh)n(t)h(b)r(e)g(to)g(allo)n(w)f(Python-lev)n(el)g(transp)r(ort)g
(ob)5 b(jects,)25 b(that)g(instead)g(of)g(ha)n(ving)g
-Fl(fileno\(\))d Fq(metho)r(ds,)0 4340 y(ha)n(v)n(e)h
+Fl(fileno\(\))d Fq(metho)r(ds,)0 2252 y(ha)n(v)n(e)h
Fl(read\(\))g Fq(and)h Fl(write\(\))e Fq(metho)r(ds,)k(so)e(more)f(adv)
-5 b(anced)24 b(features)h(of)f(Python)h(can)g(b)r(e)g(used.)35
-b(This)25 b(w)n(ould)f(probably)0 4439 y(en)n(tail)36
+b(This)25 b(w)n(ould)f(probably)0 2351 y(en)n(tail)36
b(some)g(sort)g(of)g(Op)r(enSSL)h(\020BIOs\021,)g(but)g(con)n(v)n
(erting)e(Python)i(strings)e(bac)n(k)h(and)g(forth)g(is)h(exp)r(ensiv)n
-(e,)h(so)e(this)0 4539 y(shouldn't)f(b)r(e)h(used)f(unless)g(necessary)
+(e,)h(so)e(this)0 2451 y(shouldn't)f(b)r(e)h(used)f(unless)g(necessary)
-7 b(.)57 b(Other)35 b(nice)g(things)g(w)n(ould)g(b)r(e)g(to)g(b)r(e)h
(able)e(to)h(pass)g(in)g(di\033eren)n(t)g(transp)r(ort)0
-4639 y(ob)5 b(jects)41 b(for)g(reading)f(and)h(writing,)j(but)e(then)g
+2551 y(ob)5 b(jects)41 b(for)g(reading)f(and)h(writing,)j(but)e(then)g
(the)g Fl(fileno\(\))c Fq(metho)r(d)k(of)47 b Fl(SSL.Connection)36
-b Fq(b)r(ecomes)41 b(virtually)0 4738 y(useless.)36 b(Also,)27
+b Fq(b)r(ecomes)41 b(virtually)0 2650 y(useless.)36 b(Also,)27
b(should)h(the)g(metho)r(d)g(resolution)e(b)r(e)i(used)g(on)f(the)h
(read-transp)r(ort)d(or)i(the)h(write-transp)r(ort?)p
-0 5549 3901 4 v 0 5649 a Ff(4.2)82 b(Callbacks)3302 b(15)p
-eop end
+0 5549 3901 4 v 0 5649 a Ff(4.3)82 b(A)n(cessing)26 b(So)r(ck)n(et)h
+(Metho)r(ds)2744 b(17)p eop end
%%Trailer
userdict /end-hook known{end-hook}if