Back to Libssh2 Homepage

Libssh2 Cyclomatic Complexity Report

Report generated at: Mon Oct 13 11:12:57 CEST 2008

Resume

Total number of functions 196
Number of low risk functions 136
Number of moderate risk functions 38
Number of high risk functions 18
Number of untestable functions 4

Details for all functions

Used ranges:

  Cyclomatic Complexity Risk Evaluation
  0 - 10 Simple module, without much risk
  11 - 20 More complex module, moderate risk
  21 - 50 Complex module, high risk
  greater than 50 Untestable module, very high risk

Function Name Cyclomatic
Complexity
Number of
Statements
Number of
Lines
Source File
libssh2_scp_recv 83 217 496 src/scp.c
libssh2_session_free 63 117 228 src/session.c
libssh2_poll 70 159 298 src/session.c
libssh2_kex_method_diffie_hellman_groupGP_sha1_key_exchange 60 294 581 src/kex.c
libssh2_packet_add 57 204 510 src/packet.c
libssh2_scp_send_ex 42 124 255 src/scp.c
libssh2_channel_read_ex 35 67 174 src/channel.c
ssh_host_parse_key 34 78 154 src/sshentry.c
libssh2_packet_read 37 120 331 src/transport.c
libssh2_publickey_init 30 118 229 src/publickey.c
libssh2_userauth_keyboard_interactive_ex 29 169 323 src/userauth.c
libssh2_sftp_readdir_ex 26 112 196 src/sftp.c
libssh2_userauth_password_ex 25 131 246 src/userauth.c
libssh2_channel_open_ex 25 106 205 src/channel.c
libssh2_userauth_publickey_fromfile_ex 24 179 312 src/userauth.c
libssh2_kex_exchange 23 71 125 src/kex.c
libssh2_publickey_list_fetch 23 138 226 src/publickey.c
libssh2_sftp_init 22 94 168 src/sftp.c
libssh2_comp_method_zlib_comp 22 74 132 src/comp.c
libssh2_session_startup 22 70 143 src/session.c
libssh2_channel_write_ex 22 69 174 src/channel.c
libssh2_packet_write 21 68 150 src/transport.c
libssh2_channel_forward_listen_ex 20 94 156 src/channel.c
libssh2_sftp_open_ex 20 90 151 src/sftp.c
libssh2_sftp_packet_read 20 57 102 src/sftp.c
libssh2_sftp_symlink_ex 21 80 137 src/sftp.c
libssh2_kex_agree_hostkey 19 28 65 src/kex.c
libssh2_packet_queue_listener 19 117 205 src/packet.c
libssh2_channel_x11_req_ex 18 77 124 src/channel.c
libssh2_publickey_add_ex 17 92 133 src/publickey.c
libssh2_kex_agree_methods 17 64 119 src/kex.c
libssh2_channel_flush_ex 17 32 73 src/channel.c
libssh2_kex_agree_kex_hostkey 17 30 70 src/kex.c
libssh2_userauth_hostbased_fromfile_ex 17 130 232 src/userauth.c
libssh2_channel_free 16 38 87 src/channel.c
libssh2_banner_receive 19 46 95 src/session.c
libssh2_sftp_stat_ex 17 67 112 src/sftp.c
libssh2_sftp_read 16 97 162 src/sftp.c
libssh2_sftp_fstat_ex 15 63 97 src/sftp.c
  _libssh2_rsa_new_private 3 7 20 src/openssl.c
libssh2_file_read_publickey 15 52 96 src/userauth.c
libssh2_sftp_close_handle 14 63 101 src/sftp.c
  _libssh2_dsa_sha1_sign 3 16 29 src/openssl.c
libssh2_channel_packet_data_len 14 11 47 src/channel.c
  _libssh2_dsa_new_private 3 7 20 src/openssl.c
fullpacket 13 43 109 src/transport.c
libssh2_sftp_shutdown 13 37 57 src/sftp.c
libssh2_channel_close 13 35 63 src/channel.c
libssh2_sftp_packet_requirev 13 30 62 src/sftp.c
libssh2_session_last_error 13 27 50 src/session.c
libssh2_session_method_pref 21 60 108 src/kex.c
libssh2_sftp_rename_ex 14 71 123 src/sftp.c
libssh2_packet_x11_open 12 98 159 src/packet.c
libssh2_channel_request_pty_ex 12 69 117 src/channel.c
libssh2_channel_process_startup 12 58 103 src/channel.c
libssh2_packet_require_ex 12 24 55 src/packet.c
libssh2_userauth_list 11 62 109 src/userauth.c
libssh2_new_host_entry 11 35 50 src/sshentry.c
libssh2_kex_agree_comp 11 25 50 src/kex.c
libssh2_kex_agree_mac 11 25 49 src/kex.c
libssh2_kex_agree_crypt 11 25 51 src/kex.c
libssh2_packet_requirev_ex 11 21 51 src/packet.c
libssh2_packet_ask_ex 11 20 57 src/packet.c
  libssh2_channel_setenv_ex 10 59 105 src/channel.c
  libssh2_kex_method_diffie_hellman_group_exchange_sha1_key_exchange 10 56 97 src/kex.c
  libssh2_channel_forward_cancel 10 52 86 src/channel.c
  libssh2_kex_agree_instr 10 11 33 src/kex.c
  libssh2_sftp_write 9 58 88 src/sftp.c
  libssh2_sftp_mkdir_ex 9 57 89 src/sftp.c
  libssh2_sftp_rmdir_ex 9 51 80 src/sftp.c
  libssh2_sftp_unlink_ex 9 51 81 src/sftp.c
  _libssh2_pem_parse 9 32 54 src/pem.c
  libssh2_sftp_packet_ask 9 29 54 src/sftp.c
  libssh2_packet_burn 9 29 53 src/packet.c
  debugdump 9 24 37 src/transport.c
  libssh2_publickey_response_success 8 43 75 src/publickey.c
  libssh2_session_disconnect_ex 8 36 64 src/session.c
  ssh_host_parse_hostnames 8 31 51 src/sshentry.c
  libssh2_publickey_packet_receive 8 31 54 src/publickey.c
  libssh2_banner_send 8 26 55 src/session.c
  libssh2_channel_receive_window_adjust 8 25 53 src/channel.c
  libssh2_poll_channel_read 8 10 24 src/session.c
  libssh2_publickey_remove_ex 7 45 73 src/publickey.c
  libssh2_publickey_status_error 7 28 49 src/publickey.c
  _libssh2_rsa_sha1_sign 3 14 30 src/openssl.c
  send_existing 7 22 51 src/transport.c
  libssh2_channel_wait_closed 7 19 41 src/channel.c
  libssh2_free_host_entry 7 18 39 src/sshentry.c
  read_asn1_length 7 18 33 src/pem.c
  libssh2_file_read_privatekey 7 16 39 src/userauth.c
  libssh2_channel_window_read_ex 7 12 30 src/channel.c
  libssh2_base64_decode 9 28 45 src/misc.c
  libssh2_kexinit 6 81 153 src/kex.c
  readline 6 7 14 src/pem.c
  libssh2_channel_request_pty_size_ex 6 45 74 src/channel.c
  libssh2_sftp_attr2bin 6 24 44 src/sftp.c
  libssh2_channel_forward_accept 6 23 41 src/channel.c
  _libssh2_cipher_init 1 3 9 src/openssl.c
  libssh2_channel_wait_eof 6 17 35 src/channel.c
  libssh2_publickey_shutdown 6 17 32 src/publickey.c
  libssh2_publickey_response_id 6 16 31 src/publickey.c
  libssh2_sftp_packet_require 6 14 35 src/sftp.c
  libssh2_sftp_attrsize 6 12 20 src/sftp.c
  libssh2_host_entry_match 5 9 19 src/sshentry.c
  libssh2_kex_method_strlen 5 7 16 src/kex.c
  libssh2_channel_eof 5 7 18 src/channel.c
  libssh2_channel_direct_tcpip_ex 5 34 66 src/channel.c
  libssh2_hostkey_method_ssh_rsa_init 5 25 44 src/hostkey.c
  libssh2_sftp_bin2attr 5 21 35 src/sftp.c
  libssh2_session_init_ex 5 20 33 src/session.c
  libssh2_banner_set 5 18 31 src/session.c
  _libssh2_pem_decode_integer 5 18 34 src/pem.c
  _libssh2_pem_decode_sequence 5 14 27 src/pem.c
  libssh2_kex_method_list 5 11 21 src/kex.c
  libssh2_channel_handle_extended_data2 5 10 26 src/channel.c
  libssh2_packet_askv_ex 4 8 26 src/packet.c
  libssh2_get_method_by_name 4 5 13 src/kex.c
  libssh2_hostkey_method_ssh_dss_init 4 32 47 src/hostkey.c
  libssh2_hostkey_method_ssh_dss_signv 4 19 34 src/hostkey.c
  libssh2_comp_method_zlib_init 4 18 35 src/comp.c
  _libssh2_rsa_sha1_verify 2 6 14 src/openssl.c
  _libssh2_dsa_sha1_verify 2 13 21 src/openssl.c
  libssh2_hostkey_method_ssh_dss_initPEM 4 15 30 src/hostkey.c
  libssh2_hostkey_method_ssh_rsa_initPEM 4 15 30 src/hostkey.c
  _libssh2_get_socket_nonblocking 4 14 55 src/session.c
  _libssh2_debug 4 14 35 src/misc.c
  _libssh2_cipher_crypt 3 8 19 src/libgcrypt.c
  LIBSSH2_CHANNEL_CLOSE_FUNC 4 10 24 src/sftp.c
  ssh_unit_tests 4 10 27 src/sshentry.c
  ssh_proto_str_read 3 9 19 src/sshentry.c
  _libssh2_cipher_crypt 3 8 19 src/libgcrypt.c
  libssh2_comp_method_zlib_dtor 3 8 22 src/comp.c
  _libssh2_dsa_new 2 13 33 src/openssl.c
  libssh2_publickey_list_free 3 8 17 src/publickey.c
  _libssh2_dsa_new_private 3 7 20 src/openssl.c
  _libssh2_rsa_new_private 3 7 20 src/openssl.c
  libssh2_channel_locate 3 6 13 src/channel.c
  _libssh2_dtor 3 6 11 src/crypt.c
  libssh2_sftp_packet_add 3 19 32 src/sftp.c
  libssh2_kex_method_diffie_hellman_group14_sha1_key_exchange 3 18 79 src/kex.c
  libssh2_kex_method_diffie_hellman_group1_sha1_key_exchange 3 18 65 src/kex.c
  _libssh2_dsa_sha1_sign 3 16 29 src/openssl.c
  _libssh2_nonblock 3 16 64 src/session.c
  libssh2_hostkey_method_ssh_rsa_signv 3 15 28 src/hostkey.c
  _libssh2_rsa_sha1_sign 3 14 30 src/openssl.c
  libssh2_channel_send_eof 3 14 23 src/channel.c
  decrypt 3 13 31 src/transport.c
  _libssh2_init 3 12 23 src/crypt.c
  _libssh2_rsa_new 2 19 47 src/openssl.c
  libssh2_mac_method_hmac_ripemd160_hash 3 12 26 src/mac.c
  libssh2_mac_method_hmac_md5_hash 3 12 25 src/mac.c
  libssh2_mac_method_hmac_sha1_hash 3 12 25 src/mac.c
  libssh2_channel_nextid 3 10 25 src/channel.c
  libssh2_session_methods 12 28 62 src/session.c
  libssh2_session_callback_set 6 18 37 src/session.c
  libssh2_hostkey_hash 3 5 16 src/hostkey.c
  libssh2_hostkey_method_ssh_dss_sig_verify 2 7 19 src/hostkey.c
  passphrase_cb 2 7 14 src/openssl.c
  _libssh2_session_set_blocking 2 7 16 src/session.c
  _libssh2_rsa_sha1_verify 2 6 14 src/openssl.c
  libssh2_mac_method_common_dtor 2 4 10 src/mac.c
  libssh2_session_flag 2 4 11 src/session.c
  libssh2_channel_window_write_ex 2 3 11 src/channel.c
  libssh2_channel_handle_extended_data 2 2 7 src/channel.c
  libssh2_poll_listener_queued 2 2 5 src/session.c
  libssh2_poll_channel_write 2 2 5 src/session.c
  _libssh2_rsa_new 2 19 47 src/openssl.c
  _libssh2_dsa_sha1_verify 2 13 21 src/openssl.c
  _libssh2_dsa_new 2 13 33 src/openssl.c
  libssh2_htonu64 1 9 15 src/misc.c
  libssh2_waitsocket 1 9 18 src/packet.c
  libssh2_comp_method_none_comp 1 8 21 src/comp.c
  libssh2_hostkey_method_ssh_dss_dtor 1 5 12 src/hostkey.c
  libssh2_hostkey_method_ssh_rsa_dtor 1 5 12 src/hostkey.c
  libssh2_hostkey_method_ssh_rsa_sig_verify 1 5 15 src/hostkey.c
  libssh2_htonu32 1 4 8 src/misc.c
  libssh2_mac_method_common_init 1 4 10 src/mac.c
  libssh2_ntohu64 1 4 10 src/misc.c
  libssh2_mac_method_hmac_md5_96_hash 1 4 16 src/mac.c
  libssh2_mac_method_hmac_sha1_96_hash 1 4 16 src/mac.c
  _libssh2_encrypt 1 3 8 src/crypt.c
  libssh2_trace 1 2 6 src/misc.c
  _libssh2_cipher_init 1 3 9 src/openssl.c
  libssh2_comp_method_zlib_free 1 2 7 src/comp.c
  libssh2_comp_method_zlib_alloc 1 2 7 src/comp.c
  LIBSSH2_REALLOC_FUNC 1 2 6 src/session.c
  LIBSSH2_FREE_FUNC 1 2 6 src/session.c
  LIBSSH2_ALLOC_FUNC 1 2 6 src/session.c
  libssh2_trace 1 2 6 src/misc.c
  libssh2_ntohu32 1 1 5 src/misc.c
  libssh2_mac_none_MAC 1 1 8 src/mac.c
  libssh2_crypt_none_crypt 1 1 7 src/crypt.c
  libssh2_hostkey_methods 1 1 5 src/hostkey.c
  libssh2_comp_methods 1 1 5 src/comp.c
  libssh2_mac_methods 1 1 5 src/mac.c
  libssh2_crypt_methods 1 1 5 src/crypt.c
  libssh2_sftp_last_error 1 1 5 src/sftp.c
  libssh2_userauth_authenticated 1 1 5 src/userauth.c
  libssh2_sftp_tell 1 1 5 src/sftp.c
  libssh2_sftp_seek2 1 1 5 src/sftp.c
  libssh2_sftp_seek 1 1 5 src/sftp.c
  libssh2_channel_get_exit_status 1 1 5 src/channel.c
  libssh2_channel_set_blocking 1 1 5 src/channel.c
  libssh2_session_get_blocking 1 1 5 src/session.c
  libssh2_session_set_blocking 1 1 5 src/session.c
  libssh2_session_last_errno 1 1 5 src/session.c

Copyright (c) 2007, 2008 Free Software Foundation Inc.