While cryptography can still be a controversial topic in the programming community, Java has weathered that storm and provides a rich set of APIs that allow you, the developer, to effectively include cryptography in applications—if you know how.
This book teaches you how. Chapters one through five cover the architecture of the JCE and JCA, symmetric and asymmetric key encryption in Java, message authentication codes, and how to create Java implementations with the API provided by the Bouncy Castle ASN.1 packages, all with plenty of examples. Building on that foundation, the second half of the book takes you into higher-level topics, enabling you to create and implement secure Java applications and make use of standard protocols such as CMS, SSL, and S/MIME.
What you will learn from this book
How to understand and use JCE, JCA, and the JSSE for encryption and authentication
The ways in which padding mechanisms work in ciphers and how to spot and fix typical errors
An understanding of how authentication mechanisms are implemented in Java and why they are used
Methods for describing cryptographic objects with ASN.1
How to create certificate revocation lists and use the Online Certificate Status Protocol (OCSP)
Real-world Web solutions using Bouncy Castle APIs
Who this book is for
This book is for Java developers who want to use cryptography in their applications or to understand how cryptography is being used in Java applications. Knowledge of the Java language is necessary, but you need not be familiar with any of the APIs discussed.
Chapter 1: The JCA and the JCE.
Chapter 2: Symmetric Key Cryptography.
Chapter 3: Message Digests, MACs, and HMACs.
Chapter 4: Asymmetric Key Cryptography.
Chapter 5: Object Description in Cryptography Using ASN.1.
Chapter 6: Distinguished Names and Certificates.
Chapter 7: Certificate Revocation and Path Validation.
Chapter 8: Key and Certificate Management Using Keystores.
Chapter 9: CMS and S/MIME.
Chapter 10: SSL and TLS.
Appendix A: Solutions to Exercises.
Appendix B: Algorithms Provided by the Bouncy Castle Provider.
Appendix C: Using the Bouncy Castle API for Elliptic Curve.