using System; using System.Collections; using Org.BouncyCastle.Utilities.Collections; using Org.BouncyCastle.X509; namespace Org.BouncyCastle.Pkix { public abstract class PkixAttrCertChecker { /** * Returns an immutable Set of X.509 attribute certificate * extensions that this PkixAttrCertChecker supports or * null if no extensions are supported. *

* Each element of the set is a String representing the * Object Identifier (OID) of the X.509 extension that is supported. *

*

* All X.509 attribute certificate extensions that a * PkixAttrCertChecker might possibly be able to process * should be included in the set. *

* * @return an immutable Set of X.509 extension OIDs (in * String format) supported by this * PkixAttrCertChecker, or null if no * extensions are supported */ public abstract ISet GetSupportedExtensions(); /** * Performs checks on the specified attribute certificate. Every handled * extension is rmeoved from the unresolvedCritExts * collection. * * @param attrCert The attribute certificate to be checked. * @param certPath The certificate path which belongs to the attribute * certificate issuer public key certificate. * @param holderCertPath The certificate path which belongs to the holder * certificate. * @param unresolvedCritExts a Collection of OID strings * representing the current set of unresolved critical extensions * @throws CertPathValidatorException if the specified attribute certificate * does not pass the check. */ public abstract void Check(IX509AttributeCertificate attrCert, PkixCertPath certPath, PkixCertPath holderCertPath, ICollection unresolvedCritExts); /** * Returns a clone of this object. * * @return a copy of this PkixAttrCertChecker */ public abstract PkixAttrCertChecker Clone(); } }