Lines Matching defs:cn
141 String cn = hostnameCache.get(hostname);
142 if (cn != null) {
144 return entries.get(cn);
147 // otherwise, get the matching cn
148 cn = getMatchingCN(hostname);
149 if (cn != null) {
150 hostnameCache.put(hostname, cn);
152 return entries.get(cn);
165 for (String cn : entries.keySet()) {
167 if (cn.length() < bestMatch.length()) {
171 if (isHostnameMatchedBy(hostname, cn)) {
172 bestMatch = cn;
179 * Returns true if {@code hostName} matches the name or pattern {@code cn}.
182 * @param cn certificate host name. May include wildcards like
185 private static boolean isHostnameMatchedBy(String hostName, String cn) {
186 if (hostName == null || hostName.isEmpty() || cn == null || cn.isEmpty()) {
190 cn = cn.toLowerCase(Locale.US);
192 if (!cn.contains("*")) {
193 return hostName.equals(cn);
196 if (cn.startsWith("*.") && hostName.regionMatches(0, cn, 2, cn.length() - 2)) {
200 int asterisk = cn.indexOf('*');
201 int dot = cn.indexOf('.');
204 // the cn
207 if (!hostName.regionMatches(0, cn, 0, asterisk)) {
211 int suffixLength = cn.length() - (asterisk + 1);
217 if (!hostName.regionMatches(suffixStart, cn, asterisk + 1, suffixLength)) {