11 NS_OBJECT_ENSURE_REGISTERED (OnionRouting);
13 NS_LOG_COMPONENT_DEFINE(
"onionrouting");
19 static TypeId tid = TypeId (
"ns3::OnionRouting")
21 .SetGroupName(
"OnionRouting");
63 OnionRouting::BuildOnion(uint8_t * cipher, uint8_t ** route, uint16_t routeLen, uint8_t ** keys, uint8_t * content =
nullptr , uint16_t contentLen = 0)
65 NS_LOG_INFO(
"Start creation of the onion");
69 int status =
CreateOnion(cipher,route,routeLen, routeLen,keys,content,contentLen);
103 OnionRouting::CreateOnion(uint8_t * cipher, uint8_t ** route, uint16_t index, uint16_t routeLen, uint8_t ** keys, uint8_t * content =
nullptr , uint16_t contentLen = 0){
110 uint8_t * nextHopIp = route[routeLen - index + 1];
111 uint8_t * key = keys[routeLen - index];
115 if(index <= 2 && contentLen != 0){
160 uint8_t * innerLayer =
new uint8_t[onionLen - (
m_sealPadding)];
182 routeLen = routeLen - 1;