xref: /minix3/crypto/external/bsd/openssl/dist/README (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1ebfedea0SLionel Sambuc
2*0a6a1f1dSLionel Sambuc OpenSSL 1.0.1p 9 Jul 2015
3ebfedea0SLionel Sambuc
4ebfedea0SLionel Sambuc Copyright (c) 1998-2011 The OpenSSL Project
5ebfedea0SLionel Sambuc Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
6ebfedea0SLionel Sambuc All rights reserved.
7ebfedea0SLionel Sambuc
8ebfedea0SLionel Sambuc DESCRIPTION
9ebfedea0SLionel Sambuc -----------
10ebfedea0SLionel Sambuc
11ebfedea0SLionel Sambuc The OpenSSL Project is a collaborative effort to develop a robust,
12ebfedea0SLionel Sambuc commercial-grade, fully featured, and Open Source toolkit implementing the
13ebfedea0SLionel Sambuc Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
14ebfedea0SLionel Sambuc protocols as well as a full-strength general purpose cryptography library.
15ebfedea0SLionel Sambuc The project is managed by a worldwide community of volunteers that use the
16ebfedea0SLionel Sambuc Internet to communicate, plan, and develop the OpenSSL toolkit and its
17ebfedea0SLionel Sambuc related documentation.
18ebfedea0SLionel Sambuc
19ebfedea0SLionel Sambuc OpenSSL is based on the excellent SSLeay library developed from Eric A. Young
20ebfedea0SLionel Sambuc and Tim J. Hudson.  The OpenSSL toolkit is licensed under a dual-license (the
21ebfedea0SLionel Sambuc OpenSSL license plus the SSLeay license) situation, which basically means
22ebfedea0SLionel Sambuc that you are free to get and use it for commercial and non-commercial
23ebfedea0SLionel Sambuc purposes as long as you fulfill the conditions of both licenses.
24ebfedea0SLionel Sambuc
25ebfedea0SLionel Sambuc OVERVIEW
26ebfedea0SLionel Sambuc --------
27ebfedea0SLionel Sambuc
28ebfedea0SLionel Sambuc The OpenSSL toolkit includes:
29ebfedea0SLionel Sambuc
30ebfedea0SLionel Sambuc libssl.a:
31ebfedea0SLionel Sambuc     Implementation of SSLv2, SSLv3, TLSv1 and the required code to support
32ebfedea0SLionel Sambuc     both SSLv2, SSLv3 and TLSv1 in the one server and client.
33ebfedea0SLionel Sambuc
34ebfedea0SLionel Sambuc libcrypto.a:
35ebfedea0SLionel Sambuc     General encryption and X.509 v1/v3 stuff needed by SSL/TLS but not
36ebfedea0SLionel Sambuc     actually logically part of it. It includes routines for the following:
37ebfedea0SLionel Sambuc
38ebfedea0SLionel Sambuc     Ciphers
39ebfedea0SLionel Sambuc        libdes - EAY's libdes DES encryption package which was floating
40ebfedea0SLionel Sambuc                 around the net for a few years, and was then relicensed by
41ebfedea0SLionel Sambuc                 him as part of SSLeay.  It includes 15 'modes/variations'
42ebfedea0SLionel Sambuc                 of DES (1, 2 and 3 key versions of ecb, cbc, cfb and ofb;
43ebfedea0SLionel Sambuc                 pcbc and a more general form of cfb and ofb) including desx
44ebfedea0SLionel Sambuc                 in cbc mode, a fast crypt(3), and routines to read
45ebfedea0SLionel Sambuc                 passwords from the keyboard.
46ebfedea0SLionel Sambuc        RC4 encryption,
47ebfedea0SLionel Sambuc        RC2 encryption      - 4 different modes, ecb, cbc, cfb and ofb.
48ebfedea0SLionel Sambuc        Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
49ebfedea0SLionel Sambuc        IDEA encryption     - 4 different modes, ecb, cbc, cfb and ofb.
50ebfedea0SLionel Sambuc
51ebfedea0SLionel Sambuc     Digests
52ebfedea0SLionel Sambuc        MD5 and MD2 message digest algorithms, fast implementations,
53ebfedea0SLionel Sambuc        SHA (SHA-0) and SHA-1 message digest algorithms,
54ebfedea0SLionel Sambuc        MDC2 message digest. A DES based hash that is popular on smart cards.
55ebfedea0SLionel Sambuc
56ebfedea0SLionel Sambuc     Public Key
57ebfedea0SLionel Sambuc        RSA encryption/decryption/generation.
58ebfedea0SLionel Sambuc            There is no limit on the number of bits.
59ebfedea0SLionel Sambuc        DSA encryption/decryption/generation.
60ebfedea0SLionel Sambuc            There is no limit on the number of bits.
61ebfedea0SLionel Sambuc        Diffie-Hellman key-exchange/key generation.
62ebfedea0SLionel Sambuc            There is no limit on the number of bits.
63ebfedea0SLionel Sambuc
64ebfedea0SLionel Sambuc     X.509v3 certificates
65ebfedea0SLionel Sambuc        X509 encoding/decoding into/from binary ASN1 and a PEM
66ebfedea0SLionel Sambuc             based ASCII-binary encoding which supports encryption with a
67ebfedea0SLionel Sambuc             private key.  Program to generate RSA and DSA certificate
68ebfedea0SLionel Sambuc             requests and to generate RSA and DSA certificates.
69ebfedea0SLionel Sambuc
70ebfedea0SLionel Sambuc     Systems
71ebfedea0SLionel Sambuc        The normal digital envelope routines and base64 encoding.  Higher
72ebfedea0SLionel Sambuc        level access to ciphers and digests by name.  New ciphers can be
73ebfedea0SLionel Sambuc        loaded at run time.  The BIO io system which is a simple non-blocking
74ebfedea0SLionel Sambuc        IO abstraction.  Current methods supported are file descriptors,
75ebfedea0SLionel Sambuc        sockets, socket accept, socket connect, memory buffer, buffering, SSL
76ebfedea0SLionel Sambuc        client/server, file pointer, encryption, digest, non-blocking testing
77ebfedea0SLionel Sambuc        and null.
78ebfedea0SLionel Sambuc
79ebfedea0SLionel Sambuc     Data structures
80ebfedea0SLionel Sambuc        A dynamically growing hashing system
81ebfedea0SLionel Sambuc        A simple stack.
82ebfedea0SLionel Sambuc        A Configuration loader that uses a format similar to MS .ini files.
83ebfedea0SLionel Sambuc
84ebfedea0SLionel Sambuc openssl:
85ebfedea0SLionel Sambuc     A command line tool that can be used for:
86ebfedea0SLionel Sambuc        Creation of RSA, DH and DSA key parameters
87ebfedea0SLionel Sambuc        Creation of X.509 certificates, CSRs and CRLs
88ebfedea0SLionel Sambuc        Calculation of Message Digests
89ebfedea0SLionel Sambuc        Encryption and Decryption with Ciphers
90ebfedea0SLionel Sambuc        SSL/TLS Client and Server Tests
91ebfedea0SLionel Sambuc        Handling of S/MIME signed or encrypted mail
92ebfedea0SLionel Sambuc
93ebfedea0SLionel Sambuc
94ebfedea0SLionel Sambuc PATENTS
95ebfedea0SLionel Sambuc -------
96ebfedea0SLionel Sambuc
97ebfedea0SLionel Sambuc Various companies hold various patents for various algorithms in various
98ebfedea0SLionel Sambuc locations around the world. _YOU_ are responsible for ensuring that your use
99ebfedea0SLionel Sambuc of any algorithms is legal by checking if there are any patents in your
100ebfedea0SLionel Sambuc country.  The file contains some of the patents that we know about or are
101ebfedea0SLionel Sambuc rumored to exist. This is not a definitive list.
102ebfedea0SLionel Sambuc
103ebfedea0SLionel Sambuc RSA Security holds software patents on the RC5 algorithm.  If you
104ebfedea0SLionel Sambuc intend to use this cipher, you must contact RSA Security for
105ebfedea0SLionel Sambuc licensing conditions. Their web page is http://www.rsasecurity.com/.
106ebfedea0SLionel Sambuc
107ebfedea0SLionel Sambuc RC4 is a trademark of RSA Security, so use of this label should perhaps
108ebfedea0SLionel Sambuc only be used with RSA Security's permission.
109ebfedea0SLionel Sambuc
110ebfedea0SLionel Sambuc The IDEA algorithm is patented by Ascom in Austria, France, Germany, Italy,
111ebfedea0SLionel Sambuc Japan, the Netherlands, Spain, Sweden, Switzerland, UK and the USA.  They
112ebfedea0SLionel Sambuc should be contacted if that algorithm is to be used; their web page is
113ebfedea0SLionel Sambuc http://www.ascom.ch/.
114ebfedea0SLionel Sambuc
115ebfedea0SLionel Sambuc NTT and Mitsubishi have patents and pending patents on the Camellia
116ebfedea0SLionel Sambuc algorithm, but allow use at no charge without requiring an explicit
117ebfedea0SLionel Sambuc licensing agreement: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
118ebfedea0SLionel Sambuc
119ebfedea0SLionel Sambuc INSTALLATION
120ebfedea0SLionel Sambuc ------------
121ebfedea0SLionel Sambuc
122ebfedea0SLionel Sambuc To install this package under a Unix derivative, read the INSTALL file.  For
123ebfedea0SLionel Sambuc a Win32 platform, read the INSTALL.W32 file.  For OpenVMS systems, read
124ebfedea0SLionel Sambuc INSTALL.VMS.
125ebfedea0SLionel Sambuc
126ebfedea0SLionel Sambuc Read the documentation in the doc/ directory.  It is quite rough, but it
127ebfedea0SLionel Sambuc lists the functions; you will probably have to look at the code to work out
128ebfedea0SLionel Sambuc how to use them. Look at the example programs.
129ebfedea0SLionel Sambuc
130ebfedea0SLionel Sambuc PROBLEMS
131ebfedea0SLionel Sambuc --------
132ebfedea0SLionel Sambuc
133ebfedea0SLionel Sambuc For some platforms, there are some known problems that may affect the user
134ebfedea0SLionel Sambuc or application author.  We try to collect those in doc/PROBLEMS, with current
135ebfedea0SLionel Sambuc thoughts on how they should be solved in a future of OpenSSL.
136ebfedea0SLionel Sambuc
137ebfedea0SLionel Sambuc SUPPORT
138ebfedea0SLionel Sambuc -------
139ebfedea0SLionel Sambuc
140ebfedea0SLionel Sambuc See the OpenSSL website www.openssl.org for details of how to obtain
141ebfedea0SLionel Sambuc commercial technical support.
142ebfedea0SLionel Sambuc
143ebfedea0SLionel Sambuc If you have any problems with OpenSSL then please take the following steps
144ebfedea0SLionel Sambuc first:
145ebfedea0SLionel Sambuc
146ebfedea0SLionel Sambuc    - Download the current snapshot from ftp://ftp.openssl.org/snapshot/
147ebfedea0SLionel Sambuc      to see if the problem has already been addressed
148ebfedea0SLionel Sambuc    - Remove ASM versions of libraries
149ebfedea0SLionel Sambuc    - Remove compiler optimisation flags
150ebfedea0SLionel Sambuc
151ebfedea0SLionel Sambuc If you wish to report a bug then please include the following information in
152ebfedea0SLionel Sambuc any bug report:
153ebfedea0SLionel Sambuc
154ebfedea0SLionel Sambuc    - On Unix systems:
155ebfedea0SLionel Sambuc        Self-test report generated by 'make report'
156ebfedea0SLionel Sambuc    - On other systems:
157ebfedea0SLionel Sambuc        OpenSSL version: output of 'openssl version -a'
158ebfedea0SLionel Sambuc        OS Name, Version, Hardware platform
159ebfedea0SLionel Sambuc        Compiler Details (name, version)
160ebfedea0SLionel Sambuc    - Application Details (name, version)
161ebfedea0SLionel Sambuc    - Problem Description (steps that will reproduce the problem, if known)
162ebfedea0SLionel Sambuc    - Stack Traceback (if the application dumps core)
163ebfedea0SLionel Sambuc
164ebfedea0SLionel Sambuc Report the bug to the OpenSSL project via the Request Tracker
165ebfedea0SLionel Sambuc (http://www.openssl.org/support/rt.html) by mail to:
166ebfedea0SLionel Sambuc
167ebfedea0SLionel Sambuc    openssl-bugs@openssl.org
168ebfedea0SLionel Sambuc
169ebfedea0SLionel Sambuc Note that the request tracker should NOT be used for general assistance
170ebfedea0SLionel Sambuc or support queries. Just because something doesn't work the way you expect
171ebfedea0SLionel Sambuc does not mean it is necessarily a bug in OpenSSL.
172ebfedea0SLionel Sambuc
173ebfedea0SLionel Sambuc Note that mail to openssl-bugs@openssl.org is recorded in the publicly
174ebfedea0SLionel Sambuc readable request tracker database and is forwarded to a public
175ebfedea0SLionel Sambuc mailing list. Confidential mail may be sent to openssl-security@openssl.org
176ebfedea0SLionel Sambuc (PGP key available from the key servers).
177ebfedea0SLionel Sambuc
178ebfedea0SLionel Sambuc HOW TO CONTRIBUTE TO OpenSSL
179ebfedea0SLionel Sambuc ----------------------------
180ebfedea0SLionel Sambuc
181ebfedea0SLionel Sambuc Development is coordinated on the openssl-dev mailing list (see
182ebfedea0SLionel Sambuc http://www.openssl.org for information on subscribing). If you
183ebfedea0SLionel Sambuc would like to submit a patch, send it to openssl-bugs@openssl.org with
184ebfedea0SLionel Sambuc the string "[PATCH]" in the subject. Please be sure to include a
185ebfedea0SLionel Sambuc textual explanation of what your patch does.
186ebfedea0SLionel Sambuc
187ebfedea0SLionel Sambuc If you are unsure as to whether a feature will be useful for the general
188ebfedea0SLionel Sambuc OpenSSL community please discuss it on the openssl-dev mailing list first.
189ebfedea0SLionel Sambuc Someone may be already working on the same thing or there may be a good
190ebfedea0SLionel Sambuc reason as to why that feature isn't implemented.
191ebfedea0SLionel Sambuc
192ebfedea0SLionel Sambuc Patches should be as up to date as possible, preferably relative to the
193ebfedea0SLionel Sambuc current Git or the last snapshot. They should follow the coding style of
194ebfedea0SLionel Sambuc OpenSSL and compile without warnings. Some of the core team developer targets
195ebfedea0SLionel Sambuc can be used for testing purposes, (debug-steve64, debug-geoff etc). OpenSSL
196ebfedea0SLionel Sambuc compiles on many varied platforms: try to ensure you only use portable
197ebfedea0SLionel Sambuc features.
198ebfedea0SLionel Sambuc
199ebfedea0SLionel Sambuc Note: For legal reasons, contributions from the US can be accepted only
200ebfedea0SLionel Sambuc if a TSU notification and a copy of the patch are sent to crypt@bis.doc.gov
201ebfedea0SLionel Sambuc (formerly BXA) with a copy to the ENC Encryption Request Coordinator;
202ebfedea0SLionel Sambuc please take some time to look at
203ebfedea0SLionel Sambuc    http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic]
204ebfedea0SLionel Sambuc and
205ebfedea0SLionel Sambuc    http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e))
206ebfedea0SLionel Sambuc for the details. If "your encryption source code is too large to serve as
207ebfedea0SLionel Sambuc an email attachment", they are glad to receive it by fax instead; hope you
208ebfedea0SLionel Sambuc have a cheap long-distance plan.
209ebfedea0SLionel Sambuc
210ebfedea0SLionel Sambuc Our preferred format for changes is "diff -u" output. You might
211ebfedea0SLionel Sambuc generate it like this:
212ebfedea0SLionel Sambuc
213ebfedea0SLionel Sambuc # cd openssl-work
214ebfedea0SLionel Sambuc # [your changes]
215ebfedea0SLionel Sambuc # ./Configure dist; make clean
216ebfedea0SLionel Sambuc # cd ..
217ebfedea0SLionel Sambuc # diff -ur openssl-orig openssl-work > mydiffs.patch
218ebfedea0SLionel Sambuc
219