Example usage for org.bouncycastle.asn1.x509 X509Extensions PolicyConstraints

List of usage examples for org.bouncycastle.asn1.x509 X509Extensions PolicyConstraints

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.x509 X509Extensions PolicyConstraints.

Prototype

ASN1ObjectIdentifier PolicyConstraints

To view the source code for org.bouncycastle.asn1.x509 X509Extensions PolicyConstraints.

Click Source Link

Document

Policy Constraints

Usage

From source file:org.qipki.crypto.x509.X509ExtensionsReaderImpl.java

License:Open Source License

@Override
public Set<PolicyConstraint> getPolicyConstraints(X509Certificate cert) {
    try {//w w w  . j a v  a  2  s  .  c o  m
        byte[] value = cert.getExtensionValue(X509Extensions.PolicyConstraints.getId());
        if (value == null) {
            return Collections.emptySet();
        }
        ASN1Sequence constraintsSequence = (ASN1Sequence) ASN1Object.fromByteArray(value);
        Set<PolicyConstraint> constraints = new LinkedHashSet<PolicyConstraint>();
        for (int idx = 0; idx < constraintsSequence.size(); idx++) {
            DERTaggedObject asn1Constraint = (DERTaggedObject) constraintsSequence.getObjectAt(idx);
            DERInteger skipCerts = new DERInteger(((DEROctetString) asn1Constraint.getObject()).getOctets());
            PolicyConstraint constraint = new PolicyConstraint();
            switch (asn1Constraint.getTagNo()) {
            case 0:
                constraint.setRequireExplicitPolicy(skipCerts.getValue().intValue());
                break;
            case 1:
                constraint.setInhibitPolicyMapping(skipCerts.getValue().intValue());
            }
            constraints.add(constraint);
        }
        return constraints;
    } catch (IOException ex) {
        throw new CryptoFailure("Unable to extract PolicyConstraints from X509Certificate extensions", ex);
    }
}