01: package org.bouncycastle.x509;
02:
03: import java.security.cert.CertPath;
04: import java.security.cert.CertPathValidatorException;
05: import java.util.Collection;
06: import java.util.Set;
07:
08: public abstract class PKIXAttrCertChecker implements Cloneable {
09:
10: /**
11: * Returns an immutable <code>Set</code> of X.509 attribute certificate
12: * extensions that this <code>PKIXAttrCertChecker</code> supports or
13: * <code>null</code> if no extensions are supported.
14: * <p>
15: * Each element of the set is a <code>String</code> representing the
16: * Object Identifier (OID) of the X.509 extension that is supported.
17: * <p>
18: * All X.509 attribute certificate extensions that a
19: * <code>PKIXAttrCertChecker</code> might possibly be able to process
20: * should be included in the set.
21: *
22: * @return an immutable <code>Set</code> of X.509 extension OIDs (in
23: * <code>String</code> format) supported by this
24: * <code>PKIXAttrCertChecker</code>, or <code>null</code> if no
25: * extensions are supported
26: */
27: public abstract Set getSupportedExtensions();
28:
29: /**
30: * Performs checks on the specified attribute certificate. Every handled
31: * extension is rmeoved from the <code>unresolvedCritExts</code>
32: * collection.
33: *
34: * @param attrCert The attribute certificate to be checked.
35: * @param certPath The certificate path which belongs to the attribute
36: * certificate issuer public key certificate.
37: * @param holderCertPath The certificate path which belongs to the holder
38: * certificate.
39: * @param unresolvedCritExts a <code>Collection</code> of OID strings
40: * representing the current set of unresolved critical extensions
41: * @throws CertPathValidatorException if the specified attribute certificate
42: * does not pass the check.
43: */
44: public abstract void check(X509AttributeCertificate attrCert,
45: CertPath certPath, CertPath holderCertPath,
46: Collection unresolvedCritExts)
47: throws CertPathValidatorException;
48:
49: /**
50: * Returns a clone of this object.
51: *
52: * @return a copy of this <code>PKIXAttrCertChecker</code>
53: */
54: public abstract Object clone();
55: }
|