package eu.europa.esig.dss.validation.process;
import java.util.List;
import eu.europa.esig.dss.CertificatePolicyOids;
import eu.europa.esig.dss.utils.Utils;
import eu.europa.esig.dss.validation.reports.wrapper.CertificateWrapper;
public final class CertificatePolicyIdentifiers {
private CertificatePolicyIdentifiers() {
}
public static boolean isSupportedByQSCD(CertificateWrapper certificate) {
return hasPolicyIdOIDs(certificate, CertificatePolicyOids.QCP_PUBLIC_WITH_SSCD, CertificatePolicyOids.QCP_LEGAL_QSCD,
CertificatePolicyOids.QCP_NATURAL_QSCD);
}
public static boolean isQCP(CertificateWrapper certificate) {
return hasPolicyIdOIDs(certificate, CertificatePolicyOids.QCP_PUBLIC);
}
public static boolean isQCPPlus(CertificateWrapper certificate) {
return hasPolicyIdOIDs(certificate, CertificatePolicyOids.QCP_PUBLIC_WITH_SSCD);
}
public static boolean isLegal(CertificateWrapper certificate) {
return hasPolicyIdOIDs(certificate, CertificatePolicyOids.QCP_LEGAL, CertificatePolicyOids.QCP_LEGAL_QSCD);
}
public static boolean isNatural(CertificateWrapper certificate) {
return hasPolicyIdOIDs(certificate, CertificatePolicyOids.QCP_NATURAL, CertificatePolicyOids.QCP_NATURAL_QSCD);
}
private static boolean hasPolicyIdOIDs(CertificateWrapper certificate, CertificatePolicyOids... certificatePolicyIds) {
List<String> policyIds = certificate.getPolicyIds();
if (Utils.isCollectionNotEmpty(policyIds)) {
for (CertificatePolicyOids policyId : certificatePolicyIds) {
if (policyIds.contains(policyId.getOid())) {
return true;
}
}
}
return false;
}
}