Commit c8c3d42c authored by berge's avatar berge
Browse files

validation fixes

parent ee1186ac
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -266,7 +266,7 @@
	 * @param   p_msg Ipv6 packet
	 * @return  payload length in bytes
	*/
	external function fx_ikeEncPayloadLength( in template EncryptedPayload p_msg ) 
	external function fx_ikeEncPayloadLength( in Ipv6Packet p_msg ) 
	return UInt16;

}// end module LibIpv6_ExternalFunctions
+1 −1
Original line number Diff line number Diff line
@@ -245,7 +245,7 @@ group rfc2460Root_Functions {
					}
					//Payload length
					if(v_activeIpv6Packet.ipv6Payload.ikeMsg.payloadList[0].encrypted.payloadLength == 0) {
						v_activeIpv6Packet.ipv6Payload.ikeMsg.payloadList[0].encrypted.payloadLength := fx_ikeEncPayloadLength(v_activeIpv6Packet.ipv6Payload.ikeMsg.payloadList[0].encrypted); 
						v_activeIpv6Packet.ipv6Payload.ikeMsg.payloadList[0].encrypted.payloadLength := fx_ikeEncPayloadLength(v_activeIpv6Packet);//.ipv6Payload.ikeMsg.payloadList[0].encrypted); 
					}
					v_activeIpv6Packet.ipv6Payload.ikeMsg.ikev2Header.messageLength := c_ikev2HeaderLen + lengthof(fx_ikePayloadListToOct(v_activeIpv6Packet.ipv6Payload.ikeMsg.payloadList));
				}
+12 −5
Original line number Diff line number Diff line
@@ -404,11 +404,13 @@ module LibIpv6_Rfc4306Ikev2_Functions {
									       int2oct(c_identificationIpv6Addr,1) & c_3ZeroBytes &
										   p_IkeSa.iDi);
		}
		else // IUT acts as responder
		else // acts as responder
		{
			v_auxiliary := p_IkeSa.nI &
						   fx_pseudoRandom(p_IkeSa.ikePseudoRandomFunction,
									       p_IkeSa.sevenSecrets.sK_pr,
										   // Header of Identification PL must be added
										   int2oct(c_identificationIpv6Addr,1) & c_3ZeroBytes &
										   p_IkeSa.iDr);
		}

@@ -3560,13 +3562,13 @@ group sendResponses {
							c_notifyPL,
							m_ikePlList_6Elem(
								m_notifyPL(
									c_idInitiatorPL, 
									c_idResponderPL, 
									0, //c_protocolId_none, 
									c_notifyUseTransportMode
								),							
								m_idResponderPL (	
									c_authenticationPL,
									p_addrIut
									v_ikeSrc
								),
								m_authPL (	
									c_saPL,
@@ -3607,11 +3609,11 @@ group sendResponses {
					vc_ikeSad[0].messageIdIut,
					m_ikePlList_1Elem(
						m_encryptedPL(
							c_idInitiatorPL,
							c_idResponderPL,
							m_ikePlList_5Elem(
								m_idResponderPL (	
									c_authenticationPL,
									p_addrIut
									v_ikeSrc
								),
								m_authPL (	
									c_saPL,
@@ -4952,6 +4954,11 @@ group establishSAFns_passive {
		vc_ikeSad[0].ikeIntegrKeyLen := f_getIntegrKeyLen(vc_ikeSad[0].ikeIntegrityAlgo);
		vc_ikeSad[0].prfKeyLen := f_getPrfKeyLen(vc_ikeSad[0].ikePseudoRandomFunction);
		
		//fill iv and block sizes
		vc_ikeSad[0].ikeIv := f_getIv(vc_ikeSad[0].ikeEncryptionAlgo);
		vc_ikeSad[0].ikeEncrBlockSize := f_getEncrBlockSize(vc_ikeSad[0].ikeEncryptionAlgo);
		vc_ikeSad[0].ikeIntegrBlockSize := f_getIntegrBlockSize(vc_ikeSad[0].ikeIntegrityAlgo);

		// calculate and store the seven secrets
		vc_ikeSad[0].sevenSecrets := f_calculateSevenSecrets(vc_ikeSad[0]);

+1 −1
Original line number Diff line number Diff line
@@ -216,7 +216,7 @@
		/*
		 * @desc Derived from RFC4306, clause 3.2
		*/
		type set length(1 .. c_maxIkePayloads) of IkePayload IkePayloadList;
		type set length(0 .. c_maxIkePayloads) of IkePayload IkePayloadList;

		group IkeRfc4306SecurityAssociationPayload {