Example usage for org.bouncycastle.asn1.x509 DistributionPoint DistributionPoint

List of usage examples for org.bouncycastle.asn1.x509 DistributionPoint DistributionPoint

Introduction

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

Prototype

public DistributionPoint(ASN1Sequence seq) 

Source Link

Usage

From source file:de.thiemann.ssl.report.model.CertificateV3.java

License:Open Source License

private List<String> transferDistributionPoints(byte[] extension) {
    if (extension == null)
        return null;

    ASN1Sequence crlDistributionPoints = null;

    try {/*from w w  w.  j  a  va2s  .  c  o  m*/
        ASN1Object o = null;

        o = (DEROctetString) ASN1Object.fromByteArray(extension);
        if (o instanceof DEROctetString) {
            DEROctetString octStr = (DEROctetString) o;

            o = ASN1Object.fromByteArray(octStr.getOctets());
            if (o instanceof ASN1Sequence) {
                crlDistributionPoints = (ASN1Sequence) o;
            }
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

    if (crlDistributionPoints == null)
        return null;

    List<String> l = new ArrayList<String>();
    Enumeration<?> e = crlDistributionPoints.getObjects();
    while (e.hasMoreElements()) {
        Object o = e.nextElement();

        if (o instanceof ASN1Sequence) {
            ASN1Sequence seqDP = (ASN1Sequence) o;
            DistributionPoint dp = new DistributionPoint(seqDP);

            DistributionPointName dpn = dp.getDistributionPoint();
            ASN1Encodable enc = dpn.getName();

            if (enc instanceof GeneralNames) {
                GeneralNames gns = (GeneralNames) enc;

                for (GeneralName gn : gns.getNames()) {
                    l.add(gn.toString());
                }
            }
        }
    }

    if (!l.isEmpty())
        return l;
    else
        return null;
}