strongswan libipsec

strongswan/src/libipsec/目录下文件list

# ls
Android.mk     esp_packet.h  ipsec_event_listener.h  ipsec_policy.c      ipsec_processor.c  ipsec_sa_mgr.c
esp_context.c  ip_packet.c   ipsec_event_relay.c     ipsec_policy.h      ipsec_processor.h  ipsec_sa_mgr.h
esp_context.h  ip_packet.h   ipsec_event_relay.h     ipsec_policy_mgr.c  ipsec_sa.c         Makefile.am
esp_packet.c   ipsec.c       ipsec.h                 ipsec_policy_mgr.h  ipsec_sa.h         tests

ipsec主件部分:

类别相关文件描述
PACKET

ip_packet

IP数据包相关属性和操作接口
esp_packetESP数据包相关属性和操作接口
POLICYipsec_policy策略:用来匹配数据包并做相应traffic dierction
ipsec_policy_mgr添加,删除,清空,查找策略,属于策略的管理,策略需要被注册到内核。为了保守的安全策略,所有不能匹配注册的策略的数据包都将被丢弃。一条策略通常是和一个SA关联的。
SAipsec_saSPI,src,dst,protocol,reqid,lfietime,mode,esn等描述了一个SA(Security Association)
ipsec_sa_mgr添加,更新,查询,删除和清空SAs等操作;SAs跟Policy一样都是要被注册到内核的,也需要被统一管理。为了更快的在SA list中找到list,使用了hash表。
ESP

esp_context

ESP上下文:AEAD算法,seq_no;

seq_no用到了抗重放窗口。

esp_packet

ESP数据包的协议相关操作;

esp_packet_create_from_packet函数被注册为process_inbound的回调函数

PROCESSORipsec_processor

inboud和outbound队列的初始化和入队,出队操作;注册process_inbound和process_outbound函数;

process_inbound函数细节:

1、从ibound_queue中取ESP数据包

2、根据ESP数据包的SPI找到对应SPI

3、根据SA对数据包做解密

4、调用deliver_inbound把解密出的明文给注册者的回调函数处理

process_outbound函数细节(反过程):

1、从outbound_queue中取出要做成ESP的明文数据包

2、查找该数据包的匹配策略

3、根据reqid(策略与SA根据reqid绑定)关联到SA

4、用SA对原明文数据包进行加密

5、根据注册者的回调函数发送加密好的ESP数据包

EVENTipsec_event_listenerListener interface for IPsec events
ipsec_event_relay
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值