Java in a Nutshell, 5th Edition [Electronic resources]

نسخه متنی -صفحه : 1191/ 579
نمايش فراداده

This class validates certificate chains, establishing a chain of trust from the end entity to a trust anchor, and thereby establishing the validity of the public key presented in the end entity's certificate. The CertPathValidator is provider-based and algorithm-independent. To obtain a CertPathValidator instance, call one of the static getInstance( ) methods specifying the name of the desired validation algorithm and, optionally, the provider to use. The "PKIX" algorithm for validating X.509 certificates is the only one supported by the default "SUN" provider.

Once you have a CertPathValidator object, you can use it to validate certificate chains by passing the CertPath object to be validated to the validate( ) method along with a CertPathParameters object that specifies valid trust anchors and other validation parameters. CertPathParameters is simply a marker interface, and you must use an application-specific implementation such as PKIXParameters. If validation fails, the validate( ) method throws a CertPathValidatorException which may include the index in the chain of the certificate that failed to validate. Otherwise, if validation is successful, the validate( ) method returns a CertPathValidatorResult. If you are interested in the details of the validation (such as the trust anchor that was used or the public key of the end entity), you may cast this returned value to an algorithm-specific subtype such as PKIXCertPathValidatorResult and use its methods to find out more about the result.

public class 

CertPathValidator { // Protected Constructors protected

CertPathValidator (CertPathValidatorSpi

validatorSpi , java.security.Provider

provider , String

algorithm ); // Public Class Methods public static final String

getDefaultType ( ); public static CertPathValidator

getInstance (String

algorithm ) throws java.security.NoSuchAlgorithmException; public static CertPathValidator

getInstance (String

algorithm , String

provider ) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException; public static CertPathValidator

getInstance (String

algorithm , java.security.Provider

provider ) throws java.security.NoSuchAlgorithmException; // Public Instance Methods public final String

getAlgorithm ( ); public final java.security.Provider

getProvider ( ); public final CertPathValidatorResult

validate (CertPath

certPath , CertPathParameters

params ) throws CertPathValidatorException, java.security.InvalidAlgorithmParameterException; }