// Erzeuge ein CertPath-Objekt wie in Listing
// <ref:LST_PathBuilder-1_JCA_LMS_v1.0_p2.txt> oder
// <ref:LST_PathBuilder-2_JCA_LMS_v1.0_p2.txt> erlutert.
CertPath cp = ...

// Das CertPath-Objekt enthlt alle Zertifikate
// bis auf den Vertrauensanker beginnend mit dem
// Endnutzer-Zertifikat. Daher mssen bei der
// Validierung TrustAnchor angegeben werden.
TrustAnchor taRoot = new TrustAnchor(rootCert, null);
HashSet trustAnchors = new HashSet();
ta.add(taRoot);

// Erzeuge ein CertPathValidator-Objekt, das nach den
// Festlegungen des RFC 3289 der IETF PKIX-Arbeitsgruppe 
// den CertPath validiert.
CertPathValidator cpv = CertPathValidator.getInstance(PKIX);

// Erzeuge PKIX-spezifische Parameter, wodurch die
// Gltigkeitsprfung gesteuert werden kann. Bei der
// Objekterzeugung werden die Vertrauensanker, der die
// Verifikationsseite vertraut, angegeben.
PKIXParameters params = new PKIXParameters(ta);

// Falls keine Sperrlisten vorliegen, knnen diese
// aus den Teilprfungen ausgeschlossen werden.
params.setRevocationEnabled(false);

// Soll die Gltigkeit zu einem bestimmten Zeitpunkt
// festgestellt werden, kann man diesen durch Aufruf der 
// setDate()-Methode setzen. Hier die aktuelle Zeit.
// => Prfung nach dem Schalenmodell
params.setDate(new Date());

// Tritt keine Exception bei der Ausfhrung dieser
// Methode auf, ist der Zertifikatspfad gem RFC 3280
// und den gettigten Einstellungen gltig.
CertPathValidatorResult valResult = cpv.validate(cp, params);

Bei erfolgreicher Ausfhrung enthlt das CertPathValidatorResult-Objekt Informationen zum TrustAnchor, womit das CertPath-Objekt als gltig geprft werden konnte. Das Zertifikat kann wie folgt daraus extrahiert werden:

PKIXCertPathValidatorResult pkixResult =
   (PKIXCertPathValidatorResult) valResult;
TrustAnchor ta = pkixResult.getTrustAnchor();
X509Certificate taCert = ta.getTrustedCert();
