Example usage for org.bouncycastle.asn1 ASN1Set iterator

List of usage examples for org.bouncycastle.asn1 ASN1Set iterator

Introduction

In this page you can find the example usage for org.bouncycastle.asn1 ASN1Set iterator.

Prototype

public Iterator<ASN1Encodable> iterator() 

Source Link

Usage

From source file:se.tillvaxtverket.ttsigvalws.ttwssigvalidation.pdf.PdfBoxSigUtil.java

License:Open Source License

/**
 * Gets a map of recognized subject DN attributes
 *
 * @param subjectDn subhect Dn/*from  w  w  w .  j a  va2 s.  c o  m*/
 * @return Subject DN attribute map
 */
public static Map<SubjectDnAttribute, String> getSubjectAttributes(ASN1Sequence subjectDn) {
    Map<SubjectDnAttribute, String> subjectDnAttributeMap = new EnumMap<SubjectDnAttribute, String>(
            SubjectDnAttribute.class);
    try {
        Iterator<ASN1Encodable> subjDnIt = subjectDn.iterator();
        while (subjDnIt.hasNext()) {
            ASN1Set rdnSet = (ASN1Set) subjDnIt.next();
            Iterator<ASN1Encodable> rdnSetIt = rdnSet.iterator();
            while (rdnSetIt.hasNext()) {
                ASN1Sequence rdnSeq = (ASN1Sequence) rdnSetIt.next();
                ASN1ObjectIdentifier rdnOid = (ASN1ObjectIdentifier) rdnSeq.getObjectAt(0);
                String oidStr = rdnOid.getId();
                ASN1Encodable rdnVal = rdnSeq.getObjectAt(1);
                String rdnValStr = getStringValue(rdnVal);
                SubjectDnAttribute subjectDnAttr = SubjectDnAttribute.getSubjectDnFromOid(oidStr);
                if (!subjectDnAttr.equals(SubjectDnAttribute.unknown)) {
                    subjectDnAttributeMap.put(subjectDnAttr, rdnValStr);
                }
            }
        }

    } catch (Exception e) {
    }

    return subjectDnAttributeMap;
}