FileDocCategorySizeDatePackage
Message.javaAPI DocExample1146Sat Jan 13 14:25:04 GMT 2001javasec.samples.ch12

Message.java

package javasec.samples.ch12;

import java.io.*;
import java.security.*;
import java.security.cert.*;

public class Message implements Serializable {
    SignedObject object;
    transient java.security.cert.Certificate certificate;

    private void writeObject(ObjectOutputStream out)
                                    throws IOException {
        out.defaultWriteObject();
        try {
            out.writeObject(certificate.getEncoded());
        } catch (CertificateEncodingException cee) {
            throw new IOException("Can't serialize object " + cee);
        }
    }

    private void readObject(ObjectInputStream in)
                            throws IOException, ClassNotFoundException {
        in.defaultReadObject();
        try {
            byte b[] = (byte []) in.readObject();
            CertificateFactory cf = 
                        CertificateFactory.getInstance("X509");
            certificate = cf.generateCertificate(new 
                             ByteArrayInputStream(b));
        } catch (CertificateException ce) {
            throw new IOException("Can't de-serialize object " + ce);
        }
    }
}