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_AUTHbuild_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_AUTHbuild_certs,return SUCCESS -- 任務銷燬
                     主動方 cert_pre : process_i : 狀態爲CR_AUTHprocess_certs,return SUCCESS -- 任務銷燬
                                cert_post : process_i : 狀態爲CR_AUTHreturn SUCCESS -- 任務銷燬

發佈了44 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章