attributes | attribute_handler.h attribute_manager.h attributes.c? mem_pool.c attribute_manager.c? attribute_provider.h? attributes.h mem_pool.h | |
bus | bus.c? bus.h? listeners | |
config | backend.h? backend_manager.c? backend_manager.h? child_cfg.c? child_cfg.h? ike_cfg.c? ike_cfg.h? peer_cfg.c? peer_cfg.h | |
control | controller.c? controller.h | |
encoding | generator.c? generator.h? message.c? message.h? parser.c? parser.h? payloads | |
kernel | kernel_handler.c?kernel_handler.h kernel_listener.h | 侦听并处理内核事件,主要实现了kernel listener的接口。 主要事件有:策略匹配,SA过期,策略迁移,网络接口状态改变或者路由改变,隧道建立事件等。 |
kernel_interface.c?kernel_interface.h | kernel interface主要是和内核通信,用来处理SA和策略的管理,网络接口和IP地址的管理。是kernel_handler,kernel_ipsec,kernel_net的集合。 比如:从SAD里添加,删除,更新,查询SA等;从SPD里添加,删除,更新,查询Policy等;从内核接口查询路由,获取本地接口状态,IP地址等;添加虚拟地址,删除虚拟地址等。 |
kernel_ipsec.c?kernel_ipsec.h? | 通过内核接口管理SA和策略。 比如:从SAD里添加,删除,更新,查询SA等;从SPD里天剑,删除,更新,查询Policy等。 |
kernel_net.c?kernel_net.h | 通过内核接口设置网络参数。 比如根据目的地址获取源地址,路由查询,获取本地IP地址对应的接口名称,为接口添加虚拟地址,添加路由等。 |
network | receiver.c?? receiver.h sender.c? sender.h | |
socket.c? socket.h | |
socket_manager.c socket_manager.h | |
plugins | | |
processing | jobs | |
sa | child_sa.c?child_sa.h | 一个child_sa包含两个SAs,即host间两个方向的SAs,这个两个SAs和Policy都有相同的reqid。 |
child_sa_manager.c?child_sa_manager.h | 处理CHILD_SA和IKE_SA之间的关联; 注册,删除并查找CHILD_SA和IKE_SA之间的关联。 |
ike_sa.c?ike_sa.h | 一个IKE_SA包含了一条连接的算法信息;一个IKE_SA包含它负责的CHID_SAs。所有的传输都是由IKE_SA通过任务管理处理。 |
ike_sa_id.c?ike_sa_id.h | ike_sa_id是用来标识一个IKE_SA的。 IKE_SA实际由发起方和响应方的SPI标识;另外,它包含了IKE主要版本号,如IKEv2,和daemon的角色,如发起方还是响应方。 |
ike_sa_manager.c?ike_sa_manager.h | |
task.c?task.h | 任务类型在enum task_type_t中有枚举。 比如建立未认证的IKE_SA,认证建立的IKE_SA,认证前的证书处理,认证后的证书处理,用IKE_SA生成CHILD_SA,删除CHILD_SA等。 |
task_manager.c?task_manager.h | IKEv1或IKEv2的管理器创建; 任务管理器使用任务队列来管理任务。 任务队列有三种:由己方初始化激活的任务队列;由对方初始化的被动任务队列;已经初始化但还未激活的任务队列。 |
ikev1 | |
ikev2 | |
eap | |
xauth | |
authenticator.c?authenticator.h keymat.c keymat.h shunt_manager.c?shunt_manager.h redirect_manager.c??redirect_manager.h?? trap_manager.c? trap_manager.h redirect_provider.h | |
tests | exchange_tests.c? exchange_tests.h? libcharon_tests.c? libcharon_tests.h? Makefile.am? suites? utils | |