Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_Functions.ttcn +12 −6 Original line number Diff line number Diff line Loading @@ -483,7 +483,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-IN Loading @@ -505,7 +506,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-OUT Loading @@ -527,7 +529,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-IN Loading @@ -549,7 +552,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-OUT Loading @@ -571,7 +575,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-IN Loading @@ -593,7 +598,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } return v_ret; Loading ttcn3/EtsiLibrary/LibIpv6/LibSec/LibIpv6_Rfc4306Ikev2_Functions.ttcn +24 −23 Original line number Diff line number Diff line Loading @@ -452,24 +452,24 @@ module LibIpv6_Rfc4306Ikev2_Functions { tc_wait.stop; vc_ikeSad[0].udpSourcePort := v_ipv6Packet.ipv6Payload.ikeMsg.sourcePort; vc_ikeSad[c_saIn].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[c_saIn].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; vc_ikeSad[0].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[0].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; v_nextPayload := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.nextPayload; v_ikePayloadList := v_ipv6Packet.ipv6Payload.ikeMsg.payloadList; // get Nonce payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_noncePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].nI := v_ikePayload.nonce.data; } { vc_ikeSad[0].nI := v_ikePayload.nonce.data; } else { log("**** f_waitForIkeSaInitreq: ERROR: No Nonce payload in payload list **** "); } // get Key exchange payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_keyExchangePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; { vc_ikeSad[0].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; // calculate shared Diffie-Hellman secret vc_ikeSad[c_saIn].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[c_saIn].diffieHellmanGroup, vc_ikeSad[0].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[0].diffieHellmanGroup, PX_IKE_DIFFIEHELLMAN_PRIVKEY, v_ikePayload.keyExchange.data); } Loading Loading @@ -501,7 +501,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeInteg,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } {vc_ikeSad[0].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } else { log("**** f_waitForIkeSaInitreq: ERROR: No integrity algorithm transform in 1st proposal of Security Association payload **** "); } Loading @@ -509,7 +509,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeDh,v_saTransform); if (v_ret == e_success) {if(vc_ikeSad[c_saIn].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {if(vc_ikeSad[0].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {log("**** f_waitForIkeSaInitreq: ERROR: Diffie-Hellman transform carries value different to value from Key Exchange payload **** "); return e_error;}} else Loading Loading @@ -567,7 +567,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { // get Identification payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_idInitiatorPL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].iDi := v_ikePayload.idInitiator.data; } { vc_ikeSad[0].iDi := v_ikePayload.idInitiator.data; } else { log("**** f_waitForAurhreq: ERROR: No Identification payload in payload list **** "); } Loading @@ -592,7 +592,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { { v_protocolId := v_ikePayload.securityAssociation.saProposalList[0].protocolId; // put data from first proposal into vc_Sad /* vc_sad[c_saIn].spi := v_ikePayload.securityAssociation.saProposalList[0].spi; vc_sad[c_saIn].spi := oct2int(v_ikePayload.securityAssociation.saProposalList[0].spi); if (v_protocolId == c_protocolEsp) { Loading @@ -600,7 +600,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeEncr,v_saTransform); if (v_ret == e_success) {vc_sad[c_saIn].espEncryptionAlgo := v_saTransform.transformId.ikeEncryptionAlgo; } {vc_sad[c_saIn].espEncryptionAlgo := v_saTransform.transformId.encryptionAlgo; } else { log("**** f_waitForIkeAuthtreq: ERROR: No encryption algorithm transform in 1st proposal of Security Association payload **** "); } } Loading @@ -620,9 +620,9 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeEsn,v_saTransform); if (v_ret == e_success) {vc_sad[c_saIn].espEncryptionAlgo := v_saTransform.transformId.extentedSequenceNumbers; } {vc_sad[c_saIn].extentedSequenceNumbers := v_saTransform.transformId.extentedSequenceNumbers; } else { log("**** f_waitForIkeAuthtreq: ERROR: No extended sequence numbers transform in 1st proposal of Security Association payload **** "); } */ { log("**** f_waitForIkeAuthtreq: ERROR: No extended sequence numbers transform in 1st proposal of Security Association payload **** "); } } else Loading Loading @@ -664,29 +664,30 @@ module LibIpv6_Rfc4306Ikev2_Functions { alt { [] ipPort.receive(mw_ikeSaInitReq( p_src, p_dst, mw_ikeSaInitReqPLL)) -> value v_ipv6Packet { tc_wait.stop; vc_ikeSad[c_saIn].udpSourcePort := v_ipv6Packet.ipv6Payload.ikeMsg.sourcePort; vc_ikeSad[c_saIn].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[c_saIn].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; vc_ikeSad[0].udpSourcePort := v_ipv6Packet.ipv6Payload.ikeMsg.sourcePort; vc_ikeSad[0].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[0].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; v_nextPayload := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.nextPayload; v_ikePayloadList := v_ipv6Packet.ipv6Payload.ikeMsg.payloadList; // get Nonce payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_noncePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].nI := v_ikePayload.nonce.data; } { vc_ikeSad[0].nI := v_ikePayload.nonce.data; } else { log("**** f_waitForIkeSaInitreq: ERROR: No Nonce payload in payload list **** "); } // get Key exchange payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_keyExchangePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; { vc_ikeSad[0].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; // calculate shared Diffie-Hellman secret vc_ikeSad[c_saIn].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[c_saIn].diffieHellmanGroup, vc_ikeSad[0].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[0].diffieHellmanGroup, PX_IKE_DIFFIEHELLMAN_PRIVKEY, v_ikePayload.keyExchange.data); } Loading @@ -702,7 +703,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeEncr,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikeEncryptionAlgo := v_saTransform.transformId.encryptionAlgo; } {vc_ikeSad[0].ikeEncryptionAlgo := v_saTransform.transformId.encryptionAlgo; } else { log("**** f_waitForIkeSaInitreq: ERROR: No encryption algorithm transform in 1st proposal of Security Association payload **** "); } Loading @@ -710,7 +711,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypePrf,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikePseudoRandomFunction := v_saTransform.transformId.pseudoRandomFunction; } {vc_ikeSad[0].ikePseudoRandomFunction := v_saTransform.transformId.pseudoRandomFunction; } else { log("**** f_waitForIkeSaInitreq: ERROR: No pseudo random function transform in 1st proposal of Security Association payload **** "); } Loading @@ -718,7 +719,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeInteg,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } {vc_ikeSad[0].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } else { log("**** f_waitForIkeSaInitreq: ERROR: No integrity algorithm transform in 1st proposal of Security Association payload **** "); } Loading @@ -726,7 +727,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeDh,v_saTransform); if (v_ret == e_success) {if(vc_ikeSad[c_saIn].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {if(vc_ikeSad[0].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {log("**** f_waitForIkeSaInitreq: ERROR: Diffie-Hellman transform carries value different to value from Key Exchange payload **** "); return e_error;}} else Loading ttcn3/EtsiLibrary/LibIpv6/LibSec/LibIpv6_Rfc4306Ikev2_TypesAndValues.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -1034,7 +1034,8 @@ octetstring espIntegrityKey, CombinedModeAlgo espCombinedModeAlgo, octetstring espCombinedModeKey, IpSecProtocolMode ipSecProtocolMode IpSecProtocolMode ipSecProtocolMode, ExtentedSequenceNumbers extentedSequenceNumbers } with { //variant "use=com.testingtech.ttcn.tci.*;"; Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_Functions.ttcn +12 −6 Original line number Diff line number Diff line Loading @@ -483,7 +483,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-IN Loading @@ -505,7 +506,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-OUT Loading @@ -527,7 +529,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-IN Loading @@ -549,7 +552,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-OUT Loading @@ -571,7 +575,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } // SAD-IN Loading @@ -593,7 +598,8 @@ group ipSecFns { espCombinedModeAlgo := PX_COMBINED_MODE_ALGO, espCombinedModeKey := PX_COMBINED_MODE_KEY/*f_createSecretKey()*/, // Protocol mode ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE ipSecProtocolMode := PX_IP_SEC_PROTOCOL_MODE, extentedSequenceNumbers := e_extentedSequenceNumbersNo } return v_ret; Loading
ttcn3/EtsiLibrary/LibIpv6/LibSec/LibIpv6_Rfc4306Ikev2_Functions.ttcn +24 −23 Original line number Diff line number Diff line Loading @@ -452,24 +452,24 @@ module LibIpv6_Rfc4306Ikev2_Functions { tc_wait.stop; vc_ikeSad[0].udpSourcePort := v_ipv6Packet.ipv6Payload.ikeMsg.sourcePort; vc_ikeSad[c_saIn].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[c_saIn].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; vc_ikeSad[0].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[0].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; v_nextPayload := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.nextPayload; v_ikePayloadList := v_ipv6Packet.ipv6Payload.ikeMsg.payloadList; // get Nonce payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_noncePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].nI := v_ikePayload.nonce.data; } { vc_ikeSad[0].nI := v_ikePayload.nonce.data; } else { log("**** f_waitForIkeSaInitreq: ERROR: No Nonce payload in payload list **** "); } // get Key exchange payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_keyExchangePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; { vc_ikeSad[0].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; // calculate shared Diffie-Hellman secret vc_ikeSad[c_saIn].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[c_saIn].diffieHellmanGroup, vc_ikeSad[0].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[0].diffieHellmanGroup, PX_IKE_DIFFIEHELLMAN_PRIVKEY, v_ikePayload.keyExchange.data); } Loading Loading @@ -501,7 +501,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeInteg,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } {vc_ikeSad[0].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } else { log("**** f_waitForIkeSaInitreq: ERROR: No integrity algorithm transform in 1st proposal of Security Association payload **** "); } Loading @@ -509,7 +509,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeDh,v_saTransform); if (v_ret == e_success) {if(vc_ikeSad[c_saIn].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {if(vc_ikeSad[0].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {log("**** f_waitForIkeSaInitreq: ERROR: Diffie-Hellman transform carries value different to value from Key Exchange payload **** "); return e_error;}} else Loading Loading @@ -567,7 +567,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { // get Identification payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_idInitiatorPL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].iDi := v_ikePayload.idInitiator.data; } { vc_ikeSad[0].iDi := v_ikePayload.idInitiator.data; } else { log("**** f_waitForAurhreq: ERROR: No Identification payload in payload list **** "); } Loading @@ -592,7 +592,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { { v_protocolId := v_ikePayload.securityAssociation.saProposalList[0].protocolId; // put data from first proposal into vc_Sad /* vc_sad[c_saIn].spi := v_ikePayload.securityAssociation.saProposalList[0].spi; vc_sad[c_saIn].spi := oct2int(v_ikePayload.securityAssociation.saProposalList[0].spi); if (v_protocolId == c_protocolEsp) { Loading @@ -600,7 +600,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeEncr,v_saTransform); if (v_ret == e_success) {vc_sad[c_saIn].espEncryptionAlgo := v_saTransform.transformId.ikeEncryptionAlgo; } {vc_sad[c_saIn].espEncryptionAlgo := v_saTransform.transformId.encryptionAlgo; } else { log("**** f_waitForIkeAuthtreq: ERROR: No encryption algorithm transform in 1st proposal of Security Association payload **** "); } } Loading @@ -620,9 +620,9 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeEsn,v_saTransform); if (v_ret == e_success) {vc_sad[c_saIn].espEncryptionAlgo := v_saTransform.transformId.extentedSequenceNumbers; } {vc_sad[c_saIn].extentedSequenceNumbers := v_saTransform.transformId.extentedSequenceNumbers; } else { log("**** f_waitForIkeAuthtreq: ERROR: No extended sequence numbers transform in 1st proposal of Security Association payload **** "); } */ { log("**** f_waitForIkeAuthtreq: ERROR: No extended sequence numbers transform in 1st proposal of Security Association payload **** "); } } else Loading Loading @@ -664,29 +664,30 @@ module LibIpv6_Rfc4306Ikev2_Functions { alt { [] ipPort.receive(mw_ikeSaInitReq( p_src, p_dst, mw_ikeSaInitReqPLL)) -> value v_ipv6Packet { tc_wait.stop; vc_ikeSad[c_saIn].udpSourcePort := v_ipv6Packet.ipv6Payload.ikeMsg.sourcePort; vc_ikeSad[c_saIn].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[c_saIn].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; vc_ikeSad[0].udpSourcePort := v_ipv6Packet.ipv6Payload.ikeMsg.sourcePort; vc_ikeSad[0].udpDestPort := v_ipv6Packet.ipv6Payload.ikeMsg.destPort; vc_ikeSad[0].spiInitiator := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.initiatorSpi; v_nextPayload := v_ipv6Packet.ipv6Payload.ikeMsg.ikev2Header.nextPayload; v_ikePayloadList := v_ipv6Packet.ipv6Payload.ikeMsg.payloadList; // get Nonce payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_noncePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].nI := v_ikePayload.nonce.data; } { vc_ikeSad[0].nI := v_ikePayload.nonce.data; } else { log("**** f_waitForIkeSaInitreq: ERROR: No Nonce payload in payload list **** "); } // get Key exchange payload data v_ret := f_getPayload(v_ikePayloadList,v_nextPayload,c_keyExchangePL,v_ikePayload); if (v_ret == e_success) { vc_ikeSad[c_saIn].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; { vc_ikeSad[0].diffieHellmanGroup := v_ikePayload.keyExchange.dhGroup; // calculate shared Diffie-Hellman secret vc_ikeSad[c_saIn].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[c_saIn].diffieHellmanGroup, vc_ikeSad[0].diffieHellmanSharedSecret := fx_dHSharedSecret(vc_ikeSad[0].diffieHellmanGroup, PX_IKE_DIFFIEHELLMAN_PRIVKEY, v_ikePayload.keyExchange.data); } Loading @@ -702,7 +703,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeEncr,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikeEncryptionAlgo := v_saTransform.transformId.encryptionAlgo; } {vc_ikeSad[0].ikeEncryptionAlgo := v_saTransform.transformId.encryptionAlgo; } else { log("**** f_waitForIkeSaInitreq: ERROR: No encryption algorithm transform in 1st proposal of Security Association payload **** "); } Loading @@ -710,7 +711,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypePrf,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikePseudoRandomFunction := v_saTransform.transformId.pseudoRandomFunction; } {vc_ikeSad[0].ikePseudoRandomFunction := v_saTransform.transformId.pseudoRandomFunction; } else { log("**** f_waitForIkeSaInitreq: ERROR: No pseudo random function transform in 1st proposal of Security Association payload **** "); } Loading @@ -718,7 +719,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeInteg,v_saTransform); if (v_ret == e_success) {vc_ikeSad[c_saIn].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } {vc_ikeSad[0].ikeIntegrityAlgo := v_saTransform.transformId.integAlgorithms; } else { log("**** f_waitForIkeSaInitreq: ERROR: No integrity algorithm transform in 1st proposal of Security Association payload **** "); } Loading @@ -726,7 +727,7 @@ module LibIpv6_Rfc4306Ikev2_Functions { v_ret := f_getTransformOfType(v_ikePayload.securityAssociation.saProposalList, c_transformTypeDh,v_saTransform); if (v_ret == e_success) {if(vc_ikeSad[c_saIn].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {if(vc_ikeSad[0].diffieHellmanGroup != v_saTransform.transformId.diffieHellman) {log("**** f_waitForIkeSaInitreq: ERROR: Diffie-Hellman transform carries value different to value from Key Exchange payload **** "); return e_error;}} else Loading
ttcn3/EtsiLibrary/LibIpv6/LibSec/LibIpv6_Rfc4306Ikev2_TypesAndValues.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -1034,7 +1034,8 @@ octetstring espIntegrityKey, CombinedModeAlgo espCombinedModeAlgo, octetstring espCombinedModeKey, IpSecProtocolMode ipSecProtocolMode IpSecProtocolMode ipSecProtocolMode, ExtentedSequenceNumbers extentedSequenceNumbers } with { //variant "use=com.testingtech.ttcn.tci.*;"; Loading