|
Bouncy Castle Cryptography 1.23 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.bouncycastle.jce.cert.CertPath
An immutable sequence of certificates (a certification path).
This is an abstract class that defines the methods common to all
CertPaths. Subclasses can handle different kinds of certificates
(X.509, PGP, etc.).
All CertPath objects have a type, a list of Certificates, and one
or more supported encodings. Because the CertPath class is
immutable, a CertPath cannot change in any externally visible way
after being constructed. This stipulation applies to all public
fields and methods of this class and any added or overridden by
subclasses.
The type is a String that identifies the type of Certificates in
the certification path. For each certificate cert in a
certification path certPath,
cert.getType().equals(certPath.getType()) must be true.
The list of Certificates is an ordered List of zero or more
Certificates. This List and all of the Certificates contained in it
must be immutable.
Each CertPath object must support one or more encodings so that the
object can be translated into a byte array for storage or
transmission to other parties. Preferably, these encodings should
be well-documented standards (such as PKCS#7). One of the encodings
supported by a CertPath is considered the default encoding. This
encoding is used if no encoding is explicitly requested (for the
getEncoded()
method, for instance).
All CertPath objects are also Serializable. CertPath objects are
resolved into an alternate CertPath.CertPathRep
object during
serialization. This allows a CertPath object to be serialized into
an equivalent representation regardless of its underlying
implementation.
CertPath objects can be created with a CertificateFactory or they
can be returned by other classes, such as a CertPathBuilder.
By convention, X.509 CertPaths (consisting of X509Certificates),
are ordered starting with the target certificate and ending with a
certificate issued by the trust anchor. That is, the issuer of one
certificate is the subject of the following one. The certificate
representing the TrustAnchor
should not be included in the
certification path. Unvalidated X.509 CertPaths may not follow
these conventions. PKIX CertPathValidators will detect any
departure from these conventions that cause the certification path
to be invalid and throw a CertPathValidatorException.
Concurrent Access
All CertPath objects must be thread-safe. That is, multiple threads
may concurrently invoke the methods defined in this class on a
single CertPath object (or more than one) with no ill effects. This
is also true for the List returned by CertPath.getCertificates.
Requiring CertPath objects to be immutable and thread-safe allows
them to be passed around to various pieces of code without worrying
about coordinating access. Providing this thread-safety is
generally not difficult, since the CertPath and List objects in
question are immutable.
CertificateFactory
,
CertPathBuilder
,
Serialized FormNested Class Summary | |
protected static class |
CertPath.CertPathRep
Alternate CertPath class for serialization. |
Constructor Summary | |
protected |
CertPath(java.lang.String type)
Creates a CertPath of the specified type. |
Method Summary | |
boolean |
equals(java.lang.Object other)
Compares this certification path for equality with the specified object. |
abstract java.util.List |
getCertificates()
Returns the list of certificates in this certification path. |
abstract byte[] |
getEncoded()
Returns the encoded form of this certification path, using the default encoding. |
abstract byte[] |
getEncoded(java.lang.String encoding)
Returns the encoded form of this certification path, using the specified encoding. |
abstract java.util.Iterator |
getEncodings()
Returns an iteration of the encodings supported by this certification path, with the default encoding first. |
java.lang.String |
getType()
Returns the type of Certificates in this certification path. |
int |
hashCode()
Returns the hashcode for this certification path. |
java.lang.String |
toString()
Returns a string representation of this certification path. |
protected java.lang.Object |
writeReplace()
Replaces the CertPath to be serialized with a CertPathRep object. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
protected CertPath(java.lang.String type)
type
- the standard name of the type of Certificatesin this pathMethod Detail |
public java.lang.String getType()
cert.getType()
for all
Certificates in the certification path.
public abstract java.util.Iterator getEncodings()
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
other
- the object to test for equality with this
certification path
Object.hashCode()
public int hashCode()
hashCode = path.getType().hashCode(); hashCode = 31 * hashCode + path.getCertificates().hashCode();This ensures that path1.equals(path2) implies that path1.hashCode()==path2.hashCode() for any two certification paths, path1 and path2, as required by the general contract of Object.hashCode.
hashCode
in class java.lang.Object
equals(Object)
public java.lang.String toString()
toString
in class java.lang.Object
public abstract byte[] getEncoded() throws java.security.cert.CertificateEncodingException
java.security.cert.CertificateEncodingException
- if an encoding error occurspublic abstract byte[] getEncoded(java.lang.String encoding) throws java.security.cert.CertificateEncodingException
encoding
- the name of the encoding to use
java.security.cert.CertificateEncodingException
- if an encoding error
occurs or the encoding requested is not supportedpublic abstract java.util.List getCertificates()
protected java.lang.Object writeReplace() throws java.io.ObjectStreamException
java.io.ObjectStreamException
- if a CertPathRep object
representing this certification path could not be created
|
Bouncy Castle Cryptography 1.23 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |