基于openswan klips的IPsec实现分析之数据发送
转载请注明出处:http://blog.csdn.net/rosetta
Klips是openswan自带实现IPsec功能的模块,其主要实现数据加解密、安全关联、密钥管理、身份认证等功能,并以.ko模块插入到内核中运行。
Klips对外出数据的处理流程如下:
相关函数调用过程如下:
ipsec_tunnel_start_xmit()
->ipsec_xmit_encap_bundle()
->ipsec_sa_getbyid()//获取sa
->ipsec_xmit_encap_once()
->ipsec_alg_esp_encrypt()
->struct ipsec_alg_enc *ixt_e=sa_p->ips_alg_enc
->ixt_e->ixt_e_cbc_encrypt()//真正的加密处理
//此加密函数指针是在ipsec_xmit_encap_bundle()中获取sa后赋的值。
// ixt_e=ixs->ipsp-&g