00001
00019 #ifndef DKUTIL_C_HC256_H
00020 #define DKUTIL_C_HC256_H
00021
00022 #include "dkcOSIndependent.h"
00023
00024
00025
00026 typedef struct dkc_HC256{
00027 uint32 P[1024],Q[1024];
00028 uint32 X[16],Y[16];
00029 uint32 counter2048;
00030 }DKC_HC256;
00031
00032
00033
00034
00035 DKC_EXTERN DKC_HC256 *WINAPI dkcAllocHC256(BYTE *key,size_t size);
00036
00037
00038
00039 DKC_EXTERN int WINAPI dkcFreeHC256(DKC_HC256 **);
00040
00041
00042 DKC_EXTERN uint32 dkcHC256Process(DKC_HC256 *,uint32 u);
00043
00044
00045
00046 DKC_EXTERN int WINAPI dkcHC256EncryptDOE(DKC_HC256 *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00047
00048
00049 DKC_EXTERN int WINAPI dkcHC256DecryptDOE(DKC_HC256 *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00050
00051
00052
00053 DKC_EXTERN int WINAPI dkcHC256EncryptBlock512DOE(DKC_HC256 *p,BYTE *dest,size_t dsize,const BYTE *src,size_t ssize);
00054
00055 #define dkcHC256DecryptBlock512DOE(p,dest,dsize,src,ssize) dkcHC256EncryptBlock512DOE(p,dest,dsize,src,ssize)
00056
00057 DKC_EXTERN int WINAPI dkcHC256EncryptBlock512NoDestDOE(DKC_HC256 *p,BYTE *dest,size_t size);
00058
00059 #define dkcHC256DecryptBlock512NoDestDOE(p,dest,size) dkcHC256EncryptBlock512NoDestDOE(p,dest,size)
00060
00061
00062 DKC_EXTERN int WINAPI dkcHC256Encrypt(DKC_HC256 *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00063
00064
00065 DKC_EXTERN int WINAPI dkcHC256Decrypt(DKC_HC256 *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00066
00067
00068
00069
00070
00071
00072 #endif //end of include once