~torsten/pyopenssl/bio-layer-support

« back to all changes in this revision

Viewing changes to doc/html/openssl-connection.html

  • Committer: Jean-Paul Calderone
  • Date: 2011-04-11 23:26:11 UTC
  • mfrom: (143.1.6 release-0.12)
  • Revision ID: exarkun@divmod.com-20110411232611-z1xtswwjxqorzjrn
Merge 0.12 release branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
Connection objects have the following methods:
52
52
 
53
53
<P>
54
 
<dl><dt><b><a name='l2h-175'><tt class='method'>accept</tt></a></b>()
 
54
<dl><dt><b><a name='l2h-179'><tt class='method'>accept</tt></a></b>()
55
55
<dd>
56
56
Call the <tt class="method">accept</tt> method of the underlying socket and set up SSL on the
57
57
returned socket, using the Context object supplied to this Connection object at
61
61
</dl>
62
62
 
63
63
<P>
64
 
<dl><dt><b><a name='l2h-176'><tt class='method'>bind</tt></a></b>(<var>address</var>)
 
64
<dl><dt><b><a name='l2h-180'><tt class='method'>bind</tt></a></b>(<var>address</var>)
65
65
<dd>
66
66
Call the <tt class="method">bind</tt> method of the underlying socket.
67
67
</dl>
68
68
 
69
69
<P>
70
 
<dl><dt><b><a name='l2h-177'><tt class='method'>close</tt></a></b>()
 
70
<dl><dt><b><a name='l2h-181'><tt class='method'>close</tt></a></b>()
71
71
<dd>
72
72
Call the <tt class="method">close</tt> method of the underlying socket. Note: If you want
73
73
correct SSL closure, you need to call the <tt class="method">shutdown</tt> method first.
74
74
</dl>
75
75
 
76
76
<P>
77
 
<dl><dt><b><a name='l2h-178'><tt class='method'>connect</tt></a></b>(<var>address</var>)
 
77
<dl><dt><b><a name='l2h-182'><tt class='method'>connect</tt></a></b>(<var>address</var>)
78
78
<dd>
79
79
Call the <tt class="method">connect</tt> method of the underlying socket and set up SSL on the
80
80
socket, using the Context object supplied to this Connection object at
82
82
</dl>
83
83
 
84
84
<P>
85
 
<dl><dt><b><a name='l2h-179'><tt class='method'>connect_ex</tt></a></b>(<var>address</var>)
 
85
<dl><dt><b><a name='l2h-183'><tt class='method'>connect_ex</tt></a></b>(<var>address</var>)
86
86
<dd>
87
87
Call the <tt class="method">connect_ex</tt> method of the underlying socket and set up SSL on
88
88
the socket, using the Context object supplied to this Connection object at
91
91
</dl>
92
92
 
93
93
<P>
94
 
<dl><dt><b><a name='l2h-180'><tt class='method'>do_handshake</tt></a></b>()
 
94
<dl><dt><b><a name='l2h-184'><tt class='method'>do_handshake</tt></a></b>()
95
95
<dd>
96
96
Perform an SSL handshake (usually called after <tt class="method">renegotiate</tt> or one of
97
97
<tt class="method">set_accept_state</tt> or <tt class="method">set_accept_state</tt>). This can raise the
99
99
</dl>
100
100
 
101
101
<P>
102
 
<dl><dt><b><a name='l2h-181'><tt class='method'>fileno</tt></a></b>()
 
102
<dl><dt><b><a name='l2h-185'><tt class='method'>fileno</tt></a></b>()
103
103
<dd>
104
104
Retrieve the file descriptor number for the underlying socket.
105
105
</dl>
106
106
 
107
107
<P>
108
 
<dl><dt><b><a name='l2h-182'><tt class='method'>listen</tt></a></b>(<var>backlog</var>)
 
108
<dl><dt><b><a name='l2h-186'><tt class='method'>listen</tt></a></b>(<var>backlog</var>)
109
109
<dd>
110
110
Call the <tt class="method">listen</tt> method of the underlying socket.
111
111
</dl>
112
112
 
113
113
<P>
114
 
<dl><dt><b><a name='l2h-183'><tt class='method'>get_app_data</tt></a></b>()
 
114
<dl><dt><b><a name='l2h-187'><tt class='method'>get_app_data</tt></a></b>()
115
115
<dd>
116
116
Retrieve application data as set by <tt class="method">set_app_data</tt>.
117
117
</dl>
118
118
 
119
119
<P>
120
 
<dl><dt><b><a name='l2h-184'><tt class='method'>get_cipher_list</tt></a></b>()
 
120
<dl><dt><b><a name='l2h-188'><tt class='method'>get_cipher_list</tt></a></b>()
121
121
<dd>
122
122
Retrieve the list of ciphers used by the Connection object. WARNING: This API
123
123
has changed. It used to take an optional parameter and just return a string,
125
125
</dl>
126
126
 
127
127
<P>
128
 
<dl><dt><b><a name='l2h-185'><tt class='method'>get_client_ca_list</tt></a></b>()
 
128
<dl><dt><b><a name='l2h-189'><tt class='method'>get_client_ca_list</tt></a></b>()
129
129
<dd>
130
130
Retrieve the list of preferred client certificate issuers sent by the server
131
131
as <tt class="class">OpenSSL.crypto.X509Name</tt> objects.
146
146
</dl>
147
147
 
148
148
<P>
149
 
<dl><dt><b><a name='l2h-186'><tt class='method'>get_context</tt></a></b>()
 
149
<dl><dt><b><a name='l2h-190'><tt class='method'>get_context</tt></a></b>()
150
150
<dd>
151
151
Retrieve the Context object associated with this Connection.
152
152
</dl>
153
153
 
154
154
<P>
155
 
<dl><dt><b><a name='l2h-187'><tt class='method'>get_peer_certificate</tt></a></b>()
 
155
<dl><dt><b><a name='l2h-191'><tt class='method'>get_peer_certificate</tt></a></b>()
156
156
<dd>
157
157
Retrieve the other side's certificate (if any)
158
158
</dl>
159
159
 
160
160
<P>
161
 
<dl><dt><b><a name='l2h-188'><tt class='method'>getpeername</tt></a></b>()
 
161
<dl><dt><b><a name='l2h-192'><tt class='method'>getpeername</tt></a></b>()
162
162
<dd>
163
163
Call the <tt class="method">getpeername</tt> method of the underlying socket.
164
164
</dl>
165
165
 
166
166
<P>
167
 
<dl><dt><b><a name='l2h-189'><tt class='method'>getsockname</tt></a></b>()
 
167
<dl><dt><b><a name='l2h-193'><tt class='method'>getsockname</tt></a></b>()
168
168
<dd>
169
169
Call the <tt class="method">getsockname</tt> method of the underlying socket.
170
170
</dl>
171
171
 
172
172
<P>
173
 
<dl><dt><b><a name='l2h-190'><tt class='method'>getsockopt</tt></a></b>(<var>level, optname</var><big>[</big><var>, buflen</var><big>]</big>)
 
173
<dl><dt><b><a name='l2h-194'><tt class='method'>getsockopt</tt></a></b>(<var>level, optname</var><big>[</big><var>, buflen</var><big>]</big>)
174
174
<dd>
175
175
Call the <tt class="method">getsockopt</tt> method of the underlying socket.
176
176
</dl>
177
177
 
178
178
<P>
179
 
<dl><dt><b><a name='l2h-191'><tt class='method'>pending</tt></a></b>()
 
179
<dl><dt><b><a name='l2h-195'><tt class='method'>pending</tt></a></b>()
180
180
<dd>
181
181
Retrieve the number of bytes that can be safely read from the SSL buffer
182
182
(<i>not</i> the underlying transport buffer).
183
183
</dl>
184
184
 
185
185
<P>
186
 
<dl><dt><b><a name='l2h-192'><tt class='method'>recv</tt></a></b>(<var>bufsize</var>)
 
186
<dl><dt><b><a name='l2h-196'><tt class='method'>recv</tt></a></b>(<var>bufsize</var>)
187
187
<dd>
188
188
Receive data from the Connection. The return value is a string representing the
189
189
data received. The maximum amount of data to be received at once, is specified
191
191
</dl>
192
192
 
193
193
<P>
194
 
<dl><dt><b><a name='l2h-193'><tt class='method'>bio_write</tt></a></b>(<var>bytes</var>)
 
194
<dl><dt><b><a name='l2h-197'><tt class='method'>bio_write</tt></a></b>(<var>bytes</var>)
195
195
<dd>
196
196
If the Connection was created with a memory BIO, this method can be used to add
197
197
bytes to the read end of that memory BIO.  The Connection can then read the
199
199
</dl>
200
200
 
201
201
<P>
202
 
<dl><dt><b><a name='l2h-194'><tt class='method'>renegotiate</tt></a></b>()
 
202
<dl><dt><b><a name='l2h-198'><tt class='method'>renegotiate</tt></a></b>()
203
203
<dd>
204
204
Renegotiate the SSL session. Call this if you wish to change cipher suites or
205
205
anything like that.
206
206
</dl>
207
207
 
208
208
<P>
209
 
<dl><dt><b><a name='l2h-195'><tt class='method'>send</tt></a></b>(<var>string</var>)
 
209
<dl><dt><b><a name='l2h-199'><tt class='method'>send</tt></a></b>(<var>string</var>)
210
210
<dd>
211
211
Send the <var>string</var> data to the Connection.
212
212
</dl>
213
213
 
214
214
<P>
215
 
<dl><dt><b><a name='l2h-196'><tt class='method'>bio_read</tt></a></b>(<var>bufsize</var>)
 
215
<dl><dt><b><a name='l2h-200'><tt class='method'>bio_read</tt></a></b>(<var>bufsize</var>)
216
216
<dd>
217
217
If the Connection was created with a memory BIO, this method can be used to
218
218
read bytes from the write end of that memory BIO.  Many Connection methods will
221
221
</dl>
222
222
 
223
223
<P>
224
 
<dl><dt><b><a name='l2h-197'><tt class='method'>sendall</tt></a></b>(<var>string</var>)
 
224
<dl><dt><b><a name='l2h-201'><tt class='method'>sendall</tt></a></b>(<var>string</var>)
225
225
<dd>
226
226
Send all of the <var>string</var> data to the Connection. This calls <tt class="method">send</tt>
227
227
repeatedly until all data is sent. If an error occurs, it's impossible to tell
229
229
</dl>
230
230
 
231
231
<P>
232
 
<dl><dt><b><a name='l2h-198'><tt class='method'>set_accept_state</tt></a></b>()
 
232
<dl><dt><b><a name='l2h-202'><tt class='method'>set_accept_state</tt></a></b>()
233
233
<dd>
234
234
Set the connection to work in server mode. The handshake will be handled
235
235
automatically by read/write.
236
236
</dl>
237
237
 
238
238
<P>
239
 
<dl><dt><b><a name='l2h-199'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
 
239
<dl><dt><b><a name='l2h-203'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
240
240
<dd>
241
241
Associate <var>data</var> with this Connection object. <var>data</var> can be retrieved
242
242
later using the <tt class="method">get_app_data</tt> method.
243
243
</dl>
244
244
 
245
245
<P>
246
 
<dl><dt><b><a name='l2h-200'><tt class='method'>set_connect_state</tt></a></b>()
 
246
<dl><dt><b><a name='l2h-204'><tt class='method'>set_connect_state</tt></a></b>()
247
247
<dd>
248
248
Set the connection to work in client mode. The handshake will be handled
249
249
automatically by read/write.
250
250
</dl>
251
251
 
252
252
<P>
253
 
<dl><dt><b><a name='l2h-201'><tt class='method'>setblocking</tt></a></b>(<var>flag</var>)
 
253
<dl><dt><b><a name='l2h-205'><tt class='method'>setblocking</tt></a></b>(<var>flag</var>)
254
254
<dd>
255
255
Call the <tt class="method">setblocking</tt> method of the underlying socket.
256
256
</dl>
257
257
 
258
258
<P>
259
 
<dl><dt><b><a name='l2h-202'><tt class='method'>setsockopt</tt></a></b>(<var>level, optname, value</var>)
 
259
<dl><dt><b><a name='l2h-206'><tt class='method'>setsockopt</tt></a></b>(<var>level, optname, value</var>)
260
260
<dd>
261
261
Call the <tt class="method">setsockopt</tt> method of the underlying socket.
262
262
</dl>
263
263
 
264
264
<P>
265
 
<dl><dt><b><a name='l2h-203'><tt class='method'>shutdown</tt></a></b>()
 
265
<dl><dt><b><a name='l2h-207'><tt class='method'>shutdown</tt></a></b>()
266
266
<dd>
267
267
Send the shutdown message to the Connection. Returns true if the shutdown
268
268
message exchange is completed and false otherwise (in which case you call
271
271
</dl>
272
272
 
273
273
<P>
274
 
<dl><dt><b><a name='l2h-204'><tt class='method'>get_shutdown</tt></a></b>()
 
274
<dl><dt><b><a name='l2h-208'><tt class='method'>get_shutdown</tt></a></b>()
275
275
<dd>
276
276
Get the shutdown state of the Connection.  Returns a bitvector of either or
277
277
both of <var>SENT_SHUTDOWN</var> and <var>RECEIVED_SHUTDOWN</var>.
278
278
</dl>
279
279
 
280
280
<P>
281
 
<dl><dt><b><a name='l2h-205'><tt class='method'>set_shutdown</tt></a></b>(<var>state</var>)
 
281
<dl><dt><b><a name='l2h-209'><tt class='method'>set_shutdown</tt></a></b>(<var>state</var>)
282
282
<dd>
283
283
Set the shutdown state of the Connection.  <var>state</var> is a bitvector of
284
284
either or both of <var>SENT_SHUTDOWN</var> and <var>RECEIVED_SHUTDOWN</var>.
285
285
</dl>
286
286
 
287
287
<P>
288
 
<dl><dt><b><a name='l2h-206'><tt class='method'>sock_shutdown</tt></a></b>(<var>how</var>)
 
288
<dl><dt><b><a name='l2h-210'><tt class='method'>sock_shutdown</tt></a></b>(<var>how</var>)
289
289
<dd>
290
290
Call the <tt class="method">shutdown</tt> method of the underlying socket.
291
291
</dl>
292
292
 
293
293
<P>
294
 
<dl><dt><b><a name='l2h-207'><tt class='method'>bio_shutdown</tt></a></b>()
 
294
<dl><dt><b><a name='l2h-211'><tt class='method'>bio_shutdown</tt></a></b>()
295
295
<dd>
296
296
If the Connection was created with a memory BIO, this method can be used to
297
297
indicate that ``end of file'' has been reached on the read end of that memory
299
299
</dl>
300
300
 
301
301
<P>
302
 
<dl><dt><b><a name='l2h-208'><tt class='method'>state_string</tt></a></b>()
 
302
<dl><dt><b><a name='l2h-212'><tt class='method'>state_string</tt></a></b>()
303
303
<dd>
304
304
Retrieve a verbose string detailing the state of the Connection.
305
305
</dl>
306
306
 
307
307
<P>
308
 
<dl><dt><b><a name='l2h-209'><tt class='method'>client_random</tt></a></b>()
 
308
<dl><dt><b><a name='l2h-213'><tt class='method'>client_random</tt></a></b>()
309
309
<dd>
310
310
Retrieve the random value used with the client hello message.
311
311
</dl>
312
312
 
313
313
<P>
314
 
<dl><dt><b><a name='l2h-210'><tt class='method'>server_random</tt></a></b>()
 
314
<dl><dt><b><a name='l2h-214'><tt class='method'>server_random</tt></a></b>()
315
315
<dd>
316
316
Retrieve the random value used with the server hello message.
317
317
</dl>
318
318
 
319
319
<P>
320
 
<dl><dt><b><a name='l2h-211'><tt class='method'>master_key</tt></a></b>()
 
320
<dl><dt><b><a name='l2h-215'><tt class='method'>master_key</tt></a></b>()
321
321
<dd>
322
322
Retrieve the value of the master key for this session.
323
323
</dl>
324
324
 
325
325
<P>
326
 
<dl><dt><b><a name='l2h-212'><tt class='method'>want_read</tt></a></b>()
 
326
<dl><dt><b><a name='l2h-216'><tt class='method'>want_read</tt></a></b>()
327
327
<dd>
328
328
Checks if more data has to be read from the transport layer to complete an
329
329
operation.
330
330
</dl>
331
331
 
332
332
<P>
333
 
<dl><dt><b><a name='l2h-213'><tt class='method'>want_write</tt></a></b>()
 
333
<dl><dt><b><a name='l2h-217'><tt class='method'>want_write</tt></a></b>()
334
334
<dd>
335
335
Checks if there is data to write to the transport layer to complete an
336
336
operation.