KeyRep

public class KeyRep extends Object
implements Serializable

Standardized representation for serialized Key objects.

Note that a serialized Key may contain sensitive information which should not be exposed in untrusted environments. See the Security Appendix of the Serialization Specification for more information.

Nested Class Summary

enum KeyRep.Type Key type. 

Public Constructor Summary

KeyRep(KeyRep.Type type, String algorithm, String format, byte[] encoded)
Construct the alternate Key class.

Protected Method Summary

Object
readResolve()
Resolve the Key object.

Inherited Method Summary

Public Constructors

public KeyRep (KeyRep.Type type, String algorithm, String format, byte[] encoded)

Construct the alternate Key class.

Parameters
type either one of Type.SECRET, Type.PUBLIC, or Type.PRIVATE
algorithm the algorithm returned from Key.getAlgorithm()
format the encoding format returned from Key.getFormat()
encoded the encoded bytes returned from Key.getEncoded()
Throws
NullPointerException if type is null, if algorithm is null, if format is null, or if encoded is null

Protected Methods

protected Object readResolve ()

Resolve the Key object.

This method supports three Type/format combinations:

  • Type.SECRET/"RAW" - returns a SecretKeySpec object constructed using encoded key bytes and algorithm
  • Type.PUBLIC/"X.509" - gets a KeyFactory instance for the key algorithm, constructs an X509EncodedKeySpec with the encoded key bytes, and generates a public key from the spec
  • Type.PRIVATE/"PKCS#8" - gets a KeyFactory instance for the key algorithm, constructs a PKCS8EncodedKeySpec with the encoded key bytes, and generates a private key from the spec

Returns
  • the resolved Key object
Throws
ObjectStreamException if the Type/format combination is unrecognized, if the algorithm, key format, or encoded key bytes are unrecognized/invalid, of if the resolution of the key fails for any reason