Commit 37f61f05 authored by seb's avatar seb
Browse files

almost 1 SEC TC finished

parent 2987f160
Loading
Loading
Loading
Loading
+10 −27
Original line number Diff line number Diff line
@@ -332,33 +332,6 @@ module LibIpv6_CommonRfcs_TypesAndValues {
			encode "TODO";
		}

		type enumerated CryptoAlgo {
			//EncryptionAlgo
			e_nullEnc(0),
			e_tripleDes_cbc(1),
			e_aes_cbc(2),
			e_aes_ctr(3),
			e_des_cbc(4),
			//IntegrityAlgo
			e_nullIntegrity(5),
			e_hmac_sha1_96(6),//ignore _96 TTCN takes care of it
			e_aes_xcbc_mac_96(7),
			e_hmac_md5_96(8),
			e_hmac_sha1_64(9),//ignore _64 TTCN takes care of it
			e_sha1_96(10)
			//CombinedModeAlgo
		}
		with {
			//encode "use=com.testingtech.ttcn.tci.*;";
			encode "TODO";
		}

//		type union CryptoAlgo { 
//			EncryptionAlgo encryptionAlgo,
//			IntegrityAlgo integrityAlgo,
//			CombinedModeAlgo combinedModeAlgo
//		}

		type enumerated IpSecProtocolMode {
			e_transportMode (0),
			e_tunnelMode (1)
@@ -427,6 +400,16 @@ module LibIpv6_CommonRfcs_TypesAndValues {
		//Security Association Database
		type record length (1 .. c_maxNrDa) of Sa Sad;

		

		

		type record EncryptResult {
			octetstring		iv optional,	
			octetstring 	espPayloadData,
			octetstring 	tfcPadding
		}

	} // end security


+26 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
	import from LibIpv6_Rfc2460Root_TypesAndValues {type all};

	import from LibIpv6_Rfc3775Mipv6_ExtHdrTypesAndValues all;
	import from LibIpv6_Rfc4303Esp_ExtHdrTypesAndValues all;


	/* @desc    This external function calculates the payload length
@@ -77,16 +78,38 @@
//	external function fx_dstOptHdrLength( in  ExtensionHeader p_extHdr) 
//	return UInt8;

	/* @desc   Apply indicated crypto algorithm to the message.
	 *			Use when no message needs to be specified.
	/* @desc   Apply indicated encryption algorithm to the message.
	 *			
	 * @param  p_crypto Cryptographic function used to compute MAC
	 * @param  p_key Key used to compute the MAC
	 * @param  p_message Octetstring message
	 * @return Message HMAC
	*/
	external function fx_cryptoFunction( CryptoAlgo p_crypto, in octetstring p_key, in octetstring p_message) 
	external function fx_encrypt( EncryptionAlgo p_encryptionAlgo, in octetstring p_key, in octetstring p_message) 
	return octetstring;

	external function fx_encryptModularIpPacket( in IpSecProtocolMode p_ipSecProtocolMode, EncryptionAlgo p_encryptionAlgo, in octetstring p_key, in ModularIpv6Packet p_message) 
	return EncryptResult;

	external function fx_decryptEspPayload( in UInt8 p_ivLength, in UInt8 p_icvLength, in IpSecProtocolMode p_ipSecProtocolMode, EncryptionAlgo p_encryptionAlgo, in octetstring p_key, in octetstring p_message) 
	return DecryptedEspHeaderData;



	/* @desc   Apply indicated Integrity algorithm to the message.
	 *			
	 * @param  p_crypto Cryptographic function used to compute MAC
	 * @param  p_key Key used to compute the MAC
	 * @param  p_message Octetstring message
	 * @return Message HMAC
	*/
	external function fx_integrity( IntegrityAlgo p_integrityAlgo, in octetstring p_key, in octetstring p_message) 
	return octetstring;

	external function fx_integrityExtHdr( IntegrityAlgo p_integrityAlgo, in octetstring p_key, in ExtensionHeader p_message) 
	return octetstring;


	/* @desc 	This external function computes the Authenticator for 
	 *          return routability procedure
	 *			The Ipv6Packet shall be used excluding the Authenticator field itself.
+2 −6
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ module LibIpv6_Interface {
	import from LibIpv6_Rfc2894RouterRenumbering_TypesAndValues {type all};
	import from LibIpv6_Rfc3775Mipv6_TypesAndValues {type all};
	import from LibIpv6_Rfc0768Udp_TypesAndValues all ;
	import from LibIpv6_Rfc4303Esp_TypesAndValues all;
	import from LibIpv6_CommonRfcs_TypesAndValues all;

	/*
@@ -75,9 +74,7 @@ module LibIpv6_Interface {
		//MetaPdu
		Ipv6Packet,
		//General IPv6 packet
		GeneralIpv6,
		//EspPackets
		EspPacket
		GeneralIpv6
	}

	/*
@@ -111,8 +108,7 @@ module LibIpv6_Interface {
		//Udp
		UdpPacket							udpPacket,
	  	//General IPv6 packet
	  	GeneralIpv6                         generalIpv6,
		EspPacket							espPacket
	  	GeneralIpv6                         generalIpv6
	}
	with {
		encode "isPDU=LibIpv6_Interface;"
+7 −0
Original line number Diff line number Diff line
@@ -50,4 +50,11 @@ module LibIpv6_ModuleParameters {
	*/
	modulepar { IntegrityAlgo PX_INTEGRITY_ALGO := e_hmac_sha1_96 }

	/*
	 * @desc Which Algo mode shall be used for Integrity?
	*/
	modulepar { CombinedModeAlgo PX_COMBINED_MODE_ALGO := e_null }

	
	
} // end module LibIpv6_ModuleParameters
+35 −2
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@
	import from LibIpv6_Rfc4302Ah_ExtHdrTypesAndValues all;
	import from LibIpv6_Rfc4303Esp_ExtHdrTypesAndValues all;


	group ipv6Header {

		const UInt4		c_ipv6Version := 6;
@@ -89,7 +88,8 @@
			TunneledIpv6Header	tunneledIpv6,
			MipHeader			mipHeader,//defined in LibIpv6_CommonRfcs_TypesAndValues
			AuthHeader			authHeader, //defined in LibIpv6_CommonRfcs_TypesAndValues
			EspHeader			espHeader //defined in LibIpv6_CommonRfcs_TypesAndValues
			EspHeader_snd		espHeader_snd,
			EspHeader_rcv		espHeader_rcv //defined in LibIpv6_CommonRfcs_TypesAndValues
		//	OtherIpv6ExtHdr		otherHeader
		} 
		with {
@@ -279,6 +279,39 @@
        	encode (data) "length=getIntTag('IPv6Header_payloadLength');";
        }

		//TODO solve payload location problem

		/*
		 * @desc PDU type to be used when building ESP payload for encryption
		*/
		type record ModularIpv6Packet {
			Ipv6Header			ipv6Hdr optional,
			ExtensionHeaderList extHdrList optional,
			Ipv6PacketPayload	ipv6PacketPayload optional
        }
		with {
			encode "TODO";
		}

		type union Ipv6PacketPayload {
			
			HomeAgentAddressDiscoveryRequest_payload homeAgentAddressDiscoveryRequest_payload
		}
		
		/*
		 * @desc Derived from RFC3775, clause 6.5
		*/
		type record HomeAgentAddressDiscoveryRequest_payload {
			UInt8 			icmpType(144),
			UInt8 			icmpCode,
			Oct2 			checksum,
			UInt16			identifier,
			UInt16			reserved
		}
		with {
			encode "TODO";
		}
        
    } //end group generalIpv6MessageType

} // end module LibIpv6_Rfc2460Root_TypesAndValues
Loading