1 /* |
1 /* |
2 * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
31 * This class represents the successful result of the PKIX certification |
31 * This class represents the successful result of the PKIX certification |
32 * path builder algorithm. All certification paths that are built and |
32 * path builder algorithm. All certification paths that are built and |
33 * returned using this algorithm are also validated according to the PKIX |
33 * returned using this algorithm are also validated according to the PKIX |
34 * certification path validation algorithm. |
34 * certification path validation algorithm. |
35 * |
35 * |
36 * <p>Instances of <code>PKIXCertPathBuilderResult</code> are returned by |
36 * <p>Instances of {@code PKIXCertPathBuilderResult} are returned by |
37 * the <code>build</code> method of <code>CertPathBuilder</code> |
37 * the {@code build} method of {@code CertPathBuilder} |
38 * objects implementing the PKIX algorithm. |
38 * objects implementing the PKIX algorithm. |
39 * |
39 * |
40 * <p>All <code>PKIXCertPathBuilderResult</code> objects contain the |
40 * <p>All {@code PKIXCertPathBuilderResult} objects contain the |
41 * certification path constructed by the build algorithm, the |
41 * certification path constructed by the build algorithm, the |
42 * valid policy tree and subject public key resulting from the build |
42 * valid policy tree and subject public key resulting from the build |
43 * algorithm, and a <code>TrustAnchor</code> describing the certification |
43 * algorithm, and a {@code TrustAnchor} describing the certification |
44 * authority (CA) that served as a trust anchor for the certification path. |
44 * authority (CA) that served as a trust anchor for the certification path. |
45 * <p> |
45 * <p> |
46 * <b>Concurrent Access</b> |
46 * <b>Concurrent Access</b> |
47 * <p> |
47 * <p> |
48 * Unless otherwise specified, the methods defined in this class are not |
48 * Unless otherwise specified, the methods defined in this class are not |
60 implements CertPathBuilderResult { |
60 implements CertPathBuilderResult { |
61 |
61 |
62 private CertPath certPath; |
62 private CertPath certPath; |
63 |
63 |
64 /** |
64 /** |
65 * Creates an instance of <code>PKIXCertPathBuilderResult</code> |
65 * Creates an instance of {@code PKIXCertPathBuilderResult} |
66 * containing the specified parameters. |
66 * containing the specified parameters. |
67 * |
67 * |
68 * @param certPath the validated <code>CertPath</code> |
68 * @param certPath the validated {@code CertPath} |
69 * @param trustAnchor a <code>TrustAnchor</code> describing the CA that |
69 * @param trustAnchor a {@code TrustAnchor} describing the CA that |
70 * served as a trust anchor for the certification path |
70 * served as a trust anchor for the certification path |
71 * @param policyTree the immutable valid policy tree, or <code>null</code> |
71 * @param policyTree the immutable valid policy tree, or {@code null} |
72 * if there are no valid policies |
72 * if there are no valid policies |
73 * @param subjectPublicKey the public key of the subject |
73 * @param subjectPublicKey the public key of the subject |
74 * @throws NullPointerException if the <code>certPath</code>, |
74 * @throws NullPointerException if the {@code certPath}, |
75 * <code>trustAnchor</code> or <code>subjectPublicKey</code> parameters |
75 * {@code trustAnchor} or {@code subjectPublicKey} parameters |
76 * are <code>null</code> |
76 * are {@code null} |
77 */ |
77 */ |
78 public PKIXCertPathBuilderResult(CertPath certPath, |
78 public PKIXCertPathBuilderResult(CertPath certPath, |
79 TrustAnchor trustAnchor, PolicyNode policyTree, |
79 TrustAnchor trustAnchor, PolicyNode policyTree, |
80 PublicKey subjectPublicKey) |
80 PublicKey subjectPublicKey) |
81 { |
81 { |
85 this.certPath = certPath; |
85 this.certPath = certPath; |
86 } |
86 } |
87 |
87 |
88 /** |
88 /** |
89 * Returns the built and validated certification path. The |
89 * Returns the built and validated certification path. The |
90 * <code>CertPath</code> object does not include the trust anchor. |
90 * {@code CertPath} object does not include the trust anchor. |
91 * Instead, use the {@link #getTrustAnchor() getTrustAnchor()} method to |
91 * Instead, use the {@link #getTrustAnchor() getTrustAnchor()} method to |
92 * obtain the <code>TrustAnchor</code> that served as the trust anchor |
92 * obtain the {@code TrustAnchor} that served as the trust anchor |
93 * for the certification path. |
93 * for the certification path. |
94 * |
94 * |
95 * @return the built and validated <code>CertPath</code> (never |
95 * @return the built and validated {@code CertPath} (never |
96 * <code>null</code>) |
96 * {@code null}) |
97 */ |
97 */ |
98 public CertPath getCertPath() { |
98 public CertPath getCertPath() { |
99 return certPath; |
99 return certPath; |
100 } |
100 } |
101 |
101 |
102 /** |
102 /** |
103 * Return a printable representation of this |
103 * Return a printable representation of this |
104 * <code>PKIXCertPathBuilderResult</code>. |
104 * {@code PKIXCertPathBuilderResult}. |
105 * |
105 * |
106 * @return a <code>String</code> describing the contents of this |
106 * @return a {@code String} describing the contents of this |
107 * <code>PKIXCertPathBuilderResult</code> |
107 * {@code PKIXCertPathBuilderResult} |
108 */ |
108 */ |
109 public String toString() { |
109 public String toString() { |
110 StringBuffer sb = new StringBuffer(); |
110 StringBuffer sb = new StringBuffer(); |
111 sb.append("PKIXCertPathBuilderResult: [\n"); |
111 sb.append("PKIXCertPathBuilderResult: [\n"); |
112 sb.append(" Certification Path: " + certPath + "\n"); |
112 sb.append(" Certification Path: " + certPath + "\n"); |