/** * Recover the associated public key from a known host entry * * @param entry The {@link KnownHostEntry} - ignored if {@code null} * @param resolver The {@link PublicKeyEntryResolver} to use if immediate * - decoding does not work - ignored if {@code null} * @return The extracted {@link PublicKey} - {@code null} if none * @throws IOException If failed to decode the key * @throws GeneralSecurityException If failed to generate the key * @see #getFallbackPublicKeyEntryResolver() * @see AuthorizedKeyEntry#resolvePublicKey(PublicKeyEntryResolver) */ protected PublicKey resolveHostKey(KnownHostEntry entry, PublicKeyEntryResolver resolver) throws IOException, GeneralSecurityException { if (entry == null) { return null; } AuthorizedKeyEntry authEntry = ValidateUtils.checkNotNull(entry.getKeyEntry(), "No key extracted from %s", entry); PublicKey key = authEntry.resolvePublicKey(resolver); if (log.isDebugEnabled()) { log.debug("resolveHostKey({}) loaded {}-{}", entry, KeyUtils.getKeyType(key), KeyUtils.getFingerPrint(key)); } return key; }
/** * Recover the associated public key from a known host entry * * @param session The {@link ClientSession} that triggered this request * @param entry The {@link KnownHostEntry} - ignored if {@code null} * @param resolver The {@link PublicKeyEntryResolver} to use if immediate * - decoding does not work - ignored if {@code null} * @return The extracted {@link PublicKey} - {@code null} if none * @throws IOException If failed to decode the key * @throws GeneralSecurityException If failed to generate the key * @see #getFallbackPublicKeyEntryResolver() * @see AuthorizedKeyEntry#resolvePublicKey(SessionContext, PublicKeyEntryResolver) */ protected PublicKey resolveHostKey( ClientSession session, KnownHostEntry entry, PublicKeyEntryResolver resolver) throws IOException, GeneralSecurityException { if (entry == null) { return null; } AuthorizedKeyEntry authEntry = ValidateUtils.checkNotNull(entry.getKeyEntry(), "No key extracted from %s", entry); PublicKey key = authEntry.resolvePublicKey(session, resolver); if (log.isDebugEnabled()) { log.debug("resolveHostKey({}) loaded {}-{}", entry, KeyUtils.getKeyType(key), KeyUtils.getFingerPrint(key)); } return key; }
AuthorizedKeyEntry keyPart = entry.getKeyEntry(); if (keyPart == null) { continue;