package com.jscape.inet.ssh.protocol.v2.transport.keyexchange;

import java.util.List;

/**
 * A SSH key exchange factory. Provides services for creating key exchange operations.
 *
 * @author Alex Usun
 */
public interface ClientKeyExchangeFactory {

    /**
     * Returns supported key exchange algorithms.
     *
     * @return supported key exchange algorithms
     */
    List<String> keyExchanges();

    /**
     * Returns a key exchange operation.
     *
     * @param name a key exchange algorithm
     *
     * @return a key exchange operation
     */
    ClientKeyExchange keyExchangeFor(String name);

}
