class Net::SSH::Transport::CipherFactory
def self.get_lengths(name, options = {})
of the tuple.
algorithm is unknown, or is "none", 0 is returned for both elements
block-size ] for the named cipher algorithm. If the cipher
Returns a two-element array containing the [ key-length,
def self.get_lengths(name, options = {}) klass = SSH_TO_CLASS[name] return [klass.key_length, klass.block_size] unless klass.nil? ossl_name = SSH_TO_OSSL[name] if ossl_name.nil? || ossl_name == "none" result = [0, 0] result << 0 if options[:iv_len] else cipher = OpenSSL::Cipher.new(ossl_name) key_len = cipher.key_len cipher.key_len = key_len block_size = case ossl_name when /\-ctr/ Net::SSH::Transport::OpenSSLAESCTR.block_size else cipher.block_size end result = [key_len, block_size] result << cipher.iv_len if options[:iv_len] end result end