Loading ttcn3/EtsiLibrary/LibIpv6/LibSec/LibIpv6_Rfc4306Ikev2_Functions.ttcn +244 −220 Original line number Diff line number Diff line Loading @@ -709,8 +709,10 @@ module LibIpv6_Rfc4306Ikev2_Functions { * @param p_src address of IUT * @param p_dst address of test node */ function f_waitForIkeSaInitRsp( in template Ipv6Address p_src, in template Ipv6Address p_dst) function f_waitForIkeSaInitRsp( template Ipv6Address p_src, template Ipv6Address p_dst ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_success; Loading Loading @@ -894,8 +896,10 @@ module LibIpv6_Rfc4306Ikev2_Functions { * @param p_src address of IUT * @param p_dst address of test node */ function f_waitForIkeAuthRsp( in template Ipv6Address p_src, in template Ipv6Address p_dst) function f_waitForIkeAuthRsp( template Ipv6Address p_src, template Ipv6Address p_dst ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret; Loading Loading @@ -1093,82 +1097,13 @@ module LibIpv6_Rfc4306Ikev2_Functions { group sendRequests { function f_sendIkeSaInitReq(in template IkeSaInitRequest p_ikeSaInitRequest) runs on LibIpv6Node return FncRetCode { var IkeSaInitRequest v_ipPkt := valueof(p_ikeSaInitRequest); var FncRetCode v_ret := e_error; if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitReq: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); // Save IKEv2 header and payload list in ikeSad for later use in AUTH calculation vc_ikeSad[0].ikev2Header := v_ipPkt.ipv6Payload.ikeMsg.ikev2Header; vc_ikeSad[0].ikePayloadList := v_ipPkt.ipv6Payload.ikeMsg.payloadList; return e_success; } // end f_sendIkeSaInitReq function f_sendIkeAuthReq(in template IkeAuthRequest p_ikeAuthRequest) runs on LibIpv6Node return FncRetCode { var IkeAuthRequest v_ipPkt; v_ipPkt := valueof(p_ikeAuthRequest); var FncRetCode v_ret := e_error; if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeAuthReq: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeAuthReq } // end group sendRequests group sendResponses { function f_sendIkeSaInitRsp(in template IkeSaInitResponse p_IkeSaInitres) runs on LibIpv6Node return FncRetCode { var IkeSaInitResponse v_ipPkt; v_ipPkt := valueof(p_IkeSaInitres); if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitRsp: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeSaInitRsp } // end group sendResponses group establishSAFns_active { function f_sndSaInitReqAndWaitForRsp( function f_createAndSendSaInitReq( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut, template Ipv6Address p_addrTunnelStart, template Ipv6Address p_addrTunnelEnd) template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var SaTransform v_saTransformEncr := valueof ( Loading @@ -1194,8 +1129,6 @@ group establishSAFns_active { ); } if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { v_ret := f_sendIkeSaInitReq ( m_ikeSaInitReq ( p_addrTn, Loading Loading @@ -1254,47 +1187,39 @@ group establishSAFns_active { ) ); if (v_ret != e_success) { return v_ret;} } else { //TODO tunnel mode return v_ret; } // wait for IKE_SA_INIT response v_ret := f_waitForIkeSaInitRsp(p_addrIut,p_addrTn);//todo smu 2007 add tunnel mode if (v_ret != e_success) { return v_ret;} //fill keyLen v_ret := f_getEncrKeyLen(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrKeyLen(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getPrfKeyLen(vc_ikeSad[0].ikePseudoRandomFunction, vc_ikeSad[0].prfKeyLen); if (v_ret != e_success) { return v_ret;} function f_sendIkeSaInitReq(in template IkeSaInitRequest p_ikeSaInitRequest) runs on LibIpv6Node return FncRetCode { var IkeSaInitRequest v_ipPkt := valueof(p_ikeSaInitRequest); var FncRetCode v_ret := e_error; //fill iv and block sizes v_ret := f_getIv(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeIv); if (v_ret != e_success) { return v_ret;} v_ret := f_getEncrBlockSize(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrBlockSize); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrBlockSize(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrBlockSize); if (v_ret != e_success) { return v_ret;} if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitReq: Error when calculating length ****"); return e_error; } // calculate and store the seven secrets vc_ikeSad[0].sevenSecrets := f_calculateSevenSecrets(vc_ikeSad[0]); //send ipPort.send(v_ipPkt); v_ret := fx_setIkeSecurityParameters(vc_ikeSad[0]); // Save IKEv2 header and payload list in ikeSad for later use in AUTH calculation vc_ikeSad[0].ikev2Header := v_ipPkt.ipv6Payload.ikeMsg.ikev2Header; vc_ikeSad[0].ikePayloadList := v_ipPkt.ipv6Payload.ikeMsg.payloadList; return v_ret; return e_success; }//end f_sndSaInitReqAndWaitForRsp } // end f_createAndSendIkeSaInitReq function f_sndAuthReqAndWaitForRsp_forEsp( function f_createAndSendAuthReq( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut, template Ipv6Address p_addrTunnelStart, template Ipv6Address p_addrTunnelEnd) runs on LibIpv6Node return FncRetCode { template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var SaTransform v_saTransformEncr := valueof ( Loading @@ -1320,8 +1245,6 @@ group establishSAFns_active { ); } if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { v_ret := f_sendIkeAuthReq ( m_ikeAuthReq ( p_addrTn, Loading Loading @@ -1357,8 +1280,7 @@ group establishSAFns_active { c_protocolId_esp, c_spiSize4, c_2Transforms, //int2oct(vc_sad[c_saOut].spi,c_spiSize4), int2oct(42,c_spiSize4), int2oct(vc_sad[c_saOut].spi,c_spiSize4), m_saTransformList_2Elem ( v_saTransformEncr, m_saTransform ( Loading @@ -1372,36 +1294,36 @@ group establishSAFns_active { ), m_tsInitiatorPL( c_tsResponderPL, m_trafficSelectorList_2Elem ( m_trafficSelectorList_1Elem ( m_icmpv6Ts( 0,//oct2int(in2oct(c_echoRequestMsg) & int2oct(c_icmpCode)), 65535, oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), p_addrTn, p_addrTn ), m_icmpv6Ts( 32768,//oct2int(in2oct(c_echoRequestMsg) & int2oct(c_icmpCode)), 33023, p_addrTn, p_addrTn ) )//, //m_icmpv6Ts( // 32768, // 33023, // p_addrTn, // p_addrTn //) ) ), m_tsResponderPL( c_noNextPL, m_trafficSelectorList_2Elem ( m_icmpv6Ts( 0,//c_echoRequestMsg, 65535, p_addrIut, p_addrIut ), m_trafficSelectorList_1Elem ( m_icmpv6Ts( 32768,//c_echoRequestMsg, 33023, oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), p_addrIut, p_addrIut ) )//, //m_icmpv6Ts( // 32768,//c_echoRequestMsg, // 33023, // p_addrIut, // p_addrIut //) ) ) ) Loading @@ -1410,13 +1332,116 @@ group establishSAFns_active { ) ); if (v_ret != e_success) { return v_ret;} return v_ret ; }//end f_createAndSendAuthReq function f_sendIkeAuthReq(in template IkeAuthRequest p_ikeAuthRequest) runs on LibIpv6Node return FncRetCode { var IkeAuthRequest v_ipPkt; v_ipPkt := valueof(p_ikeAuthRequest); var FncRetCode v_ret := e_error; if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeAuthReq: Error when calculating length ****"); return e_error; } else { //tunnel todo //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeAuthReq } // end group sendRequests group sendResponses { function f_sendIkeSaInitRsp(in template IkeSaInitResponse p_IkeSaInitres) runs on LibIpv6Node return FncRetCode { var IkeSaInitResponse v_ipPkt; v_ipPkt := valueof(p_IkeSaInitres); if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitRsp: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeSaInitRsp } // end group sendResponses group establishSAFns_active { function f_sndSaInitReqAndWaitForRsp( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_createAndSendSaInitReq( p_addrTn, p_addrIut ); if (v_ret != e_success) { return v_ret;} // wait for IKE_SA_INIT response v_ret := f_waitForIkeSaInitRsp(p_addrIut,p_addrTn); if (v_ret != e_success) { return v_ret;} //fill keyLen v_ret := f_getEncrKeyLen(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrKeyLen(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getPrfKeyLen(vc_ikeSad[0].ikePseudoRandomFunction, vc_ikeSad[0].prfKeyLen); if (v_ret != e_success) { return v_ret;} //fill iv and block sizes v_ret := f_getIv(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeIv); if (v_ret != e_success) { return v_ret;} v_ret := f_getEncrBlockSize(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrBlockSize); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrBlockSize(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrBlockSize); if (v_ret != e_success) { return v_ret;} // calculate and store the seven secrets vc_ikeSad[0].sevenSecrets := f_calculateSevenSecrets(vc_ikeSad[0]); v_ret := fx_setIkeSecurityParameters(vc_ikeSad[0]); return v_ret; }//end f_sndSaInitReqAndWaitForRsp function f_sndAuthReqAndWaitForRsp_forEsp( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_createAndSendAuthReq( p_addrTn, p_addrIut ); if (v_ret != e_success) { return v_ret;} // wait for IKE_AUTH response v_ret := f_waitForIkeAuthRsp(p_addrIut, p_addrTn);//todo make it for tunnel mode as well v_ret := f_waitForIkeAuthRsp(p_addrIut, p_addrTn); if (v_ret != e_success) { return v_ret;} //fill keyLen Loading Loading @@ -1447,9 +1472,8 @@ group establishSAFns_passive { function f_rcvSaInitReqAndRsp( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut, template Ipv6Address p_addrTunnelStart, template Ipv6Address p_addrTunnelEnd) template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibSec/LibIpv6_Rfc4306Ikev2_Functions.ttcn +244 −220 Original line number Diff line number Diff line Loading @@ -709,8 +709,10 @@ module LibIpv6_Rfc4306Ikev2_Functions { * @param p_src address of IUT * @param p_dst address of test node */ function f_waitForIkeSaInitRsp( in template Ipv6Address p_src, in template Ipv6Address p_dst) function f_waitForIkeSaInitRsp( template Ipv6Address p_src, template Ipv6Address p_dst ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_success; Loading Loading @@ -894,8 +896,10 @@ module LibIpv6_Rfc4306Ikev2_Functions { * @param p_src address of IUT * @param p_dst address of test node */ function f_waitForIkeAuthRsp( in template Ipv6Address p_src, in template Ipv6Address p_dst) function f_waitForIkeAuthRsp( template Ipv6Address p_src, template Ipv6Address p_dst ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret; Loading Loading @@ -1093,82 +1097,13 @@ module LibIpv6_Rfc4306Ikev2_Functions { group sendRequests { function f_sendIkeSaInitReq(in template IkeSaInitRequest p_ikeSaInitRequest) runs on LibIpv6Node return FncRetCode { var IkeSaInitRequest v_ipPkt := valueof(p_ikeSaInitRequest); var FncRetCode v_ret := e_error; if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitReq: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); // Save IKEv2 header and payload list in ikeSad for later use in AUTH calculation vc_ikeSad[0].ikev2Header := v_ipPkt.ipv6Payload.ikeMsg.ikev2Header; vc_ikeSad[0].ikePayloadList := v_ipPkt.ipv6Payload.ikeMsg.payloadList; return e_success; } // end f_sendIkeSaInitReq function f_sendIkeAuthReq(in template IkeAuthRequest p_ikeAuthRequest) runs on LibIpv6Node return FncRetCode { var IkeAuthRequest v_ipPkt; v_ipPkt := valueof(p_ikeAuthRequest); var FncRetCode v_ret := e_error; if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeAuthReq: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeAuthReq } // end group sendRequests group sendResponses { function f_sendIkeSaInitRsp(in template IkeSaInitResponse p_IkeSaInitres) runs on LibIpv6Node return FncRetCode { var IkeSaInitResponse v_ipPkt; v_ipPkt := valueof(p_IkeSaInitres); if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitRsp: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeSaInitRsp } // end group sendResponses group establishSAFns_active { function f_sndSaInitReqAndWaitForRsp( function f_createAndSendSaInitReq( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut, template Ipv6Address p_addrTunnelStart, template Ipv6Address p_addrTunnelEnd) template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var SaTransform v_saTransformEncr := valueof ( Loading @@ -1194,8 +1129,6 @@ group establishSAFns_active { ); } if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { v_ret := f_sendIkeSaInitReq ( m_ikeSaInitReq ( p_addrTn, Loading Loading @@ -1254,47 +1187,39 @@ group establishSAFns_active { ) ); if (v_ret != e_success) { return v_ret;} } else { //TODO tunnel mode return v_ret; } // wait for IKE_SA_INIT response v_ret := f_waitForIkeSaInitRsp(p_addrIut,p_addrTn);//todo smu 2007 add tunnel mode if (v_ret != e_success) { return v_ret;} //fill keyLen v_ret := f_getEncrKeyLen(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrKeyLen(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getPrfKeyLen(vc_ikeSad[0].ikePseudoRandomFunction, vc_ikeSad[0].prfKeyLen); if (v_ret != e_success) { return v_ret;} function f_sendIkeSaInitReq(in template IkeSaInitRequest p_ikeSaInitRequest) runs on LibIpv6Node return FncRetCode { var IkeSaInitRequest v_ipPkt := valueof(p_ikeSaInitRequest); var FncRetCode v_ret := e_error; //fill iv and block sizes v_ret := f_getIv(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeIv); if (v_ret != e_success) { return v_ret;} v_ret := f_getEncrBlockSize(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrBlockSize); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrBlockSize(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrBlockSize); if (v_ret != e_success) { return v_ret;} if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitReq: Error when calculating length ****"); return e_error; } // calculate and store the seven secrets vc_ikeSad[0].sevenSecrets := f_calculateSevenSecrets(vc_ikeSad[0]); //send ipPort.send(v_ipPkt); v_ret := fx_setIkeSecurityParameters(vc_ikeSad[0]); // Save IKEv2 header and payload list in ikeSad for later use in AUTH calculation vc_ikeSad[0].ikev2Header := v_ipPkt.ipv6Payload.ikeMsg.ikev2Header; vc_ikeSad[0].ikePayloadList := v_ipPkt.ipv6Payload.ikeMsg.payloadList; return v_ret; return e_success; }//end f_sndSaInitReqAndWaitForRsp } // end f_createAndSendIkeSaInitReq function f_sndAuthReqAndWaitForRsp_forEsp( function f_createAndSendAuthReq( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut, template Ipv6Address p_addrTunnelStart, template Ipv6Address p_addrTunnelEnd) runs on LibIpv6Node return FncRetCode { template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var SaTransform v_saTransformEncr := valueof ( Loading @@ -1320,8 +1245,6 @@ group establishSAFns_active { ); } if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { v_ret := f_sendIkeAuthReq ( m_ikeAuthReq ( p_addrTn, Loading Loading @@ -1357,8 +1280,7 @@ group establishSAFns_active { c_protocolId_esp, c_spiSize4, c_2Transforms, //int2oct(vc_sad[c_saOut].spi,c_spiSize4), int2oct(42,c_spiSize4), int2oct(vc_sad[c_saOut].spi,c_spiSize4), m_saTransformList_2Elem ( v_saTransformEncr, m_saTransform ( Loading @@ -1372,36 +1294,36 @@ group establishSAFns_active { ), m_tsInitiatorPL( c_tsResponderPL, m_trafficSelectorList_2Elem ( m_trafficSelectorList_1Elem ( m_icmpv6Ts( 0,//oct2int(in2oct(c_echoRequestMsg) & int2oct(c_icmpCode)), 65535, oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), p_addrTn, p_addrTn ), m_icmpv6Ts( 32768,//oct2int(in2oct(c_echoRequestMsg) & int2oct(c_icmpCode)), 33023, p_addrTn, p_addrTn ) )//, //m_icmpv6Ts( // 32768, // 33023, // p_addrTn, // p_addrTn //) ) ), m_tsResponderPL( c_noNextPL, m_trafficSelectorList_2Elem ( m_icmpv6Ts( 0,//c_echoRequestMsg, 65535, p_addrIut, p_addrIut ), m_trafficSelectorList_1Elem ( m_icmpv6Ts( 32768,//c_echoRequestMsg, 33023, oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), oct2int(int2oct(c_echoRequestMsg,2) & int2oct(c_icmpCode0,2)), p_addrIut, p_addrIut ) )//, //m_icmpv6Ts( // 32768,//c_echoRequestMsg, // 33023, // p_addrIut, // p_addrIut //) ) ) ) Loading @@ -1410,13 +1332,116 @@ group establishSAFns_active { ) ); if (v_ret != e_success) { return v_ret;} return v_ret ; }//end f_createAndSendAuthReq function f_sendIkeAuthReq(in template IkeAuthRequest p_ikeAuthRequest) runs on LibIpv6Node return FncRetCode { var IkeAuthRequest v_ipPkt; v_ipPkt := valueof(p_ikeAuthRequest); var FncRetCode v_ret := e_error; if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeAuthReq: Error when calculating length ****"); return e_error; } else { //tunnel todo //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeAuthReq } // end group sendRequests group sendResponses { function f_sendIkeSaInitRsp(in template IkeSaInitResponse p_IkeSaInitres) runs on LibIpv6Node return FncRetCode { var IkeSaInitResponse v_ipPkt; v_ipPkt := valueof(p_IkeSaInitres); if(f_setExtensionHeaders(v_ipPkt) != e_success) { log(" **** f_sendIkeSaInitRsp: Error when calculating length ****"); return e_error; } //send ipPort.send(v_ipPkt); return e_success; } // end f_sendIkeSaInitRsp } // end group sendResponses group establishSAFns_active { function f_sndSaInitReqAndWaitForRsp( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_createAndSendSaInitReq( p_addrTn, p_addrIut ); if (v_ret != e_success) { return v_ret;} // wait for IKE_SA_INIT response v_ret := f_waitForIkeSaInitRsp(p_addrIut,p_addrTn); if (v_ret != e_success) { return v_ret;} //fill keyLen v_ret := f_getEncrKeyLen(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrKeyLen(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrKeyLen); if (v_ret != e_success) { return v_ret;} v_ret := f_getPrfKeyLen(vc_ikeSad[0].ikePseudoRandomFunction, vc_ikeSad[0].prfKeyLen); if (v_ret != e_success) { return v_ret;} //fill iv and block sizes v_ret := f_getIv(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeIv); if (v_ret != e_success) { return v_ret;} v_ret := f_getEncrBlockSize(vc_ikeSad[0].ikeEncryptionAlgo, vc_ikeSad[0].ikeEncrBlockSize); if (v_ret != e_success) { return v_ret;} v_ret := f_getIntegrBlockSize(vc_ikeSad[0].ikeIntegrityAlgo, vc_ikeSad[0].ikeIntegrBlockSize); if (v_ret != e_success) { return v_ret;} // calculate and store the seven secrets vc_ikeSad[0].sevenSecrets := f_calculateSevenSecrets(vc_ikeSad[0]); v_ret := fx_setIkeSecurityParameters(vc_ikeSad[0]); return v_ret; }//end f_sndSaInitReqAndWaitForRsp function f_sndAuthReqAndWaitForRsp_forEsp( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_createAndSendAuthReq( p_addrTn, p_addrIut ); if (v_ret != e_success) { return v_ret;} // wait for IKE_AUTH response v_ret := f_waitForIkeAuthRsp(p_addrIut, p_addrTn);//todo make it for tunnel mode as well v_ret := f_waitForIkeAuthRsp(p_addrIut, p_addrTn); if (v_ret != e_success) { return v_ret;} //fill keyLen Loading Loading @@ -1447,9 +1472,8 @@ group establishSAFns_passive { function f_rcvSaInitReqAndRsp( template Ipv6Address p_addrTn, template Ipv6Address p_addrIut, template Ipv6Address p_addrTunnelStart, template Ipv6Address p_addrTunnelEnd) template Ipv6Address p_addrIut ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; Loading