Loading IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +0 −120 Original line number Diff line number Diff line Loading @@ -293,124 +293,4 @@ module LibIpv6_CommonRfcs_TypesAndValues { } // end ipv6Options group security { //Use c_cryptoDummyByte when no message needs to be specified in fx_cryptoFunction const Oct1 c_cryptoDummyByte := int2oct(0,1); type enumerated EncryptionAlgo { e_null(0), e_tripleDes_cbc(1), e_aes_cbc(2), e_aes_ctr(3), e_des_cbc(4) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IntegrityAlgo { e_null(0), e_hmac_sha1_96(1), e_aes_xcbc_mac_96(2), e_hmac_md5_96(3), e_hmac_sha1_64(4), e_sha1_96(1) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated CombinedModeAlgo { e_null(0) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IpSecProtocolMode { e_transportMode (0), e_tunnelMode (1) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IpSecProtocol{ e_esp (0), e_ah (1) } type record MipSec { MnSimuParams mnSimuParams, HaSimuParams haSimuParams, CnSimuParams cnSimuParams } type CnSimuParams HaSimuParams; type record CnSimuParams { //Keygen Token UInt16 homeNonceIndex, octetstring homeNonce, Oct20 kcn, Bit64 homeKeygenToken, Bit64 careOfKeygenToken, Bit64 receivedHomeInitCookie, Oct20 kbm } type record MnSimuParams { //Keygen Token UInt16 receivedHomeNonceIndex, //octetstring homeNonce, //Oct20 kcn, Bit64 receivedHomeKeygenToken, Bit64 receivedCareOfKeygenToken, Bit64 homeInitCookie, Oct20 kbm } const UInt8 c_maxNrDa := 8; //Security Association type record Sa { UInt32 securityParametersIndex, UInt32 sequenceNumber, IntegrityAlgo ahIntegrityAlgo, octetstring ahIntegrityKey, EncryptionAlgo espEncryptionAlgo, octetstring espEncryptionKey, IntegrityAlgo espIntegrityAlgo, octetstring espIntegrityKey, CombinedModeAlgo espCombinedModeAlgo, octetstring espCombinedModeKey, IpSecProtocolMode ipSecProtocolMode } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } //Security Association Database type record length (1 .. c_maxNrDa) of Sa Sad; type record EncryptResult { octetstring iv optional, octetstring encryptedData optional, octetstring tfcPadding optional } type record IntegrityExtHdr { octetstring icv optional } } // end security } // end LibIpv6_CommonRfcs_TypesAndValues IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_ExternalFunctions.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ /* @desc Apply indicated Integrity algorithm to the message. * If e_sha1_96 is chosen, then the key input shall be ignored. * * @param p_crypto Cryptographic function used to compute MAC * @param p_key Key used to compute the MAC Loading IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +1 −161 Original line number Diff line number Diff line Loading @@ -118,36 +118,6 @@ group rfc2460Root_Functions { group rfc3775Mipv6_ExtHdrFunctions { //TODO check if better in CommonRfcFunctions function f_initMipSecParams() runs on LibIpv6Node { vc_mipSec.cnSimuParams := { homeNonceIndex := f_createHomeNonceIndex(), homeNonce := f_createHomeNonce(), kcn := f_createKcn(), homeKeygenToken := c_64ZeroBits, careOfKeygenToken := c_64ZeroBits, receivedHomeInitCookie := c_64ZeroBits, kbm := c_20ZeroBytes } vc_mipSec.mnSimuParams := { receivedHomeNonceIndex := c_uInt16Zero, //homeNonce := f_createHomeNonce(), //kcn := f_createKcn(), receivedHomeKeygenToken := c_64ZeroBits, receivedCareOfKeygenToken := c_64ZeroBits, homeInitCookie := f_createInitCookie(), kbm := c_20ZeroBytes } vc_mipSec.haSimuParams := vc_mipSec.cnSimuParams; }//end function f_initMipSecParams /* * @desc This goes through the Mip header and calculates length, checksum * and other specific functions of the different messages. Loading Loading @@ -205,136 +175,6 @@ group rfc3775Mipv6_ExtHdrFunctions { } //TODO find appropriate location /* * @desc This generates a random Init Cookie * @return Init Cookie */ function f_createInitCookie() runs on LibIpv6Node return Bit64 { var Bit64 v_cookie := int2bit(float2int(int2float(20000-5000)*rnd())+5000, 64); return v_cookie; }//end f_createInitCookie /* * @desc This generates a random Home Nonce * @return Init Cookie */ function f_createHomeNonce() runs on LibIpv6Node return octetstring { var octetstring v_homeNonce := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 10); return v_homeNonce; }//end f_createHomeNonce /* * @desc This generates a random Home Nonce Index * @return Init Cookie */ function f_createHomeNonceIndex() runs on LibIpv6Node return UInt16 { var Oct2 v_homeNonceIndex := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 2); return oct2int(v_homeNonceIndex); }//end f_createHomeNonceIndex /* * @desc This generates CN's secret key * @return Init Cookie */ function f_createKcn() runs on LibIpv6Node return Oct20 { var Oct20 v_kcn := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 20); return v_kcn; }//end f_createHomeNonce /* * @desc This generates a Home Keygen Token * @param p_kcn Correspondant node's secret key * @param p_homeAddr Home address * @param p_nonce Home nonce * @return Home Keygen Token */ function f_createHomeKeygenToken(in Oct20 p_kcn, in Ipv6Address p_homeAddr, in octetstring p_nonce) runs on LibIpv6Node return Bit64 { var octetstring v_mac := c_8ZeroBytes; var Oct8 v_token := c_8ZeroBytes; var UInt8 i; v_mac := fx_integrity(e_hmac_sha1_64, p_kcn, p_homeAddr & p_nonce & int2oct(0,1)); for ( i := 0; i < 8; i := i + 1 ) { v_token[i] := v_mac[i]; } return oct2bit(v_token); }//end f_createHomeKeygenToken /* * @desc This generates a Care-of Keygen Token * @param p_kcn Correspondant node's secret key * @param p_careOfAddr Care-of address * @param p_nonce Home nonce * @return Care-of Keygen Token */ function f_createCareOfKeygenToken(in Oct20 p_kcn, in Ipv6Address p_careOfAddr, in octetstring p_nonce) runs on LibIpv6Node return Oct8 { var octetstring v_mac := c_8ZeroBytes; var Oct8 v_token := c_8ZeroBytes; var UInt8 i; v_mac := fx_integrity(e_sha1_96, p_kcn, p_careOfAddr & p_nonce & int2oct(1,1)); for ( i := 0; i < 8; i := i + 1 ) { v_token[i] := v_mac[i]; } return v_token; }//end f_createCareOfKeygenToken /* * @desc This generates a Binding Management Key * @param p_homeKeygenToken Home Keygen Token * @param p_careOfKeygenToken Care-of Keygen Token * @return Binding Management Key */ function f_createBindingManagementKey(in Oct8 p_homeKeygenToken, in Oct8 p_careOfKeygenToken) runs on LibIpv6Node return Oct8 { var octetstring v_key := c_8ZeroBytes; v_key := fx_integrity(e_sha1_96, p_homeKeygenToken & p_careOfKeygenToken, c_cryptoDummyByte); return v_key; }//end f_createBindingManagementKey /* * @desc This generates a random Security Parameters Index * @return Security Parameters Index */ function f_createSecurityParametersIndex() runs on LibIpv6Node return Oct4 { var Oct4 v_spi := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 4); return v_spi; }//end f_createSecurityParametersIndex /* * @desc This goes through the BindingUpdate and * checks if a AuthorizationDataOption is present. Loading IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Templates.ttcn +23 −7 Original line number Diff line number Diff line Loading @@ -692,12 +692,28 @@ group rfc3775Mipv6_ExtHdrTemplates { template MipMessage mw_hoti := { homeTestInit := { reserved := ?, reserved := c_uInt16Zero, homeInitCookie := ?, mipOptions := * } } template MipMessage m_coti(Bit64 p_careOfInitCookie) := { careOfTestInit := { reserved := c_uInt16Zero, careOfInitCookie := p_careOfInitCookie, mipOptions := omit } } template MipMessage mw_cot := { careOfTest := { careOfNonceIndex := ?, careOfInitCookie := ?, careOfKeygenToken := ?, mipOptions := * } } }//end group mobilityHdrMessageTemplates Loading @@ -718,21 +734,21 @@ group rfc3775Mipv6_ExtHdrTemplates { p_mipOpt1, p_mipOpt2 } template MipOption m_mipOpt_altCoa(template MipOptAltCoA p_mipOptAltCoA) := { mipOptAltCoA := p_mipOptAltCoA } template MipOption m_mipOpt_padN(template OptPadN p_optPadN) := { optPadN := p_optPadN } template MipOptAltCoA m_mipOptAltCoA(in template Ipv6Address p_addr) := { template MipOption m_mipOpt_altCoa(template MipOptAltCoA p_mipOptAltCoA) := { mipOptAltCoA := p_mipOptAltCoA } template MipOptAltCoA m_altCoA(in template Ipv6Address p_addr) := { mipOptType :=3, mipOptLen := 16, alternateCoA := p_addr } template MipOptAltCoA mw_mipOptAltCoA := { template MipOptAltCoA mw_altCoA := { mipOptType :=3, mipOptLen := 16, alternateCoA := ? Loading IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_TypesAndValues.ttcn +145 −19 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ group libTestSystem { timer tc_ac:= PX_TAC; timer tc_noAc:= PX_TNOAC; timer tc_wait:= PX_TWAIT; //var Sad vc_sad; var MipSec vc_mipSec; var Sad vc_sad; } Loading Loading @@ -756,6 +755,20 @@ group rfc4303Esp_ExtHdrTypesAndValues { PlaintextData plaintextData } }//end group rfc4303Esp_ExtHdrTypesAndValues } // end extensionHeaders group cryptoTypes { /* * @desc HIgh level switch to select/deselect Security TCs/Fns */ type enumerated IpSecSwitch { e_securityOn, e_securityOff } /* * @desc PDU type to be used when building ESP payload for encryption/decryption */ Loading @@ -767,21 +780,134 @@ group rfc4303Esp_ExtHdrTypesAndValues { encode "TODO"; } }//end group rfc4303Esp_ExtHdrTypesAndValues type enumerated EncryptionAlgo { e_null(0), e_tripleDes_cbc(1), e_aes_cbc(2), e_aes_ctr(3), e_des_cbc(4) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } } // end extensionHeaders type enumerated IntegrityAlgo { e_null(0), e_hmac_sha1_96(1),//RFC4305 e_aes_xcbc_mac_96(2),//RFC4305 e_hmac_md5_96(3),//RFC4305 e_sha1_96(4),//used in MIPv6 5.2.5 to calculate KBM e_hmac_sha1_64(5)//used in MIPv6 5.2.5 to calculate HomeKeyGenToken } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } group cryptoTypes { type enumerated CombinedModeAlgo { e_null(0) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type record IntegrityResult { octetstring icv optional type enumerated IpSecProtocolMode { e_transportMode (0), e_tunnelMode (1) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IpSecProtocol{ e_esp (0), e_ah (1) } //Security Association type record Sa { UInt32 securityParametersIndex, UInt32 sequenceNumber, IntegrityAlgo ahIntegrityAlgo, octetstring ahIntegrityKey, EncryptionAlgo espEncryptionAlgo, octetstring espEncryptionKey, IntegrityAlgo espIntegrityAlgo, octetstring espIntegrityKey, CombinedModeAlgo espCombinedModeAlgo, octetstring espCombinedModeKey, IpSecProtocolMode ipSecProtocolMode } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } //Security Association Database type record length (1 .. c_maxNrDa) of Sa Sad; const UInt8 c_maxNrDa := 8; /* @desc Result of fx_encrypt * */ type record EncryptResult { octetstring iv optional, octetstring encryptedData optional, octetstring tfcPadding optional } group mipSecurity { type record MipSec { MnSimuParams mnSimuParams, HaSimuParams haSimuParams, CnSimuParams cnSimuParams } //keep it until its clear if neeed type CnSimuParams HaSimuParams; type record CnSimuParams { UInt16 nonceIndex, NonceList nonceList, KcnList kcnList, Bit64 receivedHomeInitCookie, Bit64 receivedCareOfInitCookie, Bit64 homeKeygenToken, Bit64 careOfKeygenToken, Oct20 kbm } type record MnSimuParams { Bit64 homeInitCookie, Bit64 careOfInitCookie, UInt16 receivedHomeNonceIndex, Bit64 receivedHomeKeygenToken, UInt16 receivedCareOfNonceIndex, Bit64 receivedCareOfKeygenToken, Oct20 kbm } type octetstring Nonce; type Oct20 Kcn; type record length (1 .. c_maxNrNonce) of Kcn KcnList; type record length (1 .. c_maxNrNonce) of Nonce NonceList; const UInt8 c_maxNrNonce := 8; } // end group mipSecurity }//end group cryptoTypes group integrityTypes { type record IntegrityResult { octetstring icv optional } }//end group integrityTypes Loading Loading
IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +0 −120 Original line number Diff line number Diff line Loading @@ -293,124 +293,4 @@ module LibIpv6_CommonRfcs_TypesAndValues { } // end ipv6Options group security { //Use c_cryptoDummyByte when no message needs to be specified in fx_cryptoFunction const Oct1 c_cryptoDummyByte := int2oct(0,1); type enumerated EncryptionAlgo { e_null(0), e_tripleDes_cbc(1), e_aes_cbc(2), e_aes_ctr(3), e_des_cbc(4) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IntegrityAlgo { e_null(0), e_hmac_sha1_96(1), e_aes_xcbc_mac_96(2), e_hmac_md5_96(3), e_hmac_sha1_64(4), e_sha1_96(1) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated CombinedModeAlgo { e_null(0) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IpSecProtocolMode { e_transportMode (0), e_tunnelMode (1) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IpSecProtocol{ e_esp (0), e_ah (1) } type record MipSec { MnSimuParams mnSimuParams, HaSimuParams haSimuParams, CnSimuParams cnSimuParams } type CnSimuParams HaSimuParams; type record CnSimuParams { //Keygen Token UInt16 homeNonceIndex, octetstring homeNonce, Oct20 kcn, Bit64 homeKeygenToken, Bit64 careOfKeygenToken, Bit64 receivedHomeInitCookie, Oct20 kbm } type record MnSimuParams { //Keygen Token UInt16 receivedHomeNonceIndex, //octetstring homeNonce, //Oct20 kcn, Bit64 receivedHomeKeygenToken, Bit64 receivedCareOfKeygenToken, Bit64 homeInitCookie, Oct20 kbm } const UInt8 c_maxNrDa := 8; //Security Association type record Sa { UInt32 securityParametersIndex, UInt32 sequenceNumber, IntegrityAlgo ahIntegrityAlgo, octetstring ahIntegrityKey, EncryptionAlgo espEncryptionAlgo, octetstring espEncryptionKey, IntegrityAlgo espIntegrityAlgo, octetstring espIntegrityKey, CombinedModeAlgo espCombinedModeAlgo, octetstring espCombinedModeKey, IpSecProtocolMode ipSecProtocolMode } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } //Security Association Database type record length (1 .. c_maxNrDa) of Sa Sad; type record EncryptResult { octetstring iv optional, octetstring encryptedData optional, octetstring tfcPadding optional } type record IntegrityExtHdr { octetstring icv optional } } // end security } // end LibIpv6_CommonRfcs_TypesAndValues
IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_ExternalFunctions.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ /* @desc Apply indicated Integrity algorithm to the message. * If e_sha1_96 is chosen, then the key input shall be ignored. * * @param p_crypto Cryptographic function used to compute MAC * @param p_key Key used to compute the MAC Loading
IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +1 −161 Original line number Diff line number Diff line Loading @@ -118,36 +118,6 @@ group rfc2460Root_Functions { group rfc3775Mipv6_ExtHdrFunctions { //TODO check if better in CommonRfcFunctions function f_initMipSecParams() runs on LibIpv6Node { vc_mipSec.cnSimuParams := { homeNonceIndex := f_createHomeNonceIndex(), homeNonce := f_createHomeNonce(), kcn := f_createKcn(), homeKeygenToken := c_64ZeroBits, careOfKeygenToken := c_64ZeroBits, receivedHomeInitCookie := c_64ZeroBits, kbm := c_20ZeroBytes } vc_mipSec.mnSimuParams := { receivedHomeNonceIndex := c_uInt16Zero, //homeNonce := f_createHomeNonce(), //kcn := f_createKcn(), receivedHomeKeygenToken := c_64ZeroBits, receivedCareOfKeygenToken := c_64ZeroBits, homeInitCookie := f_createInitCookie(), kbm := c_20ZeroBytes } vc_mipSec.haSimuParams := vc_mipSec.cnSimuParams; }//end function f_initMipSecParams /* * @desc This goes through the Mip header and calculates length, checksum * and other specific functions of the different messages. Loading Loading @@ -205,136 +175,6 @@ group rfc3775Mipv6_ExtHdrFunctions { } //TODO find appropriate location /* * @desc This generates a random Init Cookie * @return Init Cookie */ function f_createInitCookie() runs on LibIpv6Node return Bit64 { var Bit64 v_cookie := int2bit(float2int(int2float(20000-5000)*rnd())+5000, 64); return v_cookie; }//end f_createInitCookie /* * @desc This generates a random Home Nonce * @return Init Cookie */ function f_createHomeNonce() runs on LibIpv6Node return octetstring { var octetstring v_homeNonce := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 10); return v_homeNonce; }//end f_createHomeNonce /* * @desc This generates a random Home Nonce Index * @return Init Cookie */ function f_createHomeNonceIndex() runs on LibIpv6Node return UInt16 { var Oct2 v_homeNonceIndex := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 2); return oct2int(v_homeNonceIndex); }//end f_createHomeNonceIndex /* * @desc This generates CN's secret key * @return Init Cookie */ function f_createKcn() runs on LibIpv6Node return Oct20 { var Oct20 v_kcn := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 20); return v_kcn; }//end f_createHomeNonce /* * @desc This generates a Home Keygen Token * @param p_kcn Correspondant node's secret key * @param p_homeAddr Home address * @param p_nonce Home nonce * @return Home Keygen Token */ function f_createHomeKeygenToken(in Oct20 p_kcn, in Ipv6Address p_homeAddr, in octetstring p_nonce) runs on LibIpv6Node return Bit64 { var octetstring v_mac := c_8ZeroBytes; var Oct8 v_token := c_8ZeroBytes; var UInt8 i; v_mac := fx_integrity(e_hmac_sha1_64, p_kcn, p_homeAddr & p_nonce & int2oct(0,1)); for ( i := 0; i < 8; i := i + 1 ) { v_token[i] := v_mac[i]; } return oct2bit(v_token); }//end f_createHomeKeygenToken /* * @desc This generates a Care-of Keygen Token * @param p_kcn Correspondant node's secret key * @param p_careOfAddr Care-of address * @param p_nonce Home nonce * @return Care-of Keygen Token */ function f_createCareOfKeygenToken(in Oct20 p_kcn, in Ipv6Address p_careOfAddr, in octetstring p_nonce) runs on LibIpv6Node return Oct8 { var octetstring v_mac := c_8ZeroBytes; var Oct8 v_token := c_8ZeroBytes; var UInt8 i; v_mac := fx_integrity(e_sha1_96, p_kcn, p_careOfAddr & p_nonce & int2oct(1,1)); for ( i := 0; i < 8; i := i + 1 ) { v_token[i] := v_mac[i]; } return v_token; }//end f_createCareOfKeygenToken /* * @desc This generates a Binding Management Key * @param p_homeKeygenToken Home Keygen Token * @param p_careOfKeygenToken Care-of Keygen Token * @return Binding Management Key */ function f_createBindingManagementKey(in Oct8 p_homeKeygenToken, in Oct8 p_careOfKeygenToken) runs on LibIpv6Node return Oct8 { var octetstring v_key := c_8ZeroBytes; v_key := fx_integrity(e_sha1_96, p_homeKeygenToken & p_careOfKeygenToken, c_cryptoDummyByte); return v_key; }//end f_createBindingManagementKey /* * @desc This generates a random Security Parameters Index * @return Security Parameters Index */ function f_createSecurityParametersIndex() runs on LibIpv6Node return Oct4 { var Oct4 v_spi := int2oct(float2int(int2float(20000-5000)*rnd())+5000, 4); return v_spi; }//end f_createSecurityParametersIndex /* * @desc This goes through the BindingUpdate and * checks if a AuthorizationDataOption is present. Loading
IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Templates.ttcn +23 −7 Original line number Diff line number Diff line Loading @@ -692,12 +692,28 @@ group rfc3775Mipv6_ExtHdrTemplates { template MipMessage mw_hoti := { homeTestInit := { reserved := ?, reserved := c_uInt16Zero, homeInitCookie := ?, mipOptions := * } } template MipMessage m_coti(Bit64 p_careOfInitCookie) := { careOfTestInit := { reserved := c_uInt16Zero, careOfInitCookie := p_careOfInitCookie, mipOptions := omit } } template MipMessage mw_cot := { careOfTest := { careOfNonceIndex := ?, careOfInitCookie := ?, careOfKeygenToken := ?, mipOptions := * } } }//end group mobilityHdrMessageTemplates Loading @@ -718,21 +734,21 @@ group rfc3775Mipv6_ExtHdrTemplates { p_mipOpt1, p_mipOpt2 } template MipOption m_mipOpt_altCoa(template MipOptAltCoA p_mipOptAltCoA) := { mipOptAltCoA := p_mipOptAltCoA } template MipOption m_mipOpt_padN(template OptPadN p_optPadN) := { optPadN := p_optPadN } template MipOptAltCoA m_mipOptAltCoA(in template Ipv6Address p_addr) := { template MipOption m_mipOpt_altCoa(template MipOptAltCoA p_mipOptAltCoA) := { mipOptAltCoA := p_mipOptAltCoA } template MipOptAltCoA m_altCoA(in template Ipv6Address p_addr) := { mipOptType :=3, mipOptLen := 16, alternateCoA := p_addr } template MipOptAltCoA mw_mipOptAltCoA := { template MipOptAltCoA mw_altCoA := { mipOptType :=3, mipOptLen := 16, alternateCoA := ? Loading
IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_TypesAndValues.ttcn +145 −19 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ group libTestSystem { timer tc_ac:= PX_TAC; timer tc_noAc:= PX_TNOAC; timer tc_wait:= PX_TWAIT; //var Sad vc_sad; var MipSec vc_mipSec; var Sad vc_sad; } Loading Loading @@ -756,6 +755,20 @@ group rfc4303Esp_ExtHdrTypesAndValues { PlaintextData plaintextData } }//end group rfc4303Esp_ExtHdrTypesAndValues } // end extensionHeaders group cryptoTypes { /* * @desc HIgh level switch to select/deselect Security TCs/Fns */ type enumerated IpSecSwitch { e_securityOn, e_securityOff } /* * @desc PDU type to be used when building ESP payload for encryption/decryption */ Loading @@ -767,21 +780,134 @@ group rfc4303Esp_ExtHdrTypesAndValues { encode "TODO"; } }//end group rfc4303Esp_ExtHdrTypesAndValues type enumerated EncryptionAlgo { e_null(0), e_tripleDes_cbc(1), e_aes_cbc(2), e_aes_ctr(3), e_des_cbc(4) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } } // end extensionHeaders type enumerated IntegrityAlgo { e_null(0), e_hmac_sha1_96(1),//RFC4305 e_aes_xcbc_mac_96(2),//RFC4305 e_hmac_md5_96(3),//RFC4305 e_sha1_96(4),//used in MIPv6 5.2.5 to calculate KBM e_hmac_sha1_64(5)//used in MIPv6 5.2.5 to calculate HomeKeyGenToken } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } group cryptoTypes { type enumerated CombinedModeAlgo { e_null(0) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type record IntegrityResult { octetstring icv optional type enumerated IpSecProtocolMode { e_transportMode (0), e_tunnelMode (1) } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } type enumerated IpSecProtocol{ e_esp (0), e_ah (1) } //Security Association type record Sa { UInt32 securityParametersIndex, UInt32 sequenceNumber, IntegrityAlgo ahIntegrityAlgo, octetstring ahIntegrityKey, EncryptionAlgo espEncryptionAlgo, octetstring espEncryptionKey, IntegrityAlgo espIntegrityAlgo, octetstring espIntegrityKey, CombinedModeAlgo espCombinedModeAlgo, octetstring espCombinedModeKey, IpSecProtocolMode ipSecProtocolMode } with { //encode "use=com.testingtech.ttcn.tci.*;"; encode "TODO"; } //Security Association Database type record length (1 .. c_maxNrDa) of Sa Sad; const UInt8 c_maxNrDa := 8; /* @desc Result of fx_encrypt * */ type record EncryptResult { octetstring iv optional, octetstring encryptedData optional, octetstring tfcPadding optional } group mipSecurity { type record MipSec { MnSimuParams mnSimuParams, HaSimuParams haSimuParams, CnSimuParams cnSimuParams } //keep it until its clear if neeed type CnSimuParams HaSimuParams; type record CnSimuParams { UInt16 nonceIndex, NonceList nonceList, KcnList kcnList, Bit64 receivedHomeInitCookie, Bit64 receivedCareOfInitCookie, Bit64 homeKeygenToken, Bit64 careOfKeygenToken, Oct20 kbm } type record MnSimuParams { Bit64 homeInitCookie, Bit64 careOfInitCookie, UInt16 receivedHomeNonceIndex, Bit64 receivedHomeKeygenToken, UInt16 receivedCareOfNonceIndex, Bit64 receivedCareOfKeygenToken, Oct20 kbm } type octetstring Nonce; type Oct20 Kcn; type record length (1 .. c_maxNrNonce) of Kcn KcnList; type record length (1 .. c_maxNrNonce) of Nonce NonceList; const UInt8 c_maxNrNonce := 8; } // end group mipSecurity }//end group cryptoTypes group integrityTypes { type record IntegrityResult { octetstring icv optional } }//end group integrityTypes Loading