pluto实现分析(2)——代码函数调用关系

来源:互联网 发布:网络兼职招聘网站 编辑:程序博客网 时间:2024/05/18 02:32

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,
严禁用于任何商业用途。
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn
 

4. 代码函数调用关系表


main
  -> getopt_long
  -> init_ctl_socket
  -> init_info_socket
  -> init_constants
  -> pluto_init_log
  -> init_pluto_vendorid
  -> init_nat_traversal
  -> init_virtual_ip
  -> init_rnd_pool
  -> init_secret
  -> init_states
  -> init_connections
    -> event_schedule
  -> init_crypto
    -> mpz_init_set_str
    -> ike_alg_twofish_init
    -> ike_alg_serpent_init
    -> ike_alg_aes_init
    -> ike_alg_add
    -> ike_alg_blowfish_init
  -> init_crypto_helpers
    -> pluto_init_log
    -> init_rnd_pool
    -> free_preshared_secrets
    -> pluto_crypto_helper
    -> pluto_init_log
  -> init_demux 
  -> init_kernel
    -> init_pfkey
    -> kernel_ops == &linux_kernel_ops, &klips_kernel_ops, &noklips_kernel_ops
    -> kernel_ops->init
      -> klips_kernel_ops: NULL
      -> noklips_kernel_ops: init_noklips
      -> linux_kernel_ops: init_netlink
        -> socket, fcntl, bind
    -> kernel_ops->pfkey_register
      -> klips_kernel_ops:  klips_pfkey_register
        -> pfkey_register_proto
          -> pfkey_msg_start
          -> finish_pfkey_msg
          -> kernel_ops->pfkey_register_response
      -> noklips_kernel_ops: noklips_register
      -> linux_kernel_ops: linux_pfkey_register
        -> pfkey_register_proto
        -> pfkey_close
    -> event_schedule (timer.c)
      -> alloc_thing(struct event)
  -> init_adns
    -> readlink("/proc/self/exe")
    -> fork
  -> init_id
    -> set_myid
      -> atoid
      -> free_id_content
      -> unshare_id_content
      -> calc_myid_str
    -> set_myFQDN
      -> gethostname
      -> free_id_content
      -> clonetochunk
      -> calc_myid_str
  -> init_fetch
    -> curl_global_init
    -> pthread_create
      -> fetch_thread
        -> pthread_cond_signal
  -> load_authcerts
  -> load_crls
  -> load_acerts
  -> daily_log_event
  -> call_server (server.c)
    -> SIGHUP: huphandler
    -> SIGTERM: termhandler
    -> SIGCHILD: childhandler
    -> next_event
    -> reapchildren
      -> adns_reapchild
        -> free_any
        -> release_all_continuations
      -> pluto_crypt_handle_dead_child
    -> kernel_ops->process_queue
      -> klips_kernel_ops: pfkey_dequeue
        -> pfkey_input_ready
        -> record_and_initiate_opportunistic
      -> noklips_kernel_ops: noklips_dequeue
      -> linux_kernel_ops: NULL
    -> pluto_crypto_helper_sockets
    -> select
    -> handle_timer_event (timer.c)
      -> set_cur_state
      -> init_secret
      -> scan_proc_shunts
      -> connection_check_phase2
      -> daily_log_event
      -> send_packet (demux.c)
        -> setportof
        -> check_msg_errqueue
        -> sendto
      -> event_schedule
      -> release_pending_whacks
      -> ipsecdoi_replace
        -> aggr_outI1
        -> main_outI1
        -> ipsecdoi_initiate
      -> delete_state
      -> delete_dpd_event
        -> _delete_dpd_event
      -> release_md
      -> dpd_event (dpd.c)
        -> p1_dpd_outI1
          -> dpd_outI
            -> event_schedule
            -> was_eroute_idle
            -> dpd_sched_timeout
              -> delete_dpd_event
              -> event_schedule
            -> send_isakmp_notification
        -> p2_dpd_outI1
          -> find_phase1_state
          -> dpd_outI
      -> dpd_timeout (dpd.c)
        -> set_cur_connection
        -> delete_states_by_connection
        -> unroute_connection
        -> initiate_connection
        -> reset_cur_connection
      -> nat_traversal_ka_event
        -> for_each_state
          -> nat_traversal_ka_event_state
            -> state_with_serialno
            -> nat_traversal_send_ka
              -> setchunk
              -> send_packet
        -> nat_traversal_new_ka_event
          -> event_schedule
      -> pfree
      -> reset_cur_state
    -> send_unsent_ADNS_queries
    -> handle_adns_answer
    -> kernel_ops->process_msg
      -> klips_kernel_ops: pfkey_event (kernel_pfkey.c)
        -> pfkey_get
          -> pfkey_input_ready
        -> pfkey_async
          -> pfkey_msg_parse
          -> kernel_ops->pfkey_register_response
            -> klips_kernel_ops:  klips_pfkey_register_response
              -> kernel_alg_register_pfkey
            -> noklips_kernel_ops
            -> linux_kernel_ops: linux_pfkey_register_response
              -> kernel_alg_register_pfkey
          -> process_pfkey_acquire
            -> record_and_initiate_opportunistic (kernel.c)
              -> alloc_thing(struct bare_shunt
              -> initiate_opportunistic (connections.c)
                -> initiate_opportunistic_body
                  -> find_connection_for_clients
                  -> assign_hold
                  -> ipsecdoi_initiate
                  -> check_txt_recs
                  -> get_RSA_private_key
                  -> same_RSA_public_key
                  -> build_outgoing_opportunistic_connection
                    -> find_host_pair_connections
                    -> oppo_instantiate
                      -> instantiate
                        -> clone_thing
                        -> unshare_connection_strings
                        -> unshare_ietfAttrList
                        -> alg_info_addref
                        -> default_end
                        -> connect_to_host_pair
                          -> find_host_pair
                      -> routed
                      -> format_connection
                        -> format_end
                          -> is_virtual_end
                          -> networkof
                          -> maskof
                  -> replace_bare_shunt
                    -> bare_shunt_ptr
                    -> raw_eroute
                    -> alloc_thing(struct bare_shunt
                  -> shunt_policy_spi
                    -> null
                  -> alloc_thing(struct find_oppo_continuation
                  -> start_adns_query
                  -> cannot_oppo
                  -> close_any
          -> process_pfkey_nat_t_new_mapping
            -> initaddr
            -> for_each_state
              -> nat_t_new_klips_mapp
                -> nat_traversal_new_mapping
                  -> addrtot
                  -> sameaddr
                  -> for_each_state
                    -> nat_traversal_find_new_mapp_state
                      -> IS_IPSEC_SA_ESTABLISHED
                      -> update_ipsec_sa
                        -> IS_IPSEC_SA_ESTABLISHED
                        -> IS_ONLY_INBOUND_IPSEC_SA_ESTABLISHED
                        -> update_nat_t_ipsec_esp_sa
                          -> set_text_said
                          -> kernel_ops->add_sa 
                            -> klips_kernel_ops: pfkey_add_sa (kernel_pfkey.c)
                              -> pfkey_msg_start
                              -> pfkey_build
                                -> pfkey_extensions_free
                              -> pfkey_sa_build
                              -> pfkeyext_address
                              -> pfkey_key_build
                              -> pfkey_x_nat_t_type_build
                              -> pfkey_x_nat_t_port_build
                              -> finish_pfkey_msg
                            -> noklips_kernel_ops: noklips_event
                            -> linux_kernel_ops: netlink_add_sa (kernel_nerlink.c)
                              -> sparse_name
                              -> send_netlink_msg
                              -> 
      -> noklips_kernel_ops: noklips_event
      -> linux_kernel_ops: netlink_process_msg
        -> netlink_get
          -> netlink_acquire
            -> xfrm_to_ip_address
            -> addrtosubnet
            -> has_bare_hold
            -> record_and_initiate_opportunistic
          -> netlink_policy_expire
            -> send_netlink_msg
            -> netlink_shunt_expire
    -> comm_handle(interfaces) (demux.c)
      -> check_msg_errqueue
      -> alloc_md (msg_digest)
      -> process_packet (demux.c)
        -> SEND_NOTIFICATION
          -> send_notification (ipsec_doi.c)
            -> delete_state
            -> init_pbs
            -> out_struct
            -> out_generic
            -> out_zero
            -> close_output_pbs
            -> out_raw
            -> hmac_init_chunk
            -> hmac_update
            -> hmac_final
            -> init_phase2_iv
            -> encrypt_message
            -> setchunk
            -> send_packet
          -> send_notification_from_state
            -> find_phase1_state
            -> send_notification
          -> send_notification_from_md
            -> send_notification
          do state change
        -> find_state
          -> state_hash
          -> sameaddr, memcmp
        -> find_info_state
          -> state_hash
          -> sameaddr, memcmp
        -> reserve_msgid
        -> init_phase2_iv
        -> receive_ike_echo_request (ikeping.c)
          -> addrtot
        -> receive_ike_echo_reply
          -> addrtot
        -> xauth_calcbaseauth
        -> send_packet
        -> clonetochunk
        -> init_new_iv
        -> crypto_cbc_encrypt
        -> accept_delete
          -> same_peer_ids
          -> nat_traversal_change_port_lookup
          -> delete_state
          -> find_phase2_state_to_delete
          -> delete_event
          -> event_schedule
        -> handle_vendorid
        -> echo_hdr
        -> smc->processor (demux.c)
          -> main_inI1_outR1 (ipsec_doi.c)
            -> pbs_left
            -> find_host_connection
            -> rw_instantiate (connections.c)
              -> instantiate
                -> unshare_connection_strings
                -> unshare_ietfAttrList
                -> alg_info_addref
                -> default_end
                -> connect_to_host_pair
              -> subnetishost
              -> addrinsubnet
              -> aftoinfo
            -> new_state
              -> clone_thing(blank_state,
            -> get_cookie
            -> insert_state
              -> event_schedule
            -> copy_quirks
            -> out_struct
            -> out_generic_raw
            -> out_vendorid
            -> nat_traversal_vid_to_method
          -> main_inR1_outI2
            -> parse_isakmp_sa_body
            -> nat_traversal_vid_to_method
            -> alloc_thing(struct ke_continuation
            -> build_ke (crypt_ke.c)
              -> alloc_thing(struct pluto_crypto_req
              -> send_crypto_helper_request (pluto_crypt.c)
                -> reset_cur_state
                -> pluto_do_crypto_op
                -> (*cn->pcrc_func)
                -> pfree
                -> cleanup_crypto_helper
                -> init_crypto_helper
              -> delete_event
              -> event_schedule
              -> pcrc_func: main_inR1_outI2_continue
                -> set_cur_state
                -> main_inR1_outI2_tail
                -> complete_state_transition
                -> release_md
                -> reset_cur_state
            -> main_inR1_outI2_tail
              -> init_pbs
              -> echo_hdr
              -> ship_KE
                -> freeanychunk
                -> clonetochunk
                -> n_to_mpz
                -> out_generic_chunk
              -> ship_nonce
                -> freeanychunk
                -> clonetochunk
                -> out_generic_chunk
              -> out_generic
              -> out_zero
              -> close_output_pbs
              -> nat_traversal_add_natd
                -> out_modify_previous_np
                -> _natd_hash
                -> out_generic_raw
              -> close_message
              -> unhash_state
              -> insert_state
          -> main_inI2_outR2
            -> accept_KE
              -> clonereplacechunk
            -> accept_nonce
              -> clonereplacechunk
            -> decode_cr
              -> clonetochunk
              -> dntoa_or_null
            -> nat_traversal_natd_lookup
              -> _natd_hash
            -> nat_traversal_show_result
              -> null
            -> nat_traversal_new_ka_event
              -> event_schedule
            -> alloc_thing(struct ke_continuation
            -> build_ke
              -> pcrc_func: main_inI2_outR2_continue
                -> set_cur_state
                -> main_inI2_outR2_tail
                -> complete_state_transition
                -> release_md
                -> reset_cur_state
            -> main_inI2_outR2_tail
              -> has_preloaded_public_key
              -> ship_KE
              -> ship_nonce
              -> out_generic
              -> out_zero
              -> close_output_pbs
              -> build_and_ship_CR
              -> collect_rw_ca_candidates
              -> free_generalNames
              -> nat_traversal_add_natd
              -> close_message
              -> alloc_thing(struct dh_continuation
              -> perform_dh_secretiv
                 -> main_inI2_outR2_calcdone
                   -> process_packet
                   -> release_md
              -> update_iv
              -> pfree
          -> unexpected
          -> main_inR2_outI3
            -> accept_KE
            -> accept_nonce
            -> decode_cr
            -> doi_log_cert_thinking
            -> free_generalNames
            -> perform_dh_secretiv
            -> nat_traversal_natd_lookup
            -> nat_traversal_show_result
            -> nat_traversal_new_ka_event
            -> build_id_payload
            -> out_struct
            -> close_output_pbs
            -> out_chunk
            -> build_and_ship_CR
            -> main_mode_hash
              -> hmac_init_chunk
              -> main_mode_hash_body
                ->  hash_update_chunk
                ->  hash_update
              -> hmac_final
            -> out_generic_raw
            -> RSA_sign_hash
            -> encrypt_message
              -> pad_up
              -> out_zero 
              -> crypto_cbc_encrypt 
              -> update_iv 
              -> close_message 
          -> main_inI3_outR3
            -> main_inI3_outR3_tail
              -> main_id_and_auth
                -> main_inI3_outR3_continue
                  -> key_continue
                    -> delete_event
                    -> report_key_dns_failure
                    -> tail: main_inI3_outR3_tail
                    -> complete_state_transition
                    -> release_md
              -> doi_log_cert_thinking
              -> echo_hdr
              -> build_id_payload
              -> out_struct
              -> out_chunk
              -> close_output_pbs
              -> out_generic_raw
              -> encrypt_message
              -> ISAKMP_SA_established (connections.c)
                -> same_id
                -> sameaddr
                -> release_connection
          -> main_inR3
            -> main_inR3_tail
              -> main_id_and_auth
                -> main_inR3_continue
                  -> key_continue
                    -> tail: main_inR3_tail
            -> ISAKMP_SA_established
            -> set_ph1_iv
            -> update_iv
          -> aggr_inI1_outR1_psk (ikev1_aggr.c)
            -> aggr_inI1_outR1_common
              -> find_host_connection
              -> rw_instantiate
              -> new_state
              -> decode_peer_id
                -> setchunk
                -> decode_cert
                  -> parse_x509cert
                  -> verify_x509cert
                  -> add_x509_public_key
                  -> free_generalNames
                  -> parse_pkcs7_cert
                  -> store_x509certs
                -> same_id
                -> decode_cr
                -> refine_host_connection
                -> free_generalNames
                -> rw_instantiate
                -> connection_discard
                -> free_id_content
                -> unshare_id_content
              -> idtoa
              -> get_cookie
              -> insert_state
              -> nat_traversal_vid_to_method
              -> clonereplacechunk
              -> parse_isakmp_sa_body
              -> accept_KE
              -> accept_nonce
              -> alloc_thing(struct ke_continuation
              -> build_ke
                -> pcrc_func: aggr_inI1_outR1_continue
                  -> set_cur_state
                  -> aggr_inI1_outR1_tail
                  -> complete_state_transition
                  -> release_md
                  -> reset_cur_state
              -> aggr_inI1_outR1_tail
                -> init_pbs
                -> out_struct
                -> parse_isakmp_sa_body
                -> ship_KE
                -> ship_nonce
                -> build_id_payload
                -> out_chunk
                -> close_output_pbs
                -> perform_dh_secretiv
                -> update_iv
                -> main_mode_hash
                -> out_generic_raw
                -> RSA_sign_hash
                -> out_vendorid
                -> nat_traversal_add_natd
                -> close_message
          -> aggr_inI1_outR1_rsasig
            -> aggr_inI1_outR1_common
          -> aggr_inR1_outI2
            -> decode_peer_id
            -> idtoa
            -> parse_isakmp_sa_body
            -> copy_quirks
            -> nat_traversal_vid_to_method
            -> accept_KE
            -> accept_nonce
            -> unhash_state
            -> insert_state
            -> nat_traversal_natd_lookup
            -> nat_traversal_show_result
            -> nat_traversal_new_ka_event
            -> perform_dh_secretiv
            -> aggr_inR1_outI2_tail
              -> aggr_id_and_auth
                -> aggr_inR1_outI2_continue
                  -> key_continue
                    -> tail: aggr_inR1_outI2_tail
              -> out_struct
              -> nat_traversal_add_natd
              -> build_id_payload
              -> init_pbs
              -> out_chunk
              -> main_mode_hash
              -> out_generic_raw
              -> RSA_sign_hash
              -> encrypt_message
          -> aggr_inI2
            -> aggr_inI2_tail
              -> nat_traversal_natd_lookup
              -> nat_traversal_show_result
              -> nat_traversal_new_ka_event
              -> build_id_payload
              -> init_pbs
              -> out_struct
              -> out_chunk
              -> close_output_pbs
              -> in_struct
              -> aggr_id_and_auth
                -> aggr_inI2_continue
                  -> key_continue
                    -> tail: aggr_inI2_tail
              -> update_iv
          -> quick_inI1_outR1 (ikev1_quick.c)
            -> quick_mode_hash12
            -> decode_net_id
            -> save_new_iv
            -> quick_inI1_outR1_authtail
              -> find_client_connection
              -> format_end
              -> quick_inI1_outR1_process_answer
                -> get_RSA_private_key
                -> same_RSA_public_key
                -> report_verify_failure
              -> quick_inI1_outR1_start_query
                -> alloc_thing(struct verify_oppo_continuation
                -> resolve_myid
                -> iptoid
                -> start_adns_query
                  -> quick_inI1_outR1_continue
                    -> report_verify_failure
                    -> quick_inI1_outR1_authtail
                    -> complete_state_transition
                    -> release_md
                -> report_verify_failure
              -> oppo_instantiate
              -> rw_instantiate
              -> is_virtual_connection
              -> duplicate_state
              -> connection_discard
              -> insert_state
              -> nat_traversal_natoa_lookup
              -> parse_ipsec_sa_body
              -> accept_nonce
              -> accept_PFS_KE
              -> alloc_thing(struct qke_continuation
              -> build_ke
                -> pcrc_func: quick_inI1_outR1_cryptocontinue
                  -> set_cur_state
                  -> quick_inI1_outR1_cryptotail
                    -> out_struct
                    -> parse_ipsec_sa_body
                    -> ship_nonce
                    -> ship_KE
                    -> perform_dh_secret
                    -> out_raw
                    -> quick_mode_hash12
                    -> compute_keymats
                    -> install_inbound_ipsec_sa
                    -> encrypt_message
                    -> delete_ipsec_sa
                      -> do_command (kernel.c)
                        -> kernel_ops->docommand
                          -> klips_kernel_ops: do_command_linux (sysdep_linux.c)
                          -> linux_kernel_ops: do_command_linux 
                            -> subnetisaddr
                            -> DEFAULT_UPDOWN : sr->this.updown
                            -> popen
                      -> unroute_connection
                      -> teardown_half_ipsec_sa (kernel.c)
                        -> raw_eroute
                        -> del_spi
                          -> set_text_said 
                          -> kernel_ops->del_sa
                            -> klips_kernel_ops: pfkey_del_sa (kernel_pfkey.c)
                              -> pfkey_msg_start
                              -> pfkey_sa_build
                              -> pfkeyext_address
                              -> finish_pfkey_msg
                            -> noklips_kernel_ops: noklips_del_sa 
                              -> 
                            -> linux_kernel_ops: netlink_del_sa (kernel_netlink.c)
                              -> ip2xfrm
                              -> send_netlink_msg
                  -> complete_state_transition
                  -> release_md
                  -> reset_cur_state
              -> build_nonce
                -> quick_inI1_outR1_cryptocontinue
          -> quick_inR1_outI2
            -> quick_mode_hash12
            -> parse_ipsec_sa_body
            -> accept_nonce
            -> accept_PFS_KE
            -> perform_dh_secret
            -> check_net_id
            -> nat_traversal_natoa_lookup
            -> quick_mode_hash3
            -> compute_keymats
            -> install_ipsec_sa (kernel.c)
              -> could_route
              -> setup_half_ipsec_sa
                -> set_text_said
                -> kernel_alg_esp_info
                -> kernel_ops->add_sa
                -> raw_eroute
                  -> set_text_said
                  -> kernel_ops->raw_eroute
                    -> klips_kernel_ops: pfkey_raw_eroute (kernel_pfkey.c)
                      -> pfkey_msg_start
                      -> pfkey_sa_build
                      -> pfkeyext_address
                      -> pfkeyext_protocol
                      -> finish_pfkey_msg
                    -> noklips_kernel_ops: noklips_raw_eroute (kernel_noklips.c)
                    -> linux_kernel_ops: netlink_raw_eroute (kernel_netlink.c)
                      -> netlink_policy
                        -> send_netlink_msg
                          -> write, recvfrom
                -> kernel_ops->grp_sa
                  -> klips_kernel_ops: pfkey_grp_sa (kernel_pfkey.c)
                    -> pfkey_msg_start
                    -> pfkey_sa_build
                    -> pfkey_x_satype_build
                    -> pfkeyext_address
                    -> finish_pfkey_msg
                  -> noklips_kernel_ops: noklips_grp_sa 
                  -> linux_kernel_ops: NULL
              -> route_and_eroute (kernel.c)
                -> route_owner
                -> bare_shunt_ptr
                -> shunt_eroute
                  -> shunt_policy_spi
                  -> eclipsed
                  -> raw_eroute
                  -> eroute_connection
                    -> aftoinfo
                    -> raw_eroute
                -> sag_eroute
                -> do_command
                -> routed
                -> routes_agree
                -> free_bare_shunt
                -> raw_eroute
                -> state_with_serialno
              -> delete_ipsec_sa
            -> encrypt_message
            -> delete_ipsec_sa
            -> dpd_init (dpd.c)
              -> find_state
              -> delete_dpd_event
              -> event_schedule
              -> delete_dpd_event
          -> quick_inI2
            -> quick_mode_hash3
            -> install_ipsec_sa
            -> update_iv
            -> dpd_init
            -> delete_ipsec_sa
          -> informational
            -> dpd_inI_outR
              -> send_isakmp_notification
              -> delete_dpd_event
            -> dpd_inR
              -> delete_dpd_event
            -> delete_state
          -> xauth_inR0 (xauth.c)
            -> xauth_mode_cfg_hash
              -> hmac_init_chunk
              -> hmac_update
              -> hmac_final
            -> in_struct
            -> clonetochunk
            -> xauth_send_status
              -> generate_msgid
              -> out_struct
              -> out_raw
              -> close_output_pbs
              -> close_message
              -> xauth_mode_cfg_hash
              -> init_phase2_iv
              -> encrypt_message
              -> freeanychunk
              -> clonetochunk
              -> delete_event
              -> event_schedule
              -> send_packet
            -> xauth_launch_authent
              -> alloc_thing(struct thread_arg
              -> do_authentication
                -> do_pam_authentication
                -> do_md5_authentication
                  -> verify_path_space
                  -> fopen, crypt
          -> xauth_inR1
          -> modecfg_inR0
            -> xauth_mode_cfg_hash
            -> pbs_left
            -> in_struct
            -> modecfg_resp
              -> out_generic
              -> out_zero
              -> close_output_pbs
              -> get_internal_addresses
              -> out_raw
              -> close_output_pbs
              -> close_message
              -> xauth_mode_cfg_hash
              -> encrypt_message
          -> modecfg_inR1
            -> xauth_mode_cfg_hash
            -> pbs_left
            -> in_struct
          -> xauth_inI0
            -> modecfg_inI2
              -> xauth_mode_cfg_hash
              -> pbs_left
              -> in_struct
              -> modecfg_resp
            -> xauth_mode_cfg_hash
            -> in_struct
            -> xauth_client_ackstatus
              -> out_generic
              -> out_zero
              -> close_output_pbs
              -> out_struct
              -> close_message
              -> xauth_mode_cfg_hash
              -> encrypt_message
            -> xauth_client_resp
              -> out_generic
              -> out_zero
              -> close_output_pbs
              -> out_struct
              -> whack_prompt_for
              -> out_raw
              -> xauth_mode_cfg_hash
              -> close_message
              -> encrypt_message
          -> xauth_inI1
            -> modecfg_inI2
            -> xauth_mode_cfg_hash
            -> in_struct
            -> xauth_inI0
            -> xauth_client_ackstatus
        -> complete_state_transition
          -> update_retransmit_history
          -> delete_event
          -> freeanychunk
          -> close_output_pbs
          -> clonetochunk
          -> nat_traversal_change_port_lookup
            -> nat_traversal_new_mapping
              -> for_each_state
                -> nat_traversal_find_new_mapp_state
                  -> update_ipsec_sa
            -> update_pending
          -> send_packet
          -> event_schedule
          -> dpd_init 
          -> xauth_send_request  
            -> init_pbs
            -> out_struct
            -> close_message
            -> xauth_mode_cfg_hash
            -> close_message
            -> close_output_pbs
            -> init_phase2_iv
            -> encrypt_message
            -> clonetochunk
            -> send_packet
            -> delete_event
            -> event_schedule
          -> modecfg_send_request  
          -> modecfg_start_set 
          -> quick_outI1  
          -> unpend  
          -> release_whack  
          -> update_retransmit_history  
          -> delete_event  
          -> release_pending_whacks  
          -> delete_state  
            -> set_cur_state
            -> delete_dpd_event
            -> send_state
            -> delete_event
            -> flush_pending_by_state
            -> delete_cryptographic_continuation
            -> unhash_state
            -> delete_ipsec_sa
            -> connection_discard
            -> unreference_key
            -> mpz_clear
            -> pfreeany
      -> release_md
      -> reset_cur_connection
    -> whack_handle (rcv_whack.c)
      -> accept, read
      -> show_status
      -> unpack_whack_msg
      -> con_by_name
      -> set_myid
      -> delete_connections_by_name
      -> state_with_serialno
      -> delete_state
      -> add_connection
      -> set_myFQDN
      -> find_ifaces
      -> load_preshared_secrets
      -> load_groups
      -> list_public_keys
      -> load_authcerts
      -> load_acerts
      -> load_crls
      -> free_ocsp_fetch
      -> free_ocsp_cache
      -> list_certs
      -> list_authcerts
      -> list_acerts
      -> list_groups
      -> list_crls
      -> list_crl_fetch_requests
      -> list_ocsp_cache
      -> list_ocsp_fetch_requests
      -> scx_list (smart_card)
      -> timer_list
      -> key_add_request
      -> set_cur_connection
      -> route_group
      -> reset_cur_connection
      -> unroute_group
      -> initiate_connection (connections.c)
        -> con_by_name
        -> set_cur_connection
        -> oriented
        -> kernel_alg_makedb
        -> scx_get_pin
        -> ipsecdoi_initiate (ipsec_doi.c)
          -> find_phase1_state
          -> aggr_outI1 (ikev1_aggr.c)
            -> new_state
            -> set_state_ike_endpoints
            -> get_cookie
            -> insert_state
            -> init_am_st_oakley
            -> add_pending
            -> build_ke
              -> pcrc_func: aggr_outI1_continue
                -> set_cur_state
                -> aggr_outI1_tail
                -> complete_state_transition
                -> release_md
                -> reset_globals
            -> aggr_outI1_tail
              -> init_pbs
              -> out_struct
              -> out_sa
              -> clonetochunk
              -> ship_KE
              -> ship_nonce
              -> build_id_payload
              -> out_generic_raw
              -> nat_traversal_add_vid
              -> out_vendorid
              -> close_message
              -> close_output_pbs
              -> send_packet
              -> delete_event
              -> event_schedule
            -> reset_globals
          -> main_outI1
            -> new_state
            -> set_state_ike_endpoints
            -> set_cur_state
            -> get_cookie
            -> insert_state
            -> add_pending
            -> init_pbs
            -> out_struct
            -> POLICY_ISAKMP
            -> out_sa (spdb_struct.c)
              -> oakley_alg_makedb
              -> kernel_alg_makedb
              -> out_struct
              -> out_raw
              -> get_ipsec_spi (kernel.c)
                -> set_text_said
                -> kernel_ops->get_spi
                  -> klips_kernel_ops: NULL
                  -> noklips_kernel_ops: NULL
                  -> linux_kernel_ops: netlink_get_spi
                    -> ip2xfrm
                    -> send_netlink_msg
                -> get_rnd_bytes
              -> out_attr
              -> close_output_pbs
              -> free_sa
            -> clonetochunk
            -> out_generic_raw
            -> out_modify_previous_np
            -> nat_traversal_add_vid
            -> out_vendorid
            -> close_message
            -> close_output_pbs
            -> clonetochunk
            -> send_packet
            -> delete_event
            -> event_schedule
            -> reset_cur_state
          -> add_pending
          -> quick_outI1
            -> duplicate_state
            -> set_cur_state
            -> generate_msgid
            -> insert_state
            -> ike_alg_pfsgroup
            -> build_ke
              -> pcrc_func: quick_outI1_continue
                -> set_cur_state
                -> quick_outI1_tail
                  -> nat_traversal_change_port_lookup
                  -> init_pbs
                  -> out_struct
                  -> START_HASH_PAYLOAD
                  -> out_sa
                  -> ship_nonce
                  -> ship_KE
                  -> emit_subnet_id
                  -> nat_traversal_add_natoa
                  -> quick_mode_hash12
                    -> hmac_init_chunk
                    -> hmac_update
                    -> hmac_update_chunk
                    -> hmac_final
                  -> init_phase2_iv
                  -> encrypt_message
                  -> clonetochunk
                  -> send_packet
                  -> delete_event
                  -> event_schedule
            -> build_nonce
            -> reset_globals
        -> reset_cur_connection
        -> close_any
      -> initiate_opportunistic
      -> terminate_connection
    -> info_handle (rcv_info.c)
      -> accept
      -> ipsec_policy_readmsg
      -> info_lookuphostpair
        -> find_connection_for_clients
        -> find_client_connection
        -> state_with_serialno
        -> find_phase1_state
        -> idtoa
    -> pluto_crypto_helper_ready
      -> handle_helper_comm
      -> crypto_send_backlog
      -> (*cn->pcrc_func)
 
...... 待续 ......

http://blog.chinaunix.net/uid-127037-id-2919600.html


0 0
原创粉丝点击