Much of the Java security package is made up of a collection of engines, the basic properties of which we’ve outlined in this chapter. As a unit, these engines allow us primarily to create digital signatures—a useful notion that authenticates a particular piece of data. One thing that a digital signature can authenticate is a Java class file, which provides the basis for a security manager to consider a class to be trusted (as least to some degree), even though the class was loaded from the network.
The security package, like many Java APIs, is actually a fairly abstract interface that several implementations may be plugged into. Hence, another feature of the security package is its infrastructure to support these differing implementations. In the next chapter, we’ll explore the structure of the security package and how it supports these differing implementations; we’ll then proceed into how to use the engines of the security package.