# Method SSL.sslfile()->create()

Method create

  `SSL.sslfile SSL.sslfile(`Stdio.File` `stream`, `SSL.context` `ctx`, `int`|`void` `is_client`, `int`|`void` `is_blocking`, `SSL.Constants.ProtocolVersion`|`void` `min_version`, `SSL.Constants.ProtocolVersion`|`void` `max_version`)`

Description

  Create an SSL connection over an open `stream`.

Parameter `stream`

  Open socket or pipe to create the connection over.

Parameter `ctx`

  The SSL context.

Parameter `is_client`

  If is set then a client-side connection is started, server-side otherwise.

Parameter `is_blocking`

  If is set then the stream is initially set in blocking mode, nonblocking mode otherwise.

Parameter `min_version`

  The minimum minor version of SSL to support. Defaults to `PROTOCOL_SSL_3_0`.

Parameter `max_version`

  The maximum minor version of SSL to support. Defaults to `PROTOCOL_minor`.

  The backend used by `stream` is taken over and restored after the connection is closed (see close and shutdown). The callbacks and id in `stream` are overwritten.

Throws

  Throws errors on handshake failure in blocking client mode.