OPENSSL_init_ssl.3ossl 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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 "OPENSSL_INIT_SSL 3ossl"
  58. .TH OPENSSL_INIT_SSL 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. OPENSSL_init_ssl \- OpenSSL (libssl and libcrypto) initialisation
  65. .SH SYNOPSIS
  66. .IX Header "SYNOPSIS"
  67. .Vb 1
  68. \& #include <openssl/ssl.h>
  69. \&
  70. \& int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
  71. .Ve
  72. .SH DESCRIPTION
  73. .IX Header "DESCRIPTION"
  74. During normal operation OpenSSL (libssl and libcrypto) will allocate various
  75. resources at start up that must, subsequently, be freed on close down of the
  76. library. Additionally some resources are allocated on a per thread basis (if the
  77. application is multi-threaded), and these resources must be freed prior to the
  78. thread closing.
  79. .PP
  80. As of version 1.1.0 OpenSSL will automatically allocate all resources that it
  81. needs so no explicit initialisation is required. Similarly it will also
  82. automatically deinitialise as required.
  83. .PP
  84. However, there may be situations when explicit initialisation is desirable or
  85. needed, for example when some nondefault initialisation is required. The
  86. function \fBOPENSSL_init_ssl()\fR can be used for this purpose. Calling
  87. this function will explicitly initialise BOTH libcrypto and libssl. To
  88. explicitly initialise ONLY libcrypto see the
  89. \&\fBOPENSSL_init_crypto\fR\|(3) function.
  90. .PP
  91. Numerous internal OpenSSL functions call \fBOPENSSL_init_ssl()\fR.
  92. Therefore, in order to perform nondefault initialisation,
  93. \&\fBOPENSSL_init_ssl()\fR MUST be called by application code prior to
  94. any other OpenSSL function calls.
  95. .PP
  96. The \fBopts\fR parameter specifies which aspects of libssl and libcrypto should be
  97. initialised. Valid options for libcrypto are described on the
  98. \&\fBOPENSSL_init_crypto\fR\|(3) page. In addition to any libcrypto
  99. specific option the following libssl options can also be used:
  100. .IP OPENSSL_INIT_NO_LOAD_SSL_STRINGS 4
  101. .IX Item "OPENSSL_INIT_NO_LOAD_SSL_STRINGS"
  102. Suppress automatic loading of the libssl error strings. This option is
  103. not a default option. Once selected subsequent calls to
  104. \&\fBOPENSSL_init_ssl()\fR with the option
  105. \&\fBOPENSSL_INIT_LOAD_SSL_STRINGS\fR will be ignored.
  106. .IP OPENSSL_INIT_LOAD_SSL_STRINGS 4
  107. .IX Item "OPENSSL_INIT_LOAD_SSL_STRINGS"
  108. Automatic loading of the libssl error strings. This option is a
  109. default option. Once selected subsequent calls to
  110. \&\fBOPENSSL_init_ssl()\fR with the option
  111. \&\fBOPENSSL_INIT_LOAD_SSL_STRINGS\fR will be ignored.
  112. .PP
  113. \&\fBOPENSSL_init_ssl()\fR takes a \fBsettings\fR parameter which can be used to
  114. set parameter values. See \fBOPENSSL_init_crypto\fR\|(3) for details.
  115. .SH "RETURN VALUES"
  116. .IX Header "RETURN VALUES"
  117. The function \fBOPENSSL_init_ssl()\fR returns 1 on success or 0 on error.
  118. .SH "SEE ALSO"
  119. .IX Header "SEE ALSO"
  120. \&\fBOPENSSL_init_crypto\fR\|(3)
  121. .SH HISTORY
  122. .IX Header "HISTORY"
  123. The \fBOPENSSL_init_ssl()\fR function was added in OpenSSL 1.1.0.
  124. .SH COPYRIGHT
  125. .IX Header "COPYRIGHT"
  126. Copyright 2016\-2020 The OpenSSL Project Authors. All Rights Reserved.
  127. .PP
  128. Licensed under the Apache License 2.0 (the "License"). You may not use
  129. this file except in compliance with the License. You can obtain a copy
  130. in the file LICENSE in the source distribution or at
  131. <https://www.openssl.org/source/license.html>.