Example usage for org.bouncycastle.asn1.isismtt.x509 ProfessionInfo getProfessionItems

List of usage examples for org.bouncycastle.asn1.isismtt.x509 ProfessionInfo getProfessionItems

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.isismtt.x509 ProfessionInfo getProfessionItems.

Prototype

public DirectoryString[] getProfessionItems() 

Source Link

Usage

From source file:net.sf.keystore_explorer.crypto.x509.X509Ext.java

License:Open Source License

private String getAdmissionStringValue(byte[] octets) throws IOException {

    // @formatter:off

    /*/*w  w  w. j  av a  2 s  .com*/
        AdmissionSyntax ::= SEQUENCE
         {
     admissionAuthority GeneralName OPTIONAL,
     contentsOfAdmissions SEQUENCE OF Admissions
         }
         Admissions ::= SEQUENCE
         {
     admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
     namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
     professionInfos SEQUENCE OF ProfessionInfo
         }
         NamingAuthority ::= SEQUENCE
         {
     namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
     namingAuthorityUrl IA5String OPTIONAL,
     namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
         }
         ProfessionInfo ::= SEQUENCE
         {
     namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
     professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
     professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
     registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
     addProfessionInfo OCTET STRING OPTIONAL
         }
     */

    // @formatter:on

    StringBuilder sb = new StringBuilder();
    int indentLevel = 1;

    AdmissionSyntax admissionSyntax = AdmissionSyntax.getInstance(ASN1Sequence.getInstance(octets));
    GeneralName admissionAuthority = admissionSyntax.getAdmissionAuthority();

    if (admissionAuthority != null) {
        sb.append(MessageFormat.format(res.getString("Admission.AdmissionAuthority"),
                GeneralNameUtil.toString(admissionAuthority)));
        sb.append(NEWLINE);
    }

    Admissions[] admissions = admissionSyntax.getContentsOfAdmissions();
    int admissionNr = 0;
    for (Admissions admission : admissions) {
        sb.append(MessageFormat.format(res.getString("Admission.Admission"), ++admissionNr));
        sb.append(NEWLINE);

        admissionAuthority = admission.getAdmissionAuthority();
        NamingAuthority namingAuthority = admission.getNamingAuthority();
        ProfessionInfo[] professionInfos = admission.getProfessionInfos();

        if (admissionAuthority != null) {
            sb.append(INDENT.toString(indentLevel));
            sb.append(MessageFormat.format(res.getString("Admission.AdmissionAuthority"),
                    GeneralNameUtil.toString(admissionAuthority)));
            sb.append(NEWLINE);
        }

        if (namingAuthority != null) {
            sb.append(getNamingAuthorityStringValue(namingAuthority, indentLevel));
        }

        for (ProfessionInfo professionInfo : professionInfos) {

            namingAuthority = professionInfo.getNamingAuthority();
            ASN1ObjectIdentifier[] professionOIDs = professionInfo.getProfessionOIDs();
            String registrationNumber = professionInfo.getRegistrationNumber();
            ASN1OctetString addProfessionInfo = professionInfo.getAddProfessionInfo();

            sb.append(INDENT.toString(indentLevel));
            sb.append(res.getString("Admission.ProfessionInfo"));
            sb.append(NEWLINE);
            indentLevel++;

            if (namingAuthority != null) {
                sb.append(getNamingAuthorityStringValue(namingAuthority, indentLevel));
            }

            DirectoryString[] professionItems = professionInfo.getProfessionItems();
            for (DirectoryString professionItem : professionItems) {
                sb.append(INDENT.toString(indentLevel));
                sb.append(MessageFormat.format(res.getString("Admission.ProfessionItem"),
                        professionItem.toString()));
                sb.append(NEWLINE);
            }

            if (professionOIDs != null) {
                for (ASN1ObjectIdentifier professionOID : professionOIDs) {
                    sb.append(INDENT.toString(indentLevel));
                    sb.append(MessageFormat.format(res.getString("Admission.ProfessionOID"),
                            professionOID.getId()));
                    sb.append(NEWLINE);
                }
            }

            if (registrationNumber != null) {
                sb.append(INDENT.toString(indentLevel));
                sb.append(MessageFormat.format(res.getString("Admission.RegistrationNumber"),
                        registrationNumber));
                sb.append(NEWLINE);
            }

            if (addProfessionInfo != null) {
                sb.append(INDENT.toString(indentLevel));
                sb.append(MessageFormat.format(res.getString("Admission.AddProfessionInfo"),
                        HexUtil.getHexString(addProfessionInfo.getOctets())));
                sb.append(NEWLINE);
            }

            indentLevel--;
        }
    }

    return sb.toString();
}

From source file:org.xipki.ca.qa.impl.X509CertprofileQAImpl.java

License:Open Source License

private void checkExtensionAdmission(final StringBuilder failureMsg, final byte[] extensionValue,
        final Extensions requestExtensions, final ExtensionControl extControl) {
    QaAdmission conf = admission;//from   w w  w. j a va  2  s.c  om
    if (conf == null) {
        byte[] expected = getExpectedExtValue(ObjectIdentifiers.id_extension_admission, requestExtensions,
                extControl);
        if (Arrays.equals(expected, extensionValue) == false) {
            failureMsg.append("extension valus is '").append(hex(extensionValue));
            failureMsg.append("' but expected '").append(expected == null ? "not present" : hex(expected))
                    .append("'");
            failureMsg.append("; ");
        }
        return;
    }

    ASN1Sequence seq = ASN1Sequence.getInstance(extensionValue);
    AdmissionSyntax iAdmissionSyntax = AdmissionSyntax.getInstance(seq);
    Admissions[] iAdmissions = iAdmissionSyntax.getContentsOfAdmissions();
    int n = iAdmissions == null ? 0 : iAdmissions.length;
    if (n != 1) {
        failureMsg.append("size of Admissions is '").append(n).append("' but expected is '1'");
        failureMsg.append("; ");
        return;
    }

    Admissions iAdmission = iAdmissions[0];
    ProfessionInfo[] iProfessionInfos = iAdmission.getProfessionInfos();
    n = iProfessionInfos == null ? 0 : iProfessionInfos.length;
    if (n != 1) {
        failureMsg.append("size of ProfessionInfo is '").append(n).append("' but expected is '1'");
        failureMsg.append("; ");
        return;
    }

    ProfessionInfo iProfessionInfo = iProfessionInfos[0];
    String iRegistrationNumber = iProfessionInfo.getRegistrationNumber();
    String eRegistrationNumber = conf.getRegistrationNumber();
    if (eRegistrationNumber == null) {
        if (iRegistrationNumber != null) {
            failureMsg.append("RegistrationNumber is '").append(iRegistrationNumber);
            failureMsg.append("' but expected is 'null'");
            failureMsg.append("; ");
        }
    } else if (eRegistrationNumber.equals(iRegistrationNumber) == false) {
        failureMsg.append("RegistrationNumber is '").append(iRegistrationNumber);
        failureMsg.append("' but expected is '").append(eRegistrationNumber).append("'");
        failureMsg.append("; ");
    }

    byte[] iAddProfessionInfo = null;
    if (iProfessionInfo.getAddProfessionInfo() != null) {
        iAddProfessionInfo = iProfessionInfo.getAddProfessionInfo().getOctets();
    }
    byte[] eAddProfessionInfo = conf.getAddProfessionInfo();
    if (eAddProfessionInfo == null) {
        if (iAddProfessionInfo != null) {
            failureMsg.append("AddProfessionInfo is '").append(hex(iAddProfessionInfo));
            failureMsg.append("' but expected is 'null'");
            failureMsg.append("; ");
        }
    } else {
        if (iAddProfessionInfo == null) {
            failureMsg.append("AddProfessionInfo is 'null' but expected is '").append(hex(eAddProfessionInfo));
            failureMsg.append("'");
            failureMsg.append("; ");
        } else if (Arrays.equals(eAddProfessionInfo, iAddProfessionInfo) == false) {
            failureMsg.append("AddProfessionInfo is '").append(hex(iAddProfessionInfo));
            failureMsg.append("' but expected is '").append(hex(eAddProfessionInfo)).append("'");
            failureMsg.append("; ");
        }
    }

    List<String> eProfessionOids = conf.getProfessionOIDs();
    ASN1ObjectIdentifier[] _iProfessionOids = iProfessionInfo.getProfessionOIDs();
    List<String> iProfessionOids = new LinkedList<>();
    if (_iProfessionOids != null) {
        for (ASN1ObjectIdentifier entry : _iProfessionOids) {
            iProfessionOids.add(entry.getId());
        }
    }

    Set<String> diffs = str_in_b_not_in_a(eProfessionOids, iProfessionOids);
    if (CollectionUtil.isNotEmpty(diffs)) {
        failureMsg.append("ProfessionOIDs ").append(diffs.toString()).append(" are present but not expected");
        failureMsg.append("; ");
    }

    diffs = str_in_b_not_in_a(iProfessionOids, eProfessionOids);
    if (CollectionUtil.isNotEmpty(diffs)) {
        failureMsg.append("ProfessionOIDs ").append(diffs.toString()).append(" are absent but are required");
        failureMsg.append("; ");
    }

    List<String> eProfessionItems = conf.getProfessionItems();
    DirectoryString[] items = iProfessionInfo.getProfessionItems();
    List<String> iProfessionItems = new LinkedList<>();
    if (items != null) {
        for (DirectoryString item : items) {
            iProfessionItems.add(item.getString());
        }
    }

    diffs = str_in_b_not_in_a(eProfessionItems, iProfessionItems);
    if (CollectionUtil.isNotEmpty(diffs)) {
        failureMsg.append("ProfessionItems ").append(diffs.toString()).append(" are present but not expected");
        failureMsg.append("; ");
    }

    diffs = str_in_b_not_in_a(iProfessionItems, eProfessionItems);
    if (CollectionUtil.isNotEmpty(diffs)) {
        failureMsg.append("ProfessionItems ").append(diffs.toString()).append(" are absent but are required");
        failureMsg.append("; ");
    }
}