Loading NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +10 −27 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_ExternalFunctions.ttcn +26 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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. Loading NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface.ttcn +2 −6 Original line number Diff line number Diff line Loading @@ -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; /* Loading Loading @@ -75,9 +74,7 @@ module LibIpv6_Interface { //MetaPdu Ipv6Packet, //General IPv6 packet GeneralIpv6, //EspPackets EspPacket GeneralIpv6 } /* Loading Loading @@ -111,8 +108,7 @@ module LibIpv6_Interface { //Udp UdpPacket udpPacket, //General IPv6 packet GeneralIpv6 generalIpv6, EspPacket espPacket GeneralIpv6 generalIpv6 } with { encode "isPDU=LibIpv6_Interface;" Loading NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_ModuleParameters.ttcn +7 −0 Original line number Diff line number Diff line Loading @@ -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 NewModuleStructure/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_TypesAndValues.ttcn +35 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ import from LibIpv6_Rfc4302Ah_ExtHdrTypesAndValues all; import from LibIpv6_Rfc4303Esp_ExtHdrTypesAndValues all; group ipv6Header { const UInt4 c_ipv6Version := 6; Loading Loading @@ -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 { Loading Loading @@ -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
NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +10 −27 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading
NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_ExternalFunctions.ttcn +26 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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. Loading
NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface.ttcn +2 −6 Original line number Diff line number Diff line Loading @@ -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; /* Loading Loading @@ -75,9 +74,7 @@ module LibIpv6_Interface { //MetaPdu Ipv6Packet, //General IPv6 packet GeneralIpv6, //EspPackets EspPacket GeneralIpv6 } /* Loading Loading @@ -111,8 +108,7 @@ module LibIpv6_Interface { //Udp UdpPacket udpPacket, //General IPv6 packet GeneralIpv6 generalIpv6, EspPacket espPacket GeneralIpv6 generalIpv6 } with { encode "isPDU=LibIpv6_Interface;" Loading
NewModuleStructure/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_ModuleParameters.ttcn +7 −0 Original line number Diff line number Diff line Loading @@ -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
NewModuleStructure/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_TypesAndValues.ttcn +35 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ import from LibIpv6_Rfc4302Ah_ExtHdrTypesAndValues all; import from LibIpv6_Rfc4303Esp_ExtHdrTypesAndValues all; group ipv6Header { const UInt4 c_ipv6Version := 6; Loading Loading @@ -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 { Loading Loading @@ -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