/** * Reads the value of the extension given by OID or name as defined in section 4.2 of RFC 2459. * * @param extensionOidOrName OID or extension name, e.g. 2.5.29.14 orSubjectK eyIdentifier. In the * case of extension name, the name is case-sensitive and follows the conventions in RFC 2459. * @return Extension type containing data from requested extension field. */ public ASN1Encodable read(final String extensionOidOrName) { if (extensionOidOrName == null) { throw new IllegalArgumentException("extensionOidOrName cannot be null."); } if (extensionOidOrName.contains(".")) { return read(ExtensionType.fromOid(extensionOidOrName)); } else { return read(ExtensionType.fromName(extensionOidOrName)); } }
/** * Reads the value of the given certificate extension field. * * @param extension Extension to read from certificate. * @return Extension type containing data from requested extension field. */ public ASN1Encodable read(final ExtensionType extension) { byte[] data = certificate.getExtensionValue(extension.getOid()); if (data == null) { return null; } try { ASN1Encodable der = ASN1Primitive.fromByteArray(data); if (der instanceof ASN1OctetString) { // Strip off octet string "wrapper" data = ((ASN1OctetString) der).getOctets(); der = ASN1Primitive.fromByteArray(data); } return der; } catch (IOException e) { throw new IllegalArgumentException("IO exception parsing ASN.1 data", e); } }