aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/prov/src/main/jdk1.3/org/spongycastle/jce/cert/PKIXCertPathValidatorResult.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/prov/src/main/jdk1.3/org/spongycastle/jce/cert/PKIXCertPathValidatorResult.java')
-rw-r--r--libraries/spongycastle/prov/src/main/jdk1.3/org/spongycastle/jce/cert/PKIXCertPathValidatorResult.java150
1 files changed, 150 insertions, 0 deletions
diff --git a/libraries/spongycastle/prov/src/main/jdk1.3/org/spongycastle/jce/cert/PKIXCertPathValidatorResult.java b/libraries/spongycastle/prov/src/main/jdk1.3/org/spongycastle/jce/cert/PKIXCertPathValidatorResult.java
new file mode 100644
index 000000000..aa9b530f4
--- /dev/null
+++ b/libraries/spongycastle/prov/src/main/jdk1.3/org/spongycastle/jce/cert/PKIXCertPathValidatorResult.java
@@ -0,0 +1,150 @@
+package org.spongycastle.jce.cert;
+
+import java.security.PublicKey;
+
+/**
+ * This class represents the successful result of the PKIX certification path
+ * validation algorithm. <br />
+ * <br />
+ * Instances of <code>PKIXCertPathValidatorResult</code> are returned by the
+ * {@link CertPathValidator#validate validate} method of
+ * <code>CertPathValidator</code> objects implementing the PKIX algorithm.<br />
+ * <br />
+ * All <code>PKIXCertPathValidatorResult</code> objects contain the valid
+ * policy tree and subject public key resulting from the validation algorithm,
+ * as well as a <code>TrustAnchor</code> describing the certification
+ * authority (CA) that served as a trust anchor for the certification path.<br />
+ * <br />
+ * <b>Concurrent Access</b><br />
+ * <br />
+ * Unless otherwise specified, the methods defined in this class are not
+ * thread-safe. Multiple threads that need to access a single object
+ * concurrently should synchronize amongst themselves and provide the necessary
+ * locking. Multiple threads each manipulating separate objects need not
+ * synchronize.
+ *
+ * @see CertPathValidatorResult
+ */
+public class PKIXCertPathValidatorResult implements CertPathValidatorResult
+{
+ private TrustAnchor trustAnchor;
+
+ private PolicyNode policyTree;
+
+ private PublicKey subjectPublicKey;
+
+ /**
+ * Creates an instance of <code>PKIXCertPathValidatorResult</code>
+ * containing the specified parameters.
+ *
+ * @param trustAnchor
+ * a <code>TrustAnchor</code> describing the CA that served as
+ * a trust anchor for the certification path
+ * @param policyTree
+ * the immutable valid policy tree, or <code>null</code> if
+ * there are no valid policies
+ * @param subjectPublicKey
+ * the public key of the subject
+ *
+ * @exception NullPointerException
+ * if the <code>subjectPublicKey</code> or
+ * <code>trustAnchor</code> parameters are
+ * <code>null</code>
+ */
+ public PKIXCertPathValidatorResult(
+ TrustAnchor trustAnchor,
+ PolicyNode policyTree,
+ PublicKey subjectPublicKey)
+ {
+ if (subjectPublicKey == null)
+ {
+ throw new NullPointerException("subjectPublicKey must be non-null");
+ }
+ if (trustAnchor == null)
+ {
+ throw new NullPointerException("trustAnchor must be non-null");
+ }
+
+ this.trustAnchor = trustAnchor;
+ this.policyTree = policyTree;
+ this.subjectPublicKey = subjectPublicKey;
+ }
+
+ /**
+ * Returns the <code>TrustAnchor</code> describing the CA that served as a
+ * trust anchor for the certification path.
+ *
+ * @return the <code>TrustAnchor</code> (never <code>null</code>)
+ */
+ public TrustAnchor getTrustAnchor()
+ {
+ return trustAnchor;
+ }
+
+ /**
+ * Returns the root node of the valid policy tree resulting from the PKIX
+ * certification path validation algorithm. The <code>PolicyNode</code>
+ * object that is returned and any objects that it returns through public
+ * methods are immutable.<br />
+ * <br />
+ * Most applications will not need to examine the valid policy tree. They
+ * can achieve their policy processing goals by setting the policy-related
+ * parameters in <code>PKIXParameters</code>. However, more sophisticated
+ * applications, especially those that process policy qualifiers, may need
+ * to traverse the valid policy tree using the
+ * {@link PolicyNode#getParent PolicyNode.getParent} and
+ * {@link PolicyNode#getChildren PolicyNode.getChildren} methods.
+ *
+ * @return the root node of the valid policy tree, or <code>null</code> if
+ * there are no valid policies
+ */
+ public PolicyNode getPolicyTree()
+ {
+ return policyTree;
+ }
+
+ /**
+ * Returns the public key of the subject (target) of the certification path,
+ * including any inherited public key parameters if applicable.
+ *
+ * @return the public key of the subject (never <code>null</code>)
+ */
+ public PublicKey getPublicKey()
+ {
+ return subjectPublicKey;
+ }
+
+ /**
+ * Returns a copy of this object.
+ *
+ * @return the copy
+ */
+ public Object clone()
+ {
+ try
+ {
+ return super.clone();
+ }
+ catch (CloneNotSupportedException ex)
+ {
+ throw new InternalError(ex.toString());
+ }
+ }
+
+ /**
+ * Return a printable representation of this
+ * <code>PKIXCertPathValidatorResult</code>.
+ *
+ * @return a <code>String</code> describing the contents of this
+ * <code>PKIXCertPathValidatorResult</code>
+ */
+ public String toString()
+ {
+ StringBuffer s = new StringBuffer();
+ s.append("PKIXCertPathValidatorResult: [ \n");
+ s.append(" Trust Anchor: ").append(getTrustAnchor()).append('\n');
+ s.append(" Policy Tree: ").append(getPolicyTree()).append('\n');
+ s.append(" Subject Public Key: ").append(getPublicKey()).append("\n]");
+ return s.toString();
+ }
+}