Description
Book SynopsisThis volume is designed to enable developers to use The OpenSSL library more effectively. It offers guidance on avoiding pitfalls, while taking advantage of the library's advanced features and provides the information necessary to use OpenSSL safely and effectively.
Trade Review"If you have struggled with OpenSSL and the supplied documentation then you will regret the amount of time that you have wasted before finding this book. If you are planning to use OpenSSL then you need to buy a copy - it's essential reading. What is more surprising is that even if you don't plan to use OpenSSL, then downloading it and trying out the examples in the book could be the education in practical cryptography you really need. What more can I say of any book, other than that I certainly won't be lending it to anyone else? It's going to remain firmly chained to my bookshelf for the foreseeable future - and no, you can't borrow it." - Mike James, VSJ, October 2003
Table of ContentsPreface 1. Introduction Cryptography for the Rest of Us Overview of SSL Problems with SSL What SSL Doesn't Do Well OpenSSL Basics Securing Third-Party Software 2. Command-Line Interface The Basics Message Digest Algorithms Symmetric Ciphers Public Key Cryptography S/MIME Passwords and Passphrases Seeding the Pseudorandom Number Generator 3. Public Key nfrastructure (PKI) Certificates Obtaining a Certificate Setting Up a Certification Authority 4. Support Infrastructure Multithread Support Internal Error Handling Abstract Input/Output Random Number Generation Arbitrary Precision Math Using Engines 5. SSL/TLS Programming Programming with SSL Advanced Programming with SSL 6. Symmetric Cryptography Concepts in Symmetric Cryptography Encrypting with the EVP API General Recommendations 7. Hashes and MACs Overview of Hashes and MACs Hashing with the EVP API Using MACs Secure HTTP Cookies 8. Public Key Algorithms When to Use Public Key Cryptography Diffie-Hellman Digital Signature Algorithm (DSA) RSA The EVP Public Key Interface Encoding and Decoding Objects 9. OpenSSL in Other Languages Net::SSLeay for Perl M2Crypto for Python OpenSSL Support in PHP 10. Advanced Programming Topics Object Stacks Configuration Files X.509 PKCS7 and S/MIME PKCS12 Appendix: Command-Line Reference Index