private SubjectInfoAccess(ASN1Sequence seq) { accessDescriptions = new Vector<>(); for (int i = 0; i != seq.size(); i++) { accessDescriptions.add(AccessDescription.getInstance(seq.getObjectAt(i))); } }
private AuthorityInformationAccess( ASN1Sequence seq) { if (seq.size() < 1) { throw new IllegalArgumentException("sequence may not be empty"); } descriptions = new AccessDescription[seq.size()]; for (int i = 0; i != seq.size(); i++) { descriptions[i] = AccessDescription.getInstance(seq.getObjectAt(i)); } }
private AuthorityInformationAccess( ASN1Sequence seq) { if (seq.size() < 1) { throw new IllegalArgumentException("sequence may not be empty"); } descriptions = new AccessDescription[seq.size()]; for (int i = 0; i != seq.size(); i++) { descriptions[i] = AccessDescription.getInstance(seq.getObjectAt(i)); } }
/** * Reads the value of the <code>AuthorityInformationAccess</code> extension field of the certificate. * * @return List of access descriptions or null if extension is not defined. * * @throws EncodingException On certificate field parse errors. */ public List<AccessDescription> readAuthorityInformationAccess() throws EncodingException { final ASN1Encodable data = read(ExtensionType.AuthorityInformationAccess); if (data == null) { return null; } try { final ASN1Sequence sequence = ASN1Sequence.getInstance(data); final List<AccessDescription> list = new ArrayList<>(sequence.size()); for (int i = 0; i < sequence.size(); i++) { list.add(AccessDescription.getInstance(sequence.getObjectAt(i))); } return list; } catch (RuntimeException e) { throw new EncodingException("AccessDescription parse error", e); } }
AccessDescription ad = AccessDescription.getInstance(requestSeq.getObjectAt(i)); ASN1ObjectIdentifier accessMethod = ad.getAccessMethod(); Set<GeneralNameMode> generalNameModes = conf.get(accessMethod); AccessDescription certAccessDesc = AccessDescription.getInstance( certSeq.getObjectAt(i)); ASN1ObjectIdentifier certAccessMethod = certAccessDesc.getAccessMethod();
private static ASN1Sequence createSubjectInfoAccess(Extensions requestedExtensions, Map<ASN1ObjectIdentifier, Set<GeneralNameMode>> modes) throws BadCertTemplateException { if (modes == null) { return null; } ASN1Encodable extValue = requestedExtensions.getExtensionParsedValue( Extension.subjectInfoAccess); if (extValue == null) { return null; } ASN1Sequence reqSeq = ASN1Sequence.getInstance(extValue); int size = reqSeq.size(); ASN1EncodableVector vec = new ASN1EncodableVector(); for (int i = 0; i < size; i++) { AccessDescription ad = AccessDescription.getInstance(reqSeq.getObjectAt(i)); ASN1ObjectIdentifier accessMethod = ad.getAccessMethod(); Set<GeneralNameMode> generalNameModes = modes.get(accessMethod); if (generalNameModes == null) { throw new BadCertTemplateException("subjectInfoAccess.accessMethod " + accessMethod.getId() + " is not allowed"); } GeneralName accessLocation = BaseCertprofile.createGeneralName( ad.getAccessLocation(), generalNameModes); vec.add(new AccessDescription(accessMethod, accessLocation)); } // end for return vec.size() > 0 ? new DERSequence(vec) : null; } // method createSubjectInfoAccess