Back to GNU SASL Homepage

GNU SASL Cyclomatic Complexity Report

Report generated at: Mon Jul 26 09:01:25 UTC 2021

Summary
Total number of functions 191
Number of low risk functions 158
Number of moderate risk functions 18
Number of high risk functions 14
Number of untestable functions 1

Details for all functions
  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 Modified Cyclo Number of
Statements
Number of
Lines
Source File
_gsasl_scram_server_step 66 194 366 scram/server.c
_gsasl_scram_client_step 45 148 284 scram/client.c
scram_parse_client_first 40 95 141 scram/parser.c
parse_response 37 96 171 digest-md5/parser.c
digest_md5_print_response 37 84 144 digest-md5/printer.c
digest_md5_hmac 37 162 236 digest-md5/digesthmac.c
digest_md5_print_challenge 36 94 168 digest-md5/printer.c
scram_parse_client_final 34 82 127 scram/parser.c
digest_md5_getsubopt 33 38 71 digest-md5/getsubopt.c
_gsasl_digest_md5_server_step 31 101 202 digest-md5/server.c
scram_parse_server_first 31 69 108 scram/parser.c
_gsasl_digest_md5_client_step 30 95 190 digest-md5/client.c
parse_challenge 29 98 203 digest-md5/parser.c
_gsasl_gssapi_server_step 26 101 194 gssapi/server.c
_gsasl_gssapi_client_step 21 90 182 gssapi/client.c
_gsasl_gs2_server_step 19 75 134 gs2/server.c
_gsasl_openid20_server_step 19 66 129 openid20/server.c
_gsasl_securid_server_step 18 64 99 securid/server.c
_gsasl_securid_client_step 17 62 110 securid/client.c
register_builtin_mechs 17 50 99 src/init.c
_gsasl_login_server_step 16 53 88 login/server.c
_gsasl_plain_server_step 16 65 123 plain/server.c
scram_valid_client_first 15 20 46 scram/validate.c
unescape_authzid 14 24 43 src/mechtools.c
_gsasl_saml20_server_step 13 46 83 saml20/server.c
_gsasl_gs2_client_step 13 37 75 gs2/client.c
_gsasl_openid20_client_step 12 42 105 openid20/client.c
digest_md5_decode 12 40 76 digest-md5/session.c
_gsasl_gs2_generate_header 12 27 51 src/mechtools.c
digest_md5_validate_response 12 19 49 digest-md5/validate.c
unescape 12 18 34 scram/parser.c
digest_md5_validate 12 15 26 digest-md5/validate.c
scram_print_client_first 11 22 40 scram/printer.c
  _gsasl_ntlm_client_step 10 54 105 ntlm/ntlm.c
  gs2_get_cred 10 35 60 gs2/server.c
  gsasl_simple_getpass 10 27 50 src/md5pwd.c
  prepare 10 27 50 gs2/client.c
  utf8tolatin1ifpossible 10 23 39 digest-md5/nonascii.c
  scram_valid_client_final 10 13 29 scram/validate.c
  _gsasl_cram_md5_server_step 9 36 63 cram-md5/server.c
  _gsasl_gssapi_client_encode 9 28 54 gssapi/client.c
  gsasl_client_suggest_mechanism 9 25 45 src/suggest.c
  scram_parse_server_final 9 18 32 scram/parser.c
  _gsasl_saml20_client_step 8 28 59 saml20/client.c
  _gsasl_gssapi_client_decode 8 27 52 gssapi/client.c
  setup 8 22 40 src/xstart.c
  scram_valid_server_first 8 11 24 scram/validate.c
  digest_md5_encode 7 45 68 digest-md5/session.c
  _gsasl_cram_md5_client_step 7 37 66 cram-md5/client.c
  gsasl_finish 7 32 46 src/xfinish.c
  comma_append 7 18 31 digest-md5/printer.c
  _gsasl_parse_gs2_header 7 16 33 src/mechtools.c
  parse_finish 7 16 34 digest-md5/parser.c
  gsasl_register 7 16 37 src/register.c
  digest_md5_validate_challenge 6 7 18 digest-md5/validate.c
  scram_start 6 26 41 scram/server.c
  _gsasl_plain_client_step 6 26 48 plain/client.c
  token2output 6 23 43 gs2/client.c
  _gsasl_listmech 6 20 35 src/listmech.c
  gsasl_done 6 17 28 src/done.c
  gsasl_step64 6 15 31 src/xstep.c
  gsasl_saslprep 6 15 33 src/saslprep.c
  digest_md5_qopstr2qops 5 23 54 digest-md5/qop.c
  _gsasl_login_client_step 5 25 46 login/client.c
  _gsasl_pbkdf2 5 16 34 src/mechtools.c
  gsasl_callback 5 7 14 src/callback.c
  hexdigit_to_char 5 5 9 src/mechtools.c
  _gsasl_digest_md5_hexdigit_to_char 5 5 13 digest-md5/server.c
  escape_authzid 5 16 32 gs2/client.c
  scram_escape 5 16 32 scram/printer.c
  escape_authzid 5 16 32 src/mechtools.c
  latin1toutf8 5 15 27 digest-md5/nonascii.c
  _gsasl_external_server_step 5 13 32 external/server.c
  _gsasl_gs2_client_finish 5 13 20 gs2/client.c
  gsasl_hex_from 5 13 23 src/base64.c
  _gsasl_gs2_server_finish 5 12 21 gs2/server.c
  _gsasl_anonymous_server_step 5 11 29 anonymous/server.c
  _gsasl_gssapi_server_finish 5 11 20 gssapi/server.c
  _gsasl_gssapi_client_finish 4 9 17 gssapi/client.c
  find_mechanism 4 9 14 src/xstart.c
  gsasl_strerror 4 9 17 src/error.c
  _gsasl_support_p 4 7 11 src/supportp.c
  scram_print_server_final 4 7 16 scram/printer.c
  scram_print_client_final 4 7 16 scram/printer.c
  scram_print_server_first 4 7 17 scram/printer.c
  scram_valid_server_final 4 5 13 scram/validate.c
  _gsasl_digest_md5_server_start 4 20 34 digest-md5/server.c
  _gsasl_digest_md5_client_start 4 18 31 digest-md5/client.c
  scram_start 4 18 34 scram/client.c
  gsasl_scram_secrets_from_salted_password 4 12 30 src/crypto.c
  gsasl_property_set_raw 4 11 24 src/property.c
  gsasl_init 4 11 21 src/init.c
  cram_md5_digest 4 10 19 cram-md5/digest.c
  _gsasl_digest_md5_server_decode 4 10 23 digest-md5/server.c
  _gsasl_digest_md5_server_encode 4 10 23 digest-md5/server.c
  _gsasl_digest_md5_client_decode 4 10 23 digest-md5/client.c
  _gsasl_digest_md5_client_encode 4 10 23 digest-md5/client.c
  _gsasl_external_client_step 3 9 20 external/client.c
  _gsasl_anonymous_client_step 3 9 20 anonymous/client.c
  gsasl_hex_to 3 9 17 src/base64.c
  digest_md5_parse_finish 3 8 16 digest-md5/parser.c
  digest_md5_parse_response 3 8 16 digest-md5/parser.c
  digest_md5_parse_challenge 3 8 16 digest-md5/parser.c
  _gsasl_code 3 8 20 src/xcode.c
  _gsasl_hmac 3 7 16 src/mechtools.c
  _gsasl_hash 3 7 14 src/mechtools.c
  _gsasl_hex_p 3 7 11 src/mechtools.c
  gsasl_base64_from 3 6 13 src/base64.c
  gsasl_base64_to 3 6 13 src/base64.c
  digest_md5_print_finish 3 6 15 digest-md5/printer.c
  digest_md5_validate_finish 3 5 12 digest-md5/validate.c
  gsasl_check_version 3 3 8 src/version.c
  gsasl_mechanism_name 3 3 7 src/mechname.c
  gsasl_strerror_name 3 3 8 src/error.c
  _gsasl_gs2_client_start 3 24 39 gs2/client.c
  _gsasl_gs2_server_start 3 23 38 gs2/server.c
  cram_md5_challenge 3 14 23 cram-md5/challenge.c
  extract_serverkey 3 12 24 scram/server.c
  start 3 11 24 src/xstart.c
  _gsasl_digest_md5_set_hashed_secret 3 11 22 digest-md5/server.c
  _gsasl_cram_md5_server_start 3 10 19 cram-md5/server.c
  gs2_get_oid 3 10 18 gs2/gs2helper.c
  gsasl_scram_secrets_from_password 3 10 27 src/crypto.c
  map 3 54 116 src/property.c
  gsasl_hash_length 2 4 13 src/crypto.c
  _gsasl_hex_encode 2 9 15 src/mechtools.c
  digest_md5_free_challenge 2 8 12 digest-md5/free.c
  _gsasl_ntlm_client_start 2 7 15 ntlm/ntlm.c
  _gsasl_login_client_start 2 7 15 login/client.c
  _gsasl_securid_client_start 2 7 16 securid/client.c
  _gsasl_digest_md5_server_finish 2 7 15 digest-md5/server.c
  _gsasl_digest_md5_client_finish 2 7 15 digest-md5/client.c
  _gsasl_openid20_client_start 2 6 14 openid20/client.c
  _gsasl_saml20_client_start 2 6 13 saml20/client.c
  _gsasl_login_server_start 2 6 13 login/server.c
  _gsasl_openid20_server_start 2 6 14 openid20/server.c
  _gsasl_saml20_server_start 2 6 13 saml20/server.c
  _gsasl_login_server_finish 2 6 12 login/server.c
  gsasl_decode 2 5 14 src/xcode.c
  gsasl_encode 2 5 14 src/xcode.c
  gsasl_step 2 5 14 src/xstep.c
  gsasl_property_get 2 5 13 src/property.c
  _gsasl_hex_decode 2 4 10 src/mechtools.c
  gsasl_property_fast 2 4 10 src/property.c
  _gsasl_openid20_server_finish 2 4 11 openid20/server.c
  _gsasl_openid20_client_finish 2 4 11 openid20/client.c
  gsasl_property_free 2 4 11 src/property.c
  _gsasl_saml20_server_finish 2 4 10 saml20/server.c
  _gsasl_saml20_client_finish 2 4 10 saml20/client.c
  _gsasl_login_client_finish 2 4 10 login/client.c
  gsasl_property_set 2 2 6 src/property.c
  _gsasl_scram_server_finish 2 16 23 scram/server.c
  _gsasl_scram_client_finish 2 12 19 scram/client.c
  _gsasl_gssapi_client_start 2 10 18 gssapi/client.c
  _gsasl_gssapi_server_start 2 10 17 gssapi/server.c
  digest_md5_free_response 1 7 12 digest-md5/free.c
  scram_free_client_first 1 5 10 scram/tokens.c
  scram_free_client_final 1 4 9 scram/tokens.c
  scram_free_server_first 1 3 8 scram/tokens.c
  set_saltedpassword 1 3 9 scram/tools.c
  digest_md5_qops2qopstr 1 2 16 digest-md5/qop.c
  scram_free_server_final 1 2 7 scram/tokens.c
  _gsasl_securid_client_finish 1 2 8 securid/client.c
  _gsasl_ntlm_client_finish 1 2 7 ntlm/ntlm.c
  _gsasl_cram_md5_server_finish 1 2 8 cram-md5/server.c
  gsasl_callback_hook_set 1 1 5 src/callback.c
  gsasl_server_mechlist 1 1 6 src/listmech.c
  gsasl_client_mechlist 1 1 6 src/listmech.c
  gsasl_server_support_p 1 1 5 src/supportp.c
  digest_md5_free_finish 1 1 5 digest-md5/free.c
  gsasl_random 1 1 5 src/crypto.c
  gsasl_client_support_p 1 1 5 src/supportp.c
  gsasl_callback_set 1 1 5 src/callback.c
  gsasl_free 1 1 5 src/free.c
  gsasl_nonce 1 1 5 src/crypto.c
  to_uchar 1 1 5 digest-md5/nonascii.c
  hex_to_char 1 1 6 src/mechtools.c
  gsasl_session_hook_get 1 1 5 src/callback.c
  gsasl_session_hook_set 1 1 5 src/callback.c
  _gsasl_scram_sha256_plus_server_start 1 1 5 scram/server.c
  gsasl_server_start 1 1 5 src/xstart.c
  _gsasl_scram_sha256_server_start 1 1 5 scram/server.c
  _gsasl_scram_sha1_plus_server_start 1 1 5 scram/server.c
  _gsasl_scram_sha256_plus_client_start 1 1 5 scram/client.c
  gsasl_client_start 1 1 5 src/xstart.c
  gsasl_callback_hook_get 1 1 5 src/callback.c
  _gsasl_scram_sha1_server_start 1 1 5 scram/server.c
  _gsasl_digest_md5_hex_to_char 1 1 6 digest-md5/server.c
  _gsasl_scram_sha256_client_start 1 1 5 scram/client.c
  _gsasl_scram_sha1_plus_client_start 1 1 5 scram/client.c
  _gsasl_scram_sha1_client_start 1 1 5 scram/client.c

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