IKEv1主模式证书协商中对证书相关载荷的处理。

认证方式为   RSA signatures 3 ---- RFC2409  中有描述

被动方先发送Certificate Request (7)报文,携带的Certificate Type:x.509 Certificate -Signature (4)
具体到代码流程
任务isakmp_cert_pre.c 、 isakmp_cert_post.c
this->state = CR_SA

第一条报文 : 主动方 cert_pre : build_i : 什么都不做,return NEED_MORE
                                       cert_post:   build_i : 什么都不做,return NEED_MORE
                      接收方 cert_pre : process_r : 发现使用证书,return NEED_MORE
                                 cert_post: process_r : 发现使用证书,return NEED_MORE
第二条报文 : 接收方   cert_pre :  build_r : 状态为CR_SA,直接设置状态,this->state = CR_KE,返回NEED_MORE
                                 cert_post: build_r: 状态为CR_SA,设置状态this->state = CR_KE,return NEED_MORE
                     主动方  cert_pre : process_i : 状态为CR_SA,发现要使用证书,this->state = CR_KE, return NEED_MORE
                                       cert_post : process_i : 状态为CR_SA,发现要使用证书,this->state = CR_KE,return NEED_MORE
第三条报文 : 主动方 cert_pre : build_i : 状态为CR_KE,什么都不做,return NEED_MORE
                                       cert_post : build_i : 状态为CR_KE, 什么都不做,return NEED_MORE
                     接收方 cert_pre : process_r : 状态为CR_KE,调用process_certreqs,这个时候由于报文里没有certreq载荷,因此什么都不处理,returnr NEED_MORE
                                cert_post : process_r : 状态为CR_KE,什么都不做,return NEED_MORE

第四条报文 : 接收方 cert_pre : build_r : 状态为CR_KE,this->send_req为真,build_certreqs,this->state = CR_AUTH, return NEED_MORE
                                cert_post : build_r : 状态为CR_KE,this->state = CR_AUTH,return NEED_MORE
                     主动方 cert_pre : process_i : 状态为CR_KE,process_certreqs,this->state = CR_AUTH
                                cert_post : process_i : 状态为CR_KE,this->state = CR_AUTH,return NEED_MORE

第五条报文 : 主动方 cert_pre : build_i : 状态为CR_AUTH,build_certreqs ,return NEED_MORE
                                       cert_post : build_i : 状态为 CR_AUTH build_certs ,return NEED_MORE
                     接收方 cert_pre : process_r : 状态为 CR_AUTH ,调用process_certreqs,处理certreq,process_certs处理证书 return SUCCESS   -- 任务销毁
                                cert_post : process_r : 状态为 CR_AUTH ,什么都不做,return NEED_MORE





第六条报文 : 接收方 cert_pre : build_r : 状态为 CR_AUTH ,return NEED_MORE  ----- 这个时候,应该已经没有此任务了,所以此场景不会走
                                cert_post : build_r : 状态为 CR_AUTH build_certs ,return SUCCESS -- 任务销毁
                     主动方 cert_pre : process_i : 状态为 CR_AUTH process_certs ,return SUCCESS -- 任务 销毁
                                cert_post : process_i : 状态为 CR_AUTH return SUCCESS -- 任务销毁
IKEv1主模式证书协商中对证书相关载荷的处理。_第1张图片

你可能感兴趣的:(strongswan)