# Class SSL.handshake

Inheritance graph

Description

  SSL.handshake keeps the state relevant for SSL handshaking. This includes a pointer to a context object (which doesn't change), various buffers, a pointer to a session object (reuse or created as appropriate), and pending read and write states being negotiated.

  Each connection will have two sets or read and write state: The current read and write states used for encryption, and pending read and write states to be taken into use when the current keyexchange handshake is finished.

Variable client_cert_types
Variable client_cert_distinguished_names

  ``array`(`int`) SSL.handshake.client_cert_types`
  ``array`(`string`) SSL.handshake.client_cert_distinguished_names`

Description

  A few storage variables for client certificate handling on the client side.

Variable client_random
Variable server_random

  ``string` SSL.handshake.client_random`
  ``string` SSL.handshake.server_random`

Description

  Random cookies, sent and received with the hello-messages.

Method create

  `SSL.handshake SSL.handshake(`int` `is_server`, `void`|`SSL.context` `ctx`, `void`|`ProtocolVersion` `min_version`, `void`|`ProtocolVersion` `max_version`)`

Parameter `is_server`

  Whether this is the server end of the connection or not.

Parameter `ctx`

  The context for the connection.

Parameter `min_version`

  Minimum version of SSL to support. Defaults to Constants.PROTOCOL_SSL_3_0.

Parameter `max_version`

  Maximum version of SSL to support. Defaults to Constants.PROTOCOL_minor.