@Override public boolean isHostMatch(String host) { if (super.isHostMatch(host)) { return true; } KnownHostHashValue hash = getHashedEntry(); return (hash != null) && hash.isHostMatch(host); }
public static <E extends KnownHostEntry> E parseKnownHostEntry(E entry, String data) { String line = data; if (GenericUtils.isEmpty(line) || (line.charAt(0) == PublicKeyEntry.COMMENT_CHAR)) { return entry; } entry.setConfigLine(line); if (line.charAt(0) == MARKER_INDICATOR) { int pos = line.indexOf(' '); ValidateUtils.checkTrue(pos > 0, "Missing marker name end delimiter in line=%s", data); ValidateUtils.checkTrue(pos > 1, "No marker name after indicator in line=%s", data); entry.setMarker(line.substring(1, pos)); line = line.substring(pos + 1).trim(); } else { entry.setMarker(null); } int pos = line.indexOf(' '); ValidateUtils.checkTrue(pos > 0, "Missing host patterns end delimiter in line=%s", data); String hostPattern = line.substring(0, pos); line = line.substring(pos + 1).trim(); if (hostPattern.charAt(0) == KnownHostHashValue.HASHED_HOST_DELIMITER) { KnownHostHashValue hash = ValidateUtils.checkNotNull( KnownHostHashValue.parse(hostPattern), "Failed to extract host hash value from line=%s", data); entry.setHashedEntry(hash); entry.setPatterns(null); } else { entry.setHashedEntry(null); entry.setPatterns(parsePatterns(GenericUtils.split(hostPattern, ','))); } AuthorizedKeyEntry key = ValidateUtils.checkNotNull( AuthorizedKeyEntry.parseAuthorizedKeyEntry(line), "No valid key entry recovered from line=%s", data); entry.setKeyEntry(key); return entry; }