public static <V extends KnownHostHashValue> V parse(String patternString, V value) { String pattern = GenericUtils.replaceWhitespaceAndTrim(patternString); if (GenericUtils.isEmpty(pattern)) { return value; } String[] components = GenericUtils.split(pattern, HASHED_HOST_DELIMITER); ValidateUtils.checkTrue(components.length == 4 /* 1st one is empty */, "Invalid hash pattern (insufficient data): %s", pattern); ValidateUtils.checkTrue(GenericUtils.isEmpty(components[0]), "Invalid hash pattern (unexpected extra data): %s", pattern); NamedFactory<Mac> factory = ValidateUtils.checkNotNull(KnownHostDigest.fromName(components[1]), "Invalid hash pattern (unknown digest): %s", pattern); Base64.Decoder decoder = Base64.getDecoder(); value.setDigester(factory); value.setSaltValue(decoder.decode(components[2])); value.setDigestValue(decoder.decode(components[3])); return value; } }
public static <V extends KnownHostHashValue> V parse(String patternString, V value) { String pattern = GenericUtils.replaceWhitespaceAndTrim(patternString); if (GenericUtils.isEmpty(pattern)) { return value; } String[] components = GenericUtils.split(pattern, HASHED_HOST_DELIMITER); ValidateUtils.checkTrue(components.length == 4 /* 1st one is empty */, "Invalid hash pattern (insufficient data): %s", pattern); ValidateUtils.checkTrue(GenericUtils.isEmpty(components[0]), "Invalid hash pattern (unexpected extra data): %s", pattern); NamedFactory<Mac> factory = ValidateUtils.checkNotNull(KnownHostDigest.fromName(components[1]), "Invalid hash pattern (unknown digest): %s", pattern); Base64.Decoder decoder = Base64.getDecoder(); value.setDigester(factory); value.setSaltValue(decoder.decode(components[2])); value.setDigestValue(decoder.decode(components[3])); return value; } }