ossl-guide-introduction.7ossl 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
  2. .\"
  3. .\" Standard preamble:
  4. .\" ========================================================================
  5. .de Sp \" Vertical space (when we can't use .PP)
  6. .if t .sp .5v
  7. .if n .sp
  8. ..
  9. .de Vb \" Begin verbatim text
  10. .ft CW
  11. .nf
  12. .ne \\$1
  13. ..
  14. .de Ve \" End verbatim text
  15. .ft R
  16. .fi
  17. ..
  18. .\" Set up some character translations and predefined strings. \*(-- will
  19. .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
  20. .\" double quote, and \*(R" will give a right double quote. \*(C+ will
  21. .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
  22. .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
  23. .\" nothing in troff, for use with C<>.
  24. .tr \(*W-
  25. .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
  26. .ie n \{\
  27. . ds -- \(*W-
  28. . ds PI pi
  29. . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
  30. . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
  31. . ds L" ""
  32. . ds R" ""
  33. . ds C` ""
  34. . ds C' ""
  35. 'br\}
  36. .el\{\
  37. . ds -- \|\(em\|
  38. . ds PI \(*p
  39. . ds L" ``
  40. . ds R" ''
  41. . ds C`
  42. . ds C'
  43. 'br\}
  44. .\"
  45. .\" Escape single quotes in literal strings from groff's Unicode transform.
  46. .ie \n(.g .ds Aq \(aq
  47. .el .ds Aq '
  48. .\"
  49. .\" If the F register is >0, we'll generate index entries on stderr for
  50. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  51. .\" entries marked with X<> in POD. Of course, you'll have to process the
  52. .\" output yourself in some meaningful fashion.
  53. .\"
  54. .\" Avoid warning from groff about undefined register 'F'.
  55. .de IX
  56. ..
  57. .nr rF 0
  58. .if \n(.g .if rF .nr rF 1
  59. .if (\n(rF:(\n(.g==0)) \{\
  60. . if \nF \{\
  61. . de IX
  62. . tm Index:\\$1\t\\n%\t"\\$2"
  63. ..
  64. . if !\nF==2 \{\
  65. . nr % 0
  66. . nr F 2
  67. . \}
  68. . \}
  69. .\}
  70. .rr rF
  71. .\"
  72. .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  73. .\" Fear. Run. Save yourself. No user-serviceable parts.
  74. . \" fudge factors for nroff and troff
  75. .if n \{\
  76. . ds #H 0
  77. . ds #V .8m
  78. . ds #F .3m
  79. . ds #[ \f1
  80. . ds #] \fP
  81. .\}
  82. .if t \{\
  83. . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
  84. . ds #V .6m
  85. . ds #F 0
  86. . ds #[ \&
  87. . ds #] \&
  88. .\}
  89. . \" simple accents for nroff and troff
  90. .if n \{\
  91. . ds ' \&
  92. . ds ` \&
  93. . ds ^ \&
  94. . ds , \&
  95. . ds ~ ~
  96. . ds /
  97. .\}
  98. .if t \{\
  99. . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
  100. . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
  101. . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
  102. . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
  103. . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
  104. . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
  105. .\}
  106. . \" troff and (daisy-wheel) nroff accents
  107. .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
  108. .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
  109. .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
  110. .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
  111. .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
  112. .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
  113. .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
  114. .ds ae a\h'-(\w'a'u*4/10)'e
  115. .ds Ae A\h'-(\w'A'u*4/10)'E
  116. . \" corrections for vroff
  117. .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
  118. .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
  119. . \" for low resolution devices (crt and lpr)
  120. .if \n(.H>23 .if \n(.V>19 \
  121. \{\
  122. . ds : e
  123. . ds 8 ss
  124. . ds o a
  125. . ds d- d\h'-1'\(ga
  126. . ds D- D\h'-1'\(hy
  127. . ds th \o'bp'
  128. . ds Th \o'LP'
  129. . ds ae ae
  130. . ds Ae AE
  131. .\}
  132. .rm #[ #] #H #V #F C
  133. .\" ========================================================================
  134. .\"
  135. .IX Title "OSSL-GUIDE-INTRODUCTION 7ossl"
  136. .TH OSSL-GUIDE-INTRODUCTION 7ossl "2024-09-03" "3.3.2" "OpenSSL"
  137. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  138. .\" way too many mistakes in technical documents.
  139. .if n .ad l
  140. .nh
  141. .SH "NAME"
  142. ossl\-guide\-introduction
  143. \&\- OpenSSL Guide: An introduction to OpenSSL
  144. .SH "WHAT IS OPENSSL?"
  145. .IX Header "WHAT IS OPENSSL?"
  146. OpenSSL is a robust, commercial-grade, full-featured toolkit for general-purpose
  147. cryptography and secure communication. Its features are made available via a
  148. command line application that enables users to perform various cryptography
  149. related functions such as generating keys and certificates. Additionally it
  150. supplies two libraries that application developers can use to implement
  151. cryptography based capabilities and to securely communicate across a network.
  152. Finally, it also has a set of providers that supply implementations of a broad
  153. set of cryptographic algorithms.
  154. .PP
  155. OpenSSL is fully open source. Version 3.0 and above are distributed under the
  156. Apache v2 license.
  157. .SH "GETTING AND INSTALLING OPENSSL"
  158. .IX Header "GETTING AND INSTALLING OPENSSL"
  159. The OpenSSL Project develops and distributes the source code for OpenSSL. You
  160. can obtain that source code via the OpenSSL website
  161. (<https://www.openssl.org/source>).
  162. .PP
  163. Many Operating Systems (notably Linux distributions) supply pre-built OpenSSL
  164. binaries either pre-installed or available via the package management system in
  165. use for that \s-1OS.\s0 It is worth checking whether this applies to you before
  166. attempting to build OpenSSL from the source code.
  167. .PP
  168. Some third parties also supply OpenSSL binaries (e.g. for Windows and some other
  169. platforms). The OpenSSL project maintains a list of these third parties at
  170. <https://wiki.openssl.org/index.php/Binaries>.
  171. .PP
  172. If you build and install OpenSSL from the source code then you should download
  173. the appropriate files for the version that you want to use from the link given
  174. above. Extract the contents of the \fBtar.gz\fR archive file that you downloaded
  175. into an appropriate directory. Inside that archive you will find a file named
  176. \&\fB\s-1INSTALL\s0.md\fR which will supply detailed instructions on how to build and
  177. install OpenSSL from source. Make sure you read the contents of that file
  178. carefully in order to achieve a successful build. In the directory you will also
  179. find a set of \fB\s-1NOTES\s0\fR files that provide further platform specific information.
  180. Make sure you carefully read the file appropriate to your platform. As well as
  181. the platform specific \fB\s-1NOTES\s0\fR files there is also a \fB\s-1NOTES\-PERL\s0.md\fR file that
  182. provides information about setting up Perl for use by the OpenSSL build system
  183. across multiple platforms.
  184. .PP
  185. Sometimes you may want to build and install OpenSSL from source on a system
  186. which already has a pre-built version of OpenSSL installed on it via the
  187. Operating System package management system (for example if you want to use a
  188. newer version of OpenSSL than the one supplied by your Operating System). In
  189. this case it is strongly recommended to install OpenSSL to a different location
  190. than where the pre-built version is installed. You should \fBnever\fR replace the
  191. pre-built version with a different version as this may break your system.
  192. .SH "CONTENTS OF THE OPENSSL GUIDE"
  193. .IX Header "CONTENTS OF THE OPENSSL GUIDE"
  194. The OpenSSL Guide is a series of documentation pages (starting with this one)
  195. that introduce some of the main concepts in OpenSSL. The guide can either be
  196. read end-to-end in order, or alternatively you can simply skip to the parts most
  197. applicable to your use case. Note however that later pages may depend on and
  198. assume knowledge from earlier pages.
  199. .PP
  200. The pages in the guide are as follows:
  201. .IP "\fBossl\-guide\-libraries\-introduction\fR\|(7): An introduction to the OpenSSL libraries" 4
  202. .IX Item "ossl-guide-libraries-introduction: An introduction to the OpenSSL libraries"
  203. .PD 0
  204. .IP "\fBossl\-guide\-libcrypto\-introduction\fR\|(7): An introduction to libcrypto" 4
  205. .IX Item "ossl-guide-libcrypto-introduction: An introduction to libcrypto"
  206. .IP "\fBossl\-guide\-libssl\-introduction\fR\|(7): An introduction to libssl" 4
  207. .IX Item "ossl-guide-libssl-introduction: An introduction to libssl"
  208. .IP "\fBossl\-guide\-tls\-introduction\fR\|(7): An introduction to \s-1SSL/TLS\s0 in OpenSSL" 4
  209. .IX Item "ossl-guide-tls-introduction: An introduction to SSL/TLS in OpenSSL"
  210. .IP "\fBossl\-guide\-tls\-client\-block\fR\|(7): Writing a simple blocking \s-1TLS\s0 client" 4
  211. .IX Item "ossl-guide-tls-client-block: Writing a simple blocking TLS client"
  212. .IP "\fBossl\-guide\-tls\-client\-non\-block\fR\|(7): Writing a simple nonblocking \s-1TLS\s0 client" 4
  213. .IX Item "ossl-guide-tls-client-non-block: Writing a simple nonblocking TLS client"
  214. .IP "\fBossl\-guide\-quic\-introduction\fR\|(7): An introduction to \s-1QUIC\s0 in OpenSSL" 4
  215. .IX Item "ossl-guide-quic-introduction: An introduction to QUIC in OpenSSL"
  216. .IP "\fBossl\-guide\-quic\-client\-block\fR\|(7): Writing a simple blocking \s-1QUIC\s0 client" 4
  217. .IX Item "ossl-guide-quic-client-block: Writing a simple blocking QUIC client"
  218. .IP "\fBossl\-guide\-quic\-multi\-stream\fR\|(7): Writing a simple multi-stream \s-1QUIC\s0 client" 4
  219. .IX Item "ossl-guide-quic-multi-stream: Writing a simple multi-stream QUIC client"
  220. .IP "\fBossl\-guide\-quic\-client\-non\-block\fR\|(7): Writing a simple nonblocking \s-1QUIC\s0 client" 4
  221. .IX Item "ossl-guide-quic-client-non-block: Writing a simple nonblocking QUIC client"
  222. .IP "\fBossl\-guide\-migration\fR\|(7): Migrating from older OpenSSL versions" 4
  223. .IX Item "ossl-guide-migration: Migrating from older OpenSSL versions"
  224. .PD
  225. .SH "COPYRIGHT"
  226. .IX Header "COPYRIGHT"
  227. Copyright 2023 The OpenSSL Project Authors. All Rights Reserved.
  228. .PP
  229. Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
  230. this file except in compliance with the License. You can obtain a copy
  231. in the file \s-1LICENSE\s0 in the source distribution or at
  232. <https://www.openssl.org/source/license.html>.