head	1.2;
access;
symbols
	perseant-exfatfs-base-20250801:1.2
	perseant-exfatfs-base-20240630:1.2
	perseant-exfatfs:1.2.0.24
	perseant-exfatfs-base:1.2
	cjep_sun2x:1.2.0.22
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.20
	cjep_staticlib_x-base:1.2
	phil-wifi-20200421:1.2
	phil-wifi-20200411:1.2
	phil-wifi-20200406:1.2
	pgoyette-compat-merge-20190127:1.2
	pgoyette-compat-20190127:1.2
	pgoyette-compat-20190118:1.2
	pgoyette-compat-1226:1.2
	pgoyette-compat-1126:1.2
	pgoyette-compat-1020:1.2
	pgoyette-compat-0930:1.2
	pgoyette-compat-0906:1.2
	pgoyette-compat-0728:1.2
	pgoyette-compat-0625:1.2
	pgoyette-compat-0521:1.2
	pgoyette-compat-0502:1.2
	pgoyette-compat-0422:1.2
	pgoyette-compat-0415:1.2
	pgoyette-compat-0407:1.2
	pgoyette-compat-0330:1.2
	pgoyette-compat-0322:1.2
	pgoyette-compat-0315:1.2
	pgoyette-compat:1.2.0.18
	pgoyette-compat-base:1.2
	perseant-stdc-iso10646:1.2.0.16
	perseant-stdc-iso10646-base:1.2
	prg-localcount2-base3:1.2
	prg-localcount2-base2:1.2
	prg-localcount2-base1:1.2
	prg-localcount2:1.2.0.14
	prg-localcount2-base:1.2
	pgoyette-localcount-20170426:1.2
	bouyer-socketcan-base1:1.2
	pgoyette-localcount-20170320:1.2
	bouyer-socketcan:1.2.0.12
	bouyer-socketcan-base:1.2
	pgoyette-localcount-20170107:1.2
	pgoyette-localcount-20161104:1.2
	localcount-20160914:1.2
	pgoyette-localcount-20160806:1.2
	pgoyette-localcount-20160726:1.2
	pgoyette-localcount:1.2.0.10
	pgoyette-localcount-base:1.2
	netbsd-5-2-3-RELEASE:1.1.1.1
	netbsd-5-1-5-RELEASE:1.1.1.1
	yamt-pagecache-base9:1.2
	yamt-pagecache-tag8:1.2
	tls-earlyentropy:1.2.0.6
	tls-earlyentropy-base:1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2
	riastradh-drm2-base3:1.2
	netbsd-5-2-2-RELEASE:1.1.1.1
	netbsd-5-1-4-RELEASE:1.1.1.1
	netbsd-5-2-1-RELEASE:1.1.1.1
	netbsd-5-1-3-RELEASE:1.1.1.1
	agc-symver:1.2.0.8
	agc-symver-base:1.2
	tls-maxphys-base:1.2
	yamt-pagecache-base8:1.2
	netbsd-5-2:1.1.1.1.0.54
	yamt-pagecache-base7:1.2
	netbsd-5-2-RELEASE:1.1.1.1
	netbsd-5-2-RC1:1.1.1.1
	yamt-pagecache-base6:1.2
	yamt-pagecache-base5:1.2
	yamt-pagecache-base4:1.2
	netbsd-5-1-2-RELEASE:1.1.1.1
	netbsd-5-1-1-RELEASE:1.1.1.1
	yamt-pagecache-base3:1.2
	yamt-pagecache-base2:1.2
	yamt-pagecache:1.2.0.4
	yamt-pagecache-base:1.2
	bouyer-quota2-nbase:1.2
	bouyer-quota2:1.2.0.2
	bouyer-quota2-base:1.2
	matt-nb5-mips64-premerge-20101231:1.1.1.1
	matt-nb5-pq3:1.1.1.1.0.52
	matt-nb5-pq3-base:1.1.1.1
	netbsd-5-1:1.1.1.1.0.46
	netbsd-5-1-RELEASE:1.1.1.1
	netbsd-5-1-RC4:1.1.1.1
	matt-nb5-mips64-k15:1.1.1.1
	netbsd-5-1-RC3:1.1.1.1
	netbsd-5-1-RC2:1.1.1.1
	netbsd-5-1-RC1:1.1.1.1
	netbsd-5-0-2-RELEASE:1.1.1.1
	matt-nb5-mips64-premerge-20091211:1.1.1.1
	matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.1.1.1
	matt-nb4-mips64-k7-u2a-k9b:1.1.1.1
	matt-nb5-mips64-u1-k1-k5:1.1.1.1
	matt-nb5-mips64:1.1.1.1.0.44
	netbsd-5-0-1-RELEASE:1.1.1.1
	jym-xensuspend-nbase:1.1.1.1
	netbsd-5-0:1.1.1.1.0.42
	netbsd-5-0-RELEASE:1.1.1.1
	netbsd-5-0-RC4:1.1.1.1
	netbsd-5-0-RC3:1.1.1.1
	netbsd-5-0-RC2:1.1.1.1
	jym-xensuspend:1.1.1.1.0.40
	jym-xensuspend-base:1.1.1.1
	netbsd-5-0-RC1:1.1.1.1
	netbsd-5:1.1.1.1.0.38
	netbsd-5-base:1.1.1.1
	matt-mips64-base2:1.1.1.1
	matt-mips64:1.1.1.1.0.36
	mjf-devfs2:1.1.1.1.0.34
	mjf-devfs2-base:1.1.1.1
	netbsd-4-0-1-RELEASE:1.1.1.1
	wrstuden-revivesa-base-3:1.1.1.1
	wrstuden-revivesa-base-2:1.1.1.1
	wrstuden-fixsa-newbase:1.1.1.1
	wrstuden-revivesa-base-1:1.1.1.1
	yamt-pf42-base4:1.1.1.1
	yamt-pf42-base3:1.1.1.1
	hpcarm-cleanup-nbase:1.1.1.1
	yamt-pf42-baseX:1.1.1.1
	yamt-pf42-base2:1.1.1.1
	OPENSSL_SNAP_20080509:1.1.1.1
	wrstuden-revivesa:1.1.1.1.0.32
	wrstuden-revivesa-base:1.1.1.1
	yamt-pf42:1.1.1.1.0.30
	yamt-pf42-base:1.1.1.1
	keiichi-mipv6:1.1.1.1.0.28
	keiichi-mipv6-base:1.1.1.1
	matt-armv6-nbase:1.1.1.1
	matt-armv6-prevmlocking:1.1.1.1
	wrstuden-fixsa-base-1:1.1.1.1
	netbsd-4-0:1.1.1.1.0.26
	netbsd-4-0-RELEASE:1.1.1.1
	cube-autoconf:1.1.1.1.0.24
	cube-autoconf-base:1.1.1.1
	netbsd-4-0-RC5:1.1.1.1
	netbsd-4-0-RC4:1.1.1.1
	netbsd-4-0-RC3:1.1.1.1
	netbsd-4-0-RC2:1.1.1.1
	netbsd-4-0-RC1:1.1.1.1
	matt-armv6:1.1.1.1.0.22
	matt-armv6-base:1.1.1.1
	matt-mips64-base:1.1.1.1
	hpcarm-cleanup:1.1.1.1.0.20
	hpcarm-cleanup-base:1.1.1.1
	netbsd-3-1-1-RELEASE:1.1.1.1
	netbsd-3-0-3-RELEASE:1.1.1.1
	wrstuden-fixsa:1.1.1.1.0.18
	wrstuden-fixsa-base:1.1.1.1
	openssl_0_9_8e:1.1.1.1
	abandoned-netbsd-4-base:1.1.1.1
	abandoned-netbsd-4:1.1.1.1.0.12
	openssl_0_9_8d:1.1.1.1
	netbsd-3-1:1.1.1.1.0.14
	netbsd-3-1-RELEASE:1.1.1.1
	netbsd-3-0-2-RELEASE:1.1.1.1
	netbsd-3-1-RC4:1.1.1.1
	netbsd-3-1-RC3:1.1.1.1
	netbsd-3-1-RC2:1.1.1.1
	netbsd-3-1-RC1:1.1.1.1
	netbsd-4:1.1.1.1.0.16
	netbsd-4-base:1.1.1.1
	netbsd-3-0-1-RELEASE:1.1.1.1
	openssl_0_9_8b:1.1.1.1
	netbsd-3-0:1.1.1.1.0.10
	netbsd-3-0-RELEASE:1.1.1.1
	netbsd-3-0-RC6:1.1.1.1
	netbsd-3-0-RC5:1.1.1.1
	netbsd-3-0-RC4:1.1.1.1
	openssl_0_9_8a:1.1.1.1
	netbsd-3-0-RC3:1.1.1.1
	netbsd-3-0-RC2:1.1.1.1
	netbsd-3-0-RC1:1.1.1.1
	netbsd-2-0-3-RELEASE:1.1.1.1
	netbsd-2-1:1.1.1.1.0.8
	netbsd-2-1-RELEASE:1.1.1.1
	netbsd-2-1-RC6:1.1.1.1
	netbsd-2-1-RC5:1.1.1.1
	netbsd-2-1-RC4:1.1.1.1
	netbsd-2-1-RC3:1.1.1.1
	netbsd-2-1-RC2:1.1.1.1
	netbsd-2-1-RC1:1.1.1.1
	openssl_0_9_7g:1.1.1.1
	openssl_0_9_7f:1.1.1.1
	netbsd-2-0-2-RELEASE:1.1.1.1
	netbsd-3:1.1.1.1.0.6
	netbsd-3-base:1.1.1.1
	netbsd-2-0-1-RELEASE:1.1.1.1
	netbsd-2:1.1.1.1.0.4
	netbsd-2-base:1.1.1.1
	netbsd-2-0-RELEASE:1.1.1.1
	netbsd-2-0-RC5:1.1.1.1
	netbsd-2-0-RC4:1.1.1.1
	netbsd-2-0-RC3:1.1.1.1
	netbsd-2-0-RC2:1.1.1.1
	netbsd-2-0-RC1:1.1.1.1
	netbsd-2-0:1.1.1.1.0.2
	netbsd-2-0-base:1.1.1.1
	openssl_0_9_7d:1.1.1.1
	netbsd-1-6-PATCH002-RELEASE:1.1.1.1.48.2
	netbsd-1-6-PATCH002:1.1.1.1.48.2
	netbsd-1-6-PATCH002-RC4:1.1.1.1.48.2
	netbsd-1-6-PATCH002-RC3:1.1.1.1.48.2
	netbsd-1-6-PATCH002-RC2:1.1.1.1.48.2
	openssl_0_9_7c:1.1.1.1
	netbsd-1-6-PATCH002-RC1:1.1.1.1.48.2
	openssl_0_9_7b:1.1.1.1
	netbsd-1-6-PATCH001:1.1.1.1.48.2
	netbsd-1-6-PATCH001-RELEASE:1.1.1.1.48.2
	netbsd-1-6-PATCH001-RC3:1.1.1.1.48.2
	netbsd-1-6-PATCH001-RC2:1.1.1.1.48.2
	netbsd-1-6-PATCH001-RC1:1.1.1.1.48.2
	fvdl_fs64_base:1.1.1.1
	netbsd-1-6-RELEASE:1.1.1.1.48.2
	netbsd-1-6-RC3:1.1.1.1.48.2
	netbsd-1-5:1.1.1.1.0.50
	netbsd-1-6-RC2:1.1.1.1.48.2
	netbsd-1-6-RC1:1.1.1.1.48.2
	openssl_0_9_6g:1.1.1.1
	openssl_0_9_6f:1.1.1.1
	netbsd-1-6:1.1.1.1.0.48
	openssl_0_9_6e:1.1.1.1
	OPENSSL:1.1.1;
locks; strict;
comment	@# @;


1.2
date	2009.07.20.22.56.46;	author christos;	state dead;
branches;
next	1.1;

1.1
date	2002.07.31.00.08.20;	author itojun;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2002.07.31.00.08.20;	author itojun;	state Exp;
branches
	1.1.1.1.48.1
	1.1.1.1.50.1;
next	;

1.1.1.1.48.1
date	2002.07.31.00.08.20;	author lukem;	state dead;
branches;
next	1.1.1.1.48.2;

1.1.1.1.48.2
date	2002.08.02.12.00.33;	author lukem;	state Exp;
branches;
next	;

1.1.1.1.50.1
date	2002.07.31.00.08.20;	author he;	state dead;
branches;
next	1.1.1.1.50.2;

1.1.1.1.50.2
date	2002.08.29.16.41.39;	author he;	state Exp;
branches;
next	;


desc
@@


1.2
log
@Don't lets this linger around forever. Causes hidden bugs.
@
text
@=pod

=head1 NAME

SSL_do_handshake - perform a TLS/SSL handshake

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 int SSL_do_handshake(SSL *ssl);

=head1 DESCRIPTION

SSL_do_handshake() will wait for a SSL/TLS handshake to take place. If the
connection is in client mode, the handshake will be started. The handshake
routines may have to be explicitly set in advance using either
L<SSL_set_connect_state(3)|SSL_set_connect_state(3)> or
L<SSL_set_accept_state(3)|SSL_set_accept_state(3)>.

=head1 NOTES

The behaviour of SSL_do_handshake() depends on the underlying BIO.

If the underlying BIO is B<blocking>, SSL_do_handshake() will only return
once the handshake has been finished or an error occurred, except for SGC
(Server Gated Cryptography). For SGC, SSL_do_handshake() may return with -1,
but SSL_get_error() will yield B<SSL_ERROR_WANT_READ/WRITE> and
SSL_do_handshake() should be called again.

If the underlying BIO is B<non-blocking>, SSL_do_handshake() will also return
when the underlying BIO could not satisfy the needs of SSL_do_handshake()
to continue the handshake. In this case a call to SSL_get_error() with the
return value of SSL_do_handshake() will yield B<SSL_ERROR_WANT_READ> or
B<SSL_ERROR_WANT_WRITE>. The calling process then must repeat the call after
taking appropriate action to satisfy the needs of SSL_do_handshake().
The action depends on the underlying BIO. When using a non-blocking socket,
nothing is to be done, but select() can be used to check for the required
condition. When using a buffering BIO, like a BIO pair, data must be written
into or retrieved out of the BIO before being able to continue.

=head1 RETURN VALUES

The following return values can occur:

=over 4

=item 1

The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
established.

=item 0

The TLS/SSL handshake was not successful but was shut down controlled and
by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
return value B<ret> to find out the reason.

=item E<lt>0

The TLS/SSL handshake was not successful because a fatal error occurred either
at the protocol level or a connection failure occurred. The shutdown was
not clean. It can also occur of action is need to continue the operation
for non-blocking BIOs. Call SSL_get_error() with the return value B<ret>
to find out the reason.

=back

=head1 SEE ALSO

L<SSL_get_error(3)|SSL_get_error(3)>, L<SSL_connect(3)|SSL_connect(3)>,
L<SSL_accept(3)|SSL_accept(3)>, L<ssl(3)|ssl(3)>, L<bio(3)|bio(3)>,
L<SSL_set_connect_state(3)|SSL_set_connect_state(3)>

=cut
@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@OpenSSL 0.9.6e.  includes major security fixes (already applied)
@
text
@@


1.1.1.1.50.1
log
@file SSL_do_handshake.pod was added on branch netbsd-1-5 on 2002-08-29 16:41:39 +0000
@
text
@d1 75
@


1.1.1.1.50.2
log
@Pull up revision 1.1.1.1 (requested by itojun,he):
  Update OpenSSL to version 0.9.6g.  Includes major version bump for
  libcrypto and all the dependent libraries.
@
text
@a0 75
=pod

=head1 NAME

SSL_do_handshake - perform a TLS/SSL handshake

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 int SSL_do_handshake(SSL *ssl);

=head1 DESCRIPTION

SSL_do_handshake() will wait for a SSL/TLS handshake to take place. If the
connection is in client mode, the handshake will be started. The handshake
routines may have to be explicitly set in advance using either
L<SSL_set_connect_state(3)|SSL_set_connect_state(3)> or
L<SSL_set_accept_state(3)|SSL_set_accept_state(3)>.

=head1 NOTES

The behaviour of SSL_do_handshake() depends on the underlying BIO.

If the underlying BIO is B<blocking>, SSL_do_handshake() will only return
once the handshake has been finished or an error occurred, except for SGC
(Server Gated Cryptography). For SGC, SSL_do_handshake() may return with -1,
but SSL_get_error() will yield B<SSL_ERROR_WANT_READ/WRITE> and
SSL_do_handshake() should be called again.

If the underlying BIO is B<non-blocking>, SSL_do_handshake() will also return
when the underlying BIO could not satisfy the needs of SSL_do_handshake()
to continue the handshake. In this case a call to SSL_get_error() with the
return value of SSL_do_handshake() will yield B<SSL_ERROR_WANT_READ> or
B<SSL_ERROR_WANT_WRITE>. The calling process then must repeat the call after
taking appropriate action to satisfy the needs of SSL_do_handshake().
The action depends on the underlying BIO. When using a non-blocking socket,
nothing is to be done, but select() can be used to check for the required
condition. When using a buffering BIO, like a BIO pair, data must be written
into or retrieved out of the BIO before being able to continue.

=head1 RETURN VALUES

The following return values can occur:

=over 4

=item 1

The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
established.

=item 0

The TLS/SSL handshake was not successful but was shut down controlled and
by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
return value B<ret> to find out the reason.

=item E<lt>0

The TLS/SSL handshake was not successful because a fatal error occurred either
at the protocol level or a connection failure occurred. The shutdown was
not clean. It can also occur of action is need to continue the operation
for non-blocking BIOs. Call SSL_get_error() with the return value B<ret>
to find out the reason.

=back

=head1 SEE ALSO

L<SSL_get_error(3)|SSL_get_error(3)>, L<SSL_connect(3)|SSL_connect(3)>,
L<SSL_accept(3)|SSL_accept(3)>, L<ssl(3)|ssl(3)>, L<bio(3)|bio(3)>,
L<SSL_set_connect_state(3)|SSL_set_connect_state(3)>

=cut
@


1.1.1.1.48.1
log
@file SSL_do_handshake.pod was added on branch netbsd-1-6 on 2002-08-02 12:00:33 +0000
@
text
@d1 75
@


1.1.1.1.48.2
log
@Pull up revision 1.1 (requested by itojun in ticket #607):
sync to head for openssl 0.9.6e
@
text
@a0 75
=pod

=head1 NAME

SSL_do_handshake - perform a TLS/SSL handshake

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 int SSL_do_handshake(SSL *ssl);

=head1 DESCRIPTION

SSL_do_handshake() will wait for a SSL/TLS handshake to take place. If the
connection is in client mode, the handshake will be started. The handshake
routines may have to be explicitly set in advance using either
L<SSL_set_connect_state(3)|SSL_set_connect_state(3)> or
L<SSL_set_accept_state(3)|SSL_set_accept_state(3)>.

=head1 NOTES

The behaviour of SSL_do_handshake() depends on the underlying BIO.

If the underlying BIO is B<blocking>, SSL_do_handshake() will only return
once the handshake has been finished or an error occurred, except for SGC
(Server Gated Cryptography). For SGC, SSL_do_handshake() may return with -1,
but SSL_get_error() will yield B<SSL_ERROR_WANT_READ/WRITE> and
SSL_do_handshake() should be called again.

If the underlying BIO is B<non-blocking>, SSL_do_handshake() will also return
when the underlying BIO could not satisfy the needs of SSL_do_handshake()
to continue the handshake. In this case a call to SSL_get_error() with the
return value of SSL_do_handshake() will yield B<SSL_ERROR_WANT_READ> or
B<SSL_ERROR_WANT_WRITE>. The calling process then must repeat the call after
taking appropriate action to satisfy the needs of SSL_do_handshake().
The action depends on the underlying BIO. When using a non-blocking socket,
nothing is to be done, but select() can be used to check for the required
condition. When using a buffering BIO, like a BIO pair, data must be written
into or retrieved out of the BIO before being able to continue.

=head1 RETURN VALUES

The following return values can occur:

=over 4

=item 1

The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
established.

=item 0

The TLS/SSL handshake was not successful but was shut down controlled and
by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
return value B<ret> to find out the reason.

=item E<lt>0

The TLS/SSL handshake was not successful because a fatal error occurred either
at the protocol level or a connection failure occurred. The shutdown was
not clean. It can also occur of action is need to continue the operation
for non-blocking BIOs. Call SSL_get_error() with the return value B<ret>
to find out the reason.

=back

=head1 SEE ALSO

L<SSL_get_error(3)|SSL_get_error(3)>, L<SSL_connect(3)|SSL_connect(3)>,
L<SSL_accept(3)|SSL_accept(3)>, L<ssl(3)|ssl(3)>, L<bio(3)|bio(3)>,
L<SSL_set_connect_state(3)|SSL_set_connect_state(3)>

=cut
@
