some minor changes to test code:
[keystone-rtos/netapi.git] / ti / runtime / netapi / test / router.c
index fd433b4b11815cb52bcd76c8c6d2da6448da8a8f..00e341e8dcdd95d9281db96fc25dae767b736e73 100755 (executable)
@@ -80,19 +80,40 @@ pc[1]=50;
 pc= (unsigned char*)&Phead->w1;
 pl_len=  ((pc[2]<<8) | (pc[3]));  
 
-//pad length
-nb = pl_len/p_sec->bl;       //128 for AES
-pad_len =   pl_len - nb*p_sec->bl;
-switch(pad_len)
+//only for non-zero bl
+if (p_sec->bl)
 {
-  case(15):
-   pad_len=15;
-   break;
-  default:
-    pad_len = p_sec->bl-pad_len-2;
+  nb = pl_len/ (p_sec->bl);       //128bits for AES
+  pad_len =   pl_len - nb*p_sec->bl;
+  if (p_sec->bl==16) //AES based
+  {
+    switch(pad_len)
+    {
+    case(15):
+      pad_len=15;
+      break;
+    default:
+      pad_len = p_sec->bl-pad_len-2;
+    }
+  }
+  else //assume 8 byte block (DES)
+  {
+    switch(pad_len)
+    {
+    case(7):
+      pad_len=7;
+      break;
+    default:
+      pad_len = p_sec->bl-pad_len-2;
+    }
+  }
+}
+else
+{
+   pad_len=0;
 }
 
-new_pl_len = pl_len + +20+ 8 + p_sec->iv_len + pad_len + p_sec->auth_tag_size +2;
+new_pl_len = pl_len  +20+ 8 + p_sec->iv_len + pad_len + p_sec->auth_tag_size +2;
 pc[2] =  (new_pl_len&0xff00)>>8;
 pc[3] =  (new_pl_len&0xff);
 memcpy(&sb[14],Phead,20);  //copy outer ip header into buffer