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