SSL_set_connect_state.3ossl 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. .\" -*- mode: troff; coding: utf-8 -*-
  2. .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
  3. .\"
  4. .\" Standard preamble:
  5. .\" ========================================================================
  6. .de Sp \" Vertical space (when we can't use .PP)
  7. .if t .sp .5v
  8. .if n .sp
  9. ..
  10. .de Vb \" Begin verbatim text
  11. .ft CW
  12. .nf
  13. .ne \\$1
  14. ..
  15. .de Ve \" End verbatim text
  16. .ft R
  17. .fi
  18. ..
  19. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
  20. .ie n \{\
  21. . ds C` ""
  22. . ds C' ""
  23. 'br\}
  24. .el\{\
  25. . ds C`
  26. . ds C'
  27. 'br\}
  28. .\"
  29. .\" Escape single quotes in literal strings from groff's Unicode transform.
  30. .ie \n(.g .ds Aq \(aq
  31. .el .ds Aq '
  32. .\"
  33. .\" If the F register is >0, we'll generate index entries on stderr for
  34. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  35. .\" entries marked with X<> in POD. Of course, you'll have to process the
  36. .\" output yourself in some meaningful fashion.
  37. .\"
  38. .\" Avoid warning from groff about undefined register 'F'.
  39. .de IX
  40. ..
  41. .nr rF 0
  42. .if \n(.g .if rF .nr rF 1
  43. .if (\n(rF:(\n(.g==0)) \{\
  44. . if \nF \{\
  45. . de IX
  46. . tm Index:\\$1\t\\n%\t"\\$2"
  47. ..
  48. . if !\nF==2 \{\
  49. . nr % 0
  50. . nr F 2
  51. . \}
  52. . \}
  53. .\}
  54. .rr rF
  55. .\" ========================================================================
  56. .\"
  57. .IX Title "SSL_SET_CONNECT_STATE 3ossl"
  58. .TH SSL_SET_CONNECT_STATE 3ossl 2025-01-17 3.4.0 OpenSSL
  59. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  60. .\" way too many mistakes in technical documents.
  61. .if n .ad l
  62. .nh
  63. .SH NAME
  64. SSL_set_connect_state, SSL_set_accept_state, SSL_is_server
  65. \&\- functions for manipulating and examining the client or server mode of an SSL object
  66. .SH SYNOPSIS
  67. .IX Header "SYNOPSIS"
  68. .Vb 1
  69. \& #include <openssl/ssl.h>
  70. \&
  71. \& void SSL_set_connect_state(SSL *ssl);
  72. \&
  73. \& void SSL_set_accept_state(SSL *ssl);
  74. \&
  75. \& int SSL_is_server(const SSL *ssl);
  76. .Ve
  77. .SH DESCRIPTION
  78. .IX Header "DESCRIPTION"
  79. \&\fBSSL_set_connect_state()\fR sets \fBssl\fR to work in client mode.
  80. .PP
  81. \&\fBSSL_set_accept_state()\fR sets \fBssl\fR to work in server mode.
  82. .PP
  83. \&\fBSSL_is_server()\fR checks if \fBssl\fR is working in server mode.
  84. .SH NOTES
  85. .IX Header "NOTES"
  86. When the SSL_CTX object was created with \fBSSL_CTX_new\fR\|(3),
  87. it was either assigned a dedicated client method, a dedicated server
  88. method, or a generic method, that can be used for both client and
  89. server connections. (The method might have been changed with
  90. \&\fBSSL_CTX_set_ssl_version\fR\|(3) or
  91. \&\fBSSL_set_ssl_method\fR\|(3).)
  92. .PP
  93. When beginning a new handshake, the SSL engine must know whether it must
  94. call the connect (client) or accept (server) routines. Even though it may
  95. be clear from the method chosen, whether client or server mode was
  96. requested, the handshake routines must be explicitly set.
  97. .PP
  98. When using the \fBSSL_connect\fR\|(3) or
  99. \&\fBSSL_accept\fR\|(3) routines, the correct handshake
  100. routines are automatically set. When performing a transparent negotiation
  101. using \fBSSL_write_ex\fR\|(3), \fBSSL_write\fR\|(3), \fBSSL_read_ex\fR\|(3), or \fBSSL_read\fR\|(3),
  102. the handshake routines must be explicitly set in advance using either
  103. \&\fBSSL_set_connect_state()\fR or \fBSSL_set_accept_state()\fR.
  104. .PP
  105. If \fBSSL_is_server()\fR is called before \fBSSL_set_connect_state()\fR or
  106. \&\fBSSL_set_accept_state()\fR is called (either automatically or explicitly),
  107. the result depends on what method was used when SSL_CTX was created with
  108. \&\fBSSL_CTX_new\fR\|(3). If a generic method or a dedicated server method was
  109. passed to \fBSSL_CTX_new\fR\|(3), \fBSSL_is_server()\fR returns 1; otherwise, it returns 0.
  110. .SH "RETURN VALUES"
  111. .IX Header "RETURN VALUES"
  112. \&\fBSSL_set_connect_state()\fR and \fBSSL_set_accept_state()\fR do not return diagnostic
  113. information.
  114. .PP
  115. \&\fBSSL_is_server()\fR returns 1 if \fBssl\fR is working in server mode or 0 for client mode.
  116. .SH "SEE ALSO"
  117. .IX Header "SEE ALSO"
  118. \&\fBssl\fR\|(7), \fBSSL_new\fR\|(3), \fBSSL_CTX_new\fR\|(3),
  119. \&\fBSSL_connect\fR\|(3), \fBSSL_accept\fR\|(3),
  120. \&\fBSSL_write_ex\fR\|(3), \fBSSL_write\fR\|(3), \fBSSL_read_ex\fR\|(3), \fBSSL_read\fR\|(3),
  121. \&\fBSSL_do_handshake\fR\|(3),
  122. \&\fBSSL_CTX_set_ssl_version\fR\|(3)
  123. .SH COPYRIGHT
  124. .IX Header "COPYRIGHT"
  125. Copyright 2001\-2017 The OpenSSL Project Authors. All Rights Reserved.
  126. .PP
  127. Licensed under the Apache License 2.0 (the "License"). You may not use
  128. this file except in compliance with the License. You can obtain a copy
  129. in the file LICENSE in the source distribution or at
  130. <https://www.openssl.org/source/license.html>.