List of usage examples for org.bouncycastle.asn1.isismtt.x509 ProfessionInfo getProfessionItems
public DirectoryString[] getProfessionItems()
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("; "); } }