static List getSubjectAltNames()

in httpclient5/src/main/java/org/apache/hc/client5/http/ssl/DefaultHostnameVerifier.java [303:334]


    static List<SubjectName> getSubjectAltNames(final X509Certificate cert, final int subjectName) {
        try {
            final Collection<List<?>> entries = cert.getSubjectAlternativeNames();
            if (entries == null) {
                return Collections.emptyList();
            }
            final List<SubjectName> result = new ArrayList<>();
            for (final List<?> entry : entries) {
                final Integer type = entry.size() >= 2 ? (Integer) entry.get(0) : null;
                if (type != null) {
                    if (type == subjectName || -1 == subjectName) {
                        final Object o = entry.get(1);
                        if (o instanceof String) {
                            result.add(new SubjectName((String) o, type));
                        } else if (o instanceof byte[]) {
                            final byte[] bytes = (byte[]) o;
                            if (type == SubjectName.IP) {
                                if (bytes.length == 4) {
                                    result.add(new SubjectName(byteArrayToIp(bytes), type)); // IPv4
                                } else if (bytes.length == 16) {
                                    result.add(new SubjectName(byteArrayToIPv6(bytes), type)); // IPv6
                                }
                            }
                        }
                    }
                }
            }
            return result;
        } catch (final CertificateParsingException ignore) {
            return Collections.emptyList();
        }
    }