| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package java.security.cert; |
| |
| import java.security.PublicKey; |
| |
| /** |
| * The implementation of the result of the PKIX certification path validation. |
| * |
| * @see CertPathValidator |
| * @see CertPathValidator#validate(CertPath, CertPathParameters) |
| */ |
| public class PKIXCertPathValidatorResult implements CertPathValidatorResult { |
| // A trust anchor used during validation of certification path |
| private final TrustAnchor trustAnchor; |
| // Valid policy tree resulting from PKIX |
| // certification path validation algorithm |
| private final PolicyNode policyTree; |
| // Public key of the subject (target) certificate |
| private final PublicKey subjectPublicKey; |
| |
| /** |
| * Creates a new {@code PKIXCertPathValidatorResult} with the specified |
| * trust anchor, the valid policy tree and the subject public key. |
| * |
| * @param trustAnchor |
| * the trust anchor describing the certification authority (CA) |
| * that served as trust anchor for the certification path. |
| * @param policyTree |
| * the valid policy tree from the validation. |
| * @param subjectPublicKey |
| * the subject public key from the validation. |
| */ |
| public PKIXCertPathValidatorResult(TrustAnchor trustAnchor, |
| PolicyNode policyTree, PublicKey subjectPublicKey) { |
| this.trustAnchor = trustAnchor; |
| this.policyTree = policyTree; |
| this.subjectPublicKey = subjectPublicKey; |
| if (this.trustAnchor == null) { |
| throw new NullPointerException("trustAnchor == null"); |
| } |
| if (this.subjectPublicKey == null) { |
| throw new NullPointerException("subjectPublicKey == null"); |
| } |
| } |
| |
| /** |
| * Returns the valid policy tree from the validation. |
| * |
| * @return the valid policy tree from the validation. |
| */ |
| public PolicyNode getPolicyTree() { |
| return policyTree; |
| } |
| |
| /** |
| * Returns the subject public key from the validation. |
| * |
| * @return the subject public key from the validation. |
| */ |
| public PublicKey getPublicKey() { |
| return subjectPublicKey; |
| } |
| |
| /** |
| * Returns the trust anchor describing the certification authority (CA) that |
| * served as trust anchor for this certification path. |
| * |
| * @return the trust anchor. |
| */ |
| public TrustAnchor getTrustAnchor() { |
| return trustAnchor; |
| } |
| |
| /** |
| * Clones this {@code PKIXCertPathValidatorResult} instance. |
| * |
| * @return the cloned instance. |
| */ |
| public Object clone() { |
| try { |
| return super.clone(); |
| } catch (CloneNotSupportedException e) { |
| throw new AssertionError(e); |
| } |
| } |
| |
| /** |
| * Returns a string representation for this {@code |
| * PKIXCertPathValidatorResult} instance. |
| * |
| * @return a string representation for this {@code |
| * PKIXCertPathValidatorResult} instance. |
| */ |
| public String toString() { |
| StringBuilder sb = new StringBuilder(super.toString()); |
| sb.append(": [\n Trust Anchor: "); |
| sb.append(trustAnchor.toString()); |
| sb.append("\n Policy Tree: "); |
| sb.append(policyTree == null ? "no valid policy tree\n" |
| : policyTree.toString()); |
| sb.append("\n Subject Public Key: "); |
| sb.append(subjectPublicKey.toString()); |
| sb.append("\n]"); |
| return sb.toString(); |
| } |
| } |