The java.security Package

The Java Security API is a framework for implementing and using security measures in the Java environment. The Java Security API is included in the core Java API, in the form of the java.security package.

Architectural Overview

The security package really provides two APIs: one for users of security algorithms, and another for the implementors or providers of these algorithms.

The User API

The user API is designed to let you use different cryptographic algorithms in your application without having to know how they are implemented by providers. All you need to know is an algorithm’s name. As an example, you can create a new key-pair generator using the Digital Signature Algorithm (DSA) with the following call:

KeyPairGenerator myGen = KeyPairGenerator.getInstance("DSA");

You can take this new object and ask it for key pairs to be used to sign messages, without knowing how the key pairs are being generated. If you wanted to use a different algorithm to implement your key-pair generator, you would just change the algorithm name in the preceding line of code. The rest of your code that uses the object can usually remain unchanged.

In the same way that cryptographic algorithms are specified by name, providers of these algorithms are also specified by name. If you wanted to use an implementation of DSA from a specific provider, then you could ask for it by name when you create an object:

KeyPairGenerator myGen = KeyPairGenerator.getInstance("DSA", "MY_PROVIDER"); ...

Get Java Distributed Computing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.