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

# dkcHMAC.h

説明を見る。

    00001
    00011 #ifndef DKUTIL_C_HMAC_H
    00012 #define DKUTIL_C_HMAC_H
    00013
    00014 #include "dkcOSIndependent.h"
    00015 #include "dkcHash.h"
    00016
    00017 /*
    00018 typedef int (WINAPI *DKC_HMAC_INIT_F_TYPE)(void *);
    00019 typedef void (WINAPI *DKC_HMAC_LOAD_F_TYPE)(void *,const BYTE *pBuffer,DWORD dwSize);
    00020 typedef void (WINAPI *DKC_HMAC_FINAL_F_TYPE)(void *p);
    00021 typedef int (WINAPI *DKC_HMAC_DIGESTSTR_F_TYPE)(void *p,char *buff,size_t size);
    00022 typedef int (WINAPI *DKC_HMAC_DIGEST_F_TYPE)(void *p,BYTE *buff,size_t size);
    00023
    00024 #define dkcdPAD_BLOCK_SIZE 65
    00025 */
    00026 typedef struct dkc_HMAC{
    00027     /*
    00028     DKC_WINAPI_PROC_F_TYPE Init;
    00029     DKC_WINAPI_PROC_F_TYPE Load;
    00030     DKC_WINAPI_PROC_F_TYPE Final;
    00031     DKC_WINAPI_PROC_F_TYPE DigestStr;
    00032     DKC_WINAPI_PROC_F_TYPE Digest;
    00034     size_t digest_string_size;
    00036     size_t digest_binary_size;
    00037     */
    00038     DKC_SECURE_HASH_OBJECT *sho;
    00040     BYTE ipad_init;
    00041     //BYTE ipad[dkcdPAD_BLOCK_SIZE];
    00042     BYTE *ipad;
    00044     BYTE opad_init;
    00046     //BYTE opad[dkcdPAD_BLOCK_SIZE];
    00047     BYTE *opad;
    00049     size_t pad_size;
    00050
    00051
    00052     BYTE mInnerHashKeyed;
    00053     BYTE mInited;
    00054
    00055 }DKC_HMAC;
    00056
    00057
    00059 DKC_EXTERN void WINAPI dkcHMAC_MD5Init(DKC_HMAC *);
    00060 DKC_EXTERN void WINAPI dkcHMAC_SHA1Init(DKC_HMAC *);
    00061 DKC_EXTERN void WINAPI dkcHMAC_SHA256Init(DKC_HMAC *);
    00062 DKC_EXTERN void WINAPI dkcHMAC_SHA384Init(DKC_HMAC *);
    00064 DKC_EXTERN void WINAPI dkcHMAC_SHA512Init(DKC_HMAC *);
    00065
    00066 typedef void (WINAPI *DKC_HMAC_HASH_INIT_F_TYPE)(DKC_HMAC *);
    00067
    00068
    00070 DKC_EXTERN DKC_HMAC *WINAPI     dkcAllocHMAC(UINT option);
    00071
    00072 /*
    00073 DKC_EXTERN DKC_HMAC *WINAPI
    00074     dkcAllocHMAC(
    00075         DKC_WINAPI_PROC_F_TYPE Init,
    00076         DKC_WINAPI_PROC_F_TYPE Load,
    00077         DKC_WINAPI_PROC_F_TYPE Final,
    00078         DKC_WINAPI_PROC_F_TYPE DigestStr,
    00079         DKC_WINAPI_PROC_F_TYPE Digest,
    00080         BYTE ipad,
    00081         BYTE opad,
    00082         size_t digest_size,
    00083         size_t block_size,
    00084         DKC_HMAC_INIT_F_TYPE init_func
    00085 );
    00086 */
    00091 DKC_EXTERN int WINAPI dkcFreeHMAC(DKC_HMAC **p);
    00092
    00093
    00094 void dkcHMAC(DKC_HMAC *,const BYTE *data,size_t data_size,const BYTE *key,size_t key_size,
    00095                          BYTE *bin_result_buff,size_t buffsize);
    00096
    00097
    00101
    00102 DKC_EXTERN void WINAPI dkcHMACInit(DKC_HMAC *p,const BYTE *key,size_t key_length);
    00103
    00109 DKC_EXTERN void WINAPI dkcHMACLoad(DKC_HMAC *p,const BYTE *pBuffer,DWORD dwSize);
    00110
    00111
    00117 DKC_EXTERN int WINAPI dkcHMACFinal(DKC_HMAC *p);
    00124
    00125 DKC_EXTERN int WINAPI dkcHMACDigestStr(DKC_HMAC *p,char *buff,size_t size);
    00126
    00128 DKC_EXTERN int WINAPI dkcHMACDigest(DKC_HMAC *p,BYTE *buff,size_t size);
    00129
    00130
    00131 #endif //end of include once