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

# 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