メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcSNOW20.h

説明を見る。
00001 
00015 #ifndef DKUTIL_C_SNOW20_H
00016 #define DKUTIL_C_SNOW20_H
00017 
00018 #include "dkcOSIndependent.h"
00019 
00020 
00021 #define dkcdSNOW2_BOX_SIZE 16
00022 
00023 
00024 typedef struct dkc_SNOW2{
00025     
00027     uint32 sw[dkcdSNOW2_BOX_SIZE];
00029     uint32 outfrom_fsm,r1,r2;
00031     union{
00032         uint64 a64[dkcdSNOW2_BOX_SIZE / 2];
00033         uint32 a32[dkcdSNOW2_BOX_SIZE];
00034         uint16 a16[dkcdSNOW2_BOX_SIZE * 2];
00035         uint8  a8[dkcdSNOW2_BOX_SIZE * 4];
00036     }u_store;
00037         
00038     //DKC_4BYTE_UNION_LITTLE_ENDIAN_BASE store;
00040     uint8 store_size;
00041 }DKC_SNOW2;
00042 
00043 
00044 
00053 DKC_EXTERN DKC_SNOW2 *WINAPI dkcAllocSNOW2(BYTE *key,size_t keysize,
00054                                                                                      uint32 IV3,uint32 IV2,uint32 IV1,uint32 IV0);
00055 
00056 DKC_EXTERN int WINAPI dkcSNOW2Init(DKC_SNOW2 *p,uint8 *key,size_t keysize,uint32 IV3,uint32 IV2,uint32 IV1,uint32 IV0);
00057 
00058 DKC_INLINE DKC_SNOW2 *dkcAllocSNOW2Const(const BYTE *key,size_t keysize,uint32 IV3,uint32 IV2,uint32 IV1,uint32 IV0)
00059 {
00060     uint8 v[32];
00061     switch(keysize){
00062     case 16:
00063         memcpy(v,key,16);
00064         memset(&v[16],0,16);
00065         break;
00066     case 32:
00067         memcpy(v,key,32);
00068         break;
00069     default:
00070         return NULL;
00071     }
00072     return dkcAllocSNOW2(v,keysize,IV3,IV2,IV1,IV0);
00073 }
00074 
00075 DKC_EXTERN int WINAPI dkcFreeSNOW2(DKC_SNOW2 **);
00076 
00078 DKC_EXTERN uint8 WINAPI dkcSNOW2Process(DKC_SNOW2 *p);
00079 #define dkcSNOW2_Byte(p) dkcSNOW2Process(p)
00080 
00083 
00084 DKC_EXTERN int WINAPI dkcSNOW2EncryptNoDestDOE(DKC_SNOW2 *p,uint8 *inout,size_t size);
00085 
00086 DKC_EXTERN int WINAPI dkcSNOW2EncryptDOE(DKC_SNOW2 *,uint8 *dest,size_t dsize,const uint8 *src,size_t ssize);
00087 #define dkcSNOW2DecryptDOE(a,b,c,d,e) dkcSNOW2EncryptDOE(a,b,c,d,e)
00088 //#define dkcSNOW2EncryptNoDestODE(a,b,c) dkcSNOW2EncryptODE(a,b,c,b,c)
00089 #define dkcSNOW2DecryptNoDestDOE(a,b,c) dkcSNOW2EncryptNoDestDOE(a,b,c)
00090 
00091 //DKC_EXTERN int WINAPI dkcSNOW2EncryptNoDestODE(DKC_SNOW2 *,void *mem,size_t size)
00092 
00093 #endif //end of include once

dkutil_cに対してMon Jan 16 00:39:53 2006に生成されました。  doxygen 1.4.4