class ZTSImpl implements KeyStore, ZTSHandler {

    boolean validateRoleCertificateExtRequest(X509RoleCertRequest certReq, final String principal,
            final String proxyUser, X509Certificate cert, final String ip) {

        if (!certReq.validate(principal, proxyUser, validCertSubjectOrgValues)) {
            return false;
        }

        // validate the role cert has the correct subject ou

        if (!validateRoleCertSubjectOU(certReq, cert)) {
            return false;
        }

        // validate the ip address if any provided

        return verifyCertRequestIP ? certReq.validateIPAddress(cert, ip) : true;
    }

    public  ZTSImpl();
    public  ZTSImpl(CloudStore implCloudStore, DataStore implDataStore);

}