1*53ee8cc1Swenshuai.xi 2*53ee8cc1Swenshuai.xi 3*53ee8cc1Swenshuai.xi #include <stdlib.h> 4*53ee8cc1Swenshuai.xi #include <string.h> 5*53ee8cc1Swenshuai.xi #include "MsCommon.h" 6*53ee8cc1Swenshuai.xi 7*53ee8cc1Swenshuai.xi #include "nsk_dbg.h" 8*53ee8cc1Swenshuai.xi #include "nsk2hdi_header.h" 9*53ee8cc1Swenshuai.xi 10*53ee8cc1Swenshuai.xi /*****************************************************************************\ 11*53ee8cc1Swenshuai.xi \Definitions 12*53ee8cc1Swenshuai.xi \*****************************************************************************/ 13*53ee8cc1Swenshuai.xi 14*53ee8cc1Swenshuai.xi 15*53ee8cc1Swenshuai.xi 16*53ee8cc1Swenshuai.xi /*****************************************************************************\ 17*53ee8cc1Swenshuai.xi \ global variables 18*53ee8cc1Swenshuai.xi \*****************************************************************************/ 19*53ee8cc1Swenshuai.xi 20*53ee8cc1Swenshuai.xi 21*53ee8cc1Swenshuai.xi /*****************************************************************************\ 22*53ee8cc1Swenshuai.xi \ NSK2HDI general functions 23*53ee8cc1Swenshuai.xi \*****************************************************************************/ NSKHDI_GetHandle(NSK2HDI_HANDLE Handle)24*53ee8cc1Swenshuai.xiMS_U32 NSKHDI_GetHandle(NSK2HDI_HANDLE Handle) 25*53ee8cc1Swenshuai.xi { 26*53ee8cc1Swenshuai.xi MS_U32 u32Handle = 0; 27*53ee8cc1Swenshuai.xi 28*53ee8cc1Swenshuai.xi if(Handle != NULL) 29*53ee8cc1Swenshuai.xi { 30*53ee8cc1Swenshuai.xi u32Handle = *(MS_U32*)Handle; 31*53ee8cc1Swenshuai.xi //NSK_TRACE(("u32Handle = %lx\n", u32Handle)); 32*53ee8cc1Swenshuai.xi } 33*53ee8cc1Swenshuai.xi else 34*53ee8cc1Swenshuai.xi { 35*53ee8cc1Swenshuai.xi NSK_TRACE(("Handle = NULL\n")); 36*53ee8cc1Swenshuai.xi } 37*53ee8cc1Swenshuai.xi 38*53ee8cc1Swenshuai.xi return u32Handle; 39*53ee8cc1Swenshuai.xi } 40*53ee8cc1Swenshuai.xi 41*53ee8cc1Swenshuai.xi NSKHDI_IVDataTrans(MS_U8 NSK2HDI_Algo,MS_U8 * pu8IV1,MS_U8 * pu8IV2,MS_U32 * pu32HWIV)42*53ee8cc1Swenshuai.xiMS_U32 NSKHDI_IVDataTrans(MS_U8 NSK2HDI_Algo, MS_U8 *pu8IV1, MS_U8 *pu8IV2, MS_U32 *pu32HWIV) 43*53ee8cc1Swenshuai.xi { 44*53ee8cc1Swenshuai.xi MS_U32 index; 45*53ee8cc1Swenshuai.xi 46*53ee8cc1Swenshuai.xi if( (NSK2HDI_SPROFILE_M2M_DES_CBC_SCTE52_IV2 == NSK2HDI_Algo) || 47*53ee8cc1Swenshuai.xi (NSK2HDI_SPROFILE_M2M_TDES_CBC_SCTE52_IV2 == NSK2HDI_Algo) || 48*53ee8cc1Swenshuai.xi (NSK2HDI_SPROFILE_SCTE52_DES == NSK2HDI_Algo) ) 49*53ee8cc1Swenshuai.xi { 50*53ee8cc1Swenshuai.xi for(index = 0; index<4 ; index++) 51*53ee8cc1Swenshuai.xi { 52*53ee8cc1Swenshuai.xi pu32HWIV[index] = ( ((MS_U32)pu8IV1[index*4] << 24 ) + 53*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV1[index*4+1] << 16 ) + 54*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV1[index*4+2] << 8 ) + 55*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV1[index*4+3] ) ); 56*53ee8cc1Swenshuai.xi } 57*53ee8cc1Swenshuai.xi 58*53ee8cc1Swenshuai.xi for(index = 0; index<2 ; index++) 59*53ee8cc1Swenshuai.xi { 60*53ee8cc1Swenshuai.xi pu32HWIV[index+2] = ( ((MS_U32)pu8IV2[index*4] << 24 ) + 61*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV2[index*4+1] << 16 ) + 62*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV2[index*4+2] << 8 ) + 63*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV2[index*4+3] ) ); 64*53ee8cc1Swenshuai.xi } 65*53ee8cc1Swenshuai.xi } 66*53ee8cc1Swenshuai.xi else 67*53ee8cc1Swenshuai.xi { 68*53ee8cc1Swenshuai.xi for(index = 0; index<4 ; index++) 69*53ee8cc1Swenshuai.xi { 70*53ee8cc1Swenshuai.xi pu32HWIV[index] = ( ((MS_U32)pu8IV1[index*4] << 24 ) + 71*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV1[index*4+1] << 16 ) + 72*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV1[index*4+2] << 8 ) + 73*53ee8cc1Swenshuai.xi ((MS_U32)pu8IV1[index*4+3] ) ); 74*53ee8cc1Swenshuai.xi } 75*53ee8cc1Swenshuai.xi } 76*53ee8cc1Swenshuai.xi return TRUE; 77*53ee8cc1Swenshuai.xi } 78*53ee8cc1Swenshuai.xi 79*53ee8cc1Swenshuai.xi 80