1,函数调用关系:
main()
->call_server()
->whack_handle()
->load_preshared_secrets()
->process_secrets_file()
->process_secret_records()
->process_secret()
->process_rsa_secret()
->process_rsa_keyfile()
->load_rsa_private_key()
->process_ecc_keyfile()
->load_ecc_private_key()
whack通过ctl_fd本地域套接字传入参数给pluto,pluto由whack_handle处理ctl_fd套接字。
whack_handle解析参数为--listen时调用load_preshared_secrets()处理文件。
pluto本身是不会去解析此文件的,需要执行./whack --listen或者--reread,当然如果有其它控制进程可以在隧道建立之初调用以上命令。
2,默认处理文件
load_preshared_secrets默认处理文件为ipsec.secrets。
本次分析处理的ipsec.secrets文件内容: