Recent top five:
Java.next -- Four languages that represent the future of Java
Blogger Stuart Halloway has begun a series of posts on trends that point to the future of the Java platform. In his first
post, he compares Clojure, Groovy, JRuby, and Scala -- four wildly different languages that nonetheless all play together
in the JRE. Find out what unites these languages and what they can tell us about the future of Java-based development ...
| Enterprise AJAX - Transcend the Hype |
| Memory Analysis in Eclipse |
| Oracle Compatibility Developer's Guide |
| Memory Analysis in Eclipse |
The example above is not unique. Client-side wallet applications, mobile agent applications, and many kinds of mobile computing applications face the same challenges. This month, I will show you how to protect the contents of serialized objects when they traverse or reside on untrusted media. This information will better prepare you for designing and building distributed applications, especially those that use Java serialization to store state information.
The Java security package java.security and the Java Cryptography Extension (JCE) package javax.crypto contain a pair of classes designed to address these challenges. These classes protect the integrity and/or content of serialized
objects that spend time in an untrusted environment. Before delving into the details of usage and implementation, let's take
a look at the two classes and the differences between them.
Included in the java.security package along with the classes it depends upon, the SignedObject class makes up part of the Java 2 Platform, Standard Edition.
An instance of the SignedObject class acts as a wrapper around an instance of another class. A SignedObject instance contains the serialized representation of the wrapped object, along with the signature information necessary to
validate the wrapped object's authenticity and integrity.
Three conditions must be met to create a SignedObject instance:
SignedObject instance operates by transforming an instance of a class into a serialized byte stream and then signing that byte stream.
Signature class presumes the use of a public/private key pair, even in situations in which a shared secret key would suffice for the
wrapped object's authentication and verification.
Signature class.
With these stipulations satisfied, the programmer creates an instance of the SignedObject class as follows:
SignedObject classSealedObject