xref: /utopia/UTPA2-700.0.x/modules/dscmb/api/nsk2hdi/nsk2hdi_general.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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.xi MS_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.xi MS_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