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

dkcRijndael.h

Rijndael Algorithm Wrapper [詳細]

#include "dkcOSIndependent.h"
#include "dkcMemoryStream.h"

dkcRijndael.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct  dkc_RijnDael

マクロ定義

#define dkcRijndaelEncodeStringKey(a, b, c)   dkcRijndaelStringKey(a,b,c,edkcRijndaelEncrypt)
#define dkcRijndaelEDecodeStringKey(a, b, c)   dkcRijndaelStringKey(a,b,c,edkcRijndaelDecrypt)

型定義

typedef dkc_RijnDael DKC_RIJNDAEL

列挙型

enum  edk_Rijndael {
  edkcBAD_KEY_DIR = -1, edkcBAD_KEY_MAT = -2, edkcBAD_KEY_INSTANCE = -3, edkcBAD_CIPHER_MODE = -4,
  edkcBAD_CIPHER_STATE = -5, edkcBAD_BLOCK_LENGTH = -6, edkcBAD_CIPHER_INSTANCE = -7, edkcBAD_DATA = -8,
  edkcBAD_OTHER = -9, edkcRijndaelEncrypt = 0, edkcRijndaelDecrypt = 1, edkcRijndael_ECB = 1,
  edkcRijndael_CBC = 2, edkcRijndael_CFB1 = 3
}

関数

DKC_EXTERN DKC_RIJNDAEL *WINAPI dkcAllocRijndael ()
DKC_EXTERN DKC_RIJNDAEL *WINAPI dkcAllocRijndaelEncrypt (const BYTE *key, size_t keysize)
DKC_EXTERN DKC_RIJNDAEL *WINAPI dkcAllocRijndaelDecrypt (const BYTE *key, size_t keysize)
DKC_EXTERN int WINAPI dkcFreeRijndael (DKC_RIJNDAEL **)
DKC_EXTERN int WINAPI dkcRijndaelBlockEncrypt (DKC_RIJNDAEL *p, BYTE *dest, int dsize, const BYTE *src, int ssize)
DKC_EXTERN int WINAPI dkcRijndaelBlockDecrypt (DKC_RIJNDAEL *p, BYTE *dest, int dsize, const BYTE *src, int ssize)
DKC_EXTERN int WINAPI dkcRijndaelPadEncrypt (DKC_RIJNDAEL *p, BYTE *dest, int dsize, const BYTE *src, int ssize)
DKC_EXTERN int WINAPI dkcRijndaelPadDecrypt (DKC_RIJNDAEL *p, BYTE *dest, int dsize, const BYTE *src, int ssize)
DKC_EXTERN int WINAPI dkcRijndaelStringKey (DKC_RIJNDAEL *p, char *dest_and_material, int size, BYTE option)
DKC_EXTERN BOOL WINAPI dkcRijndaelErrorMessage (int result, char *buff, size_t size)


説明

Rijndael Algorithm Wrapper

作者:
wrapped by d金魚
覚え書き:
http://fp.gladman.plus.com/cryptography_technology/index.htm からDLできるRijndaelライブラリを使う場合(dkcRijndael側では未対応) dkcdBRIAN_GLADMAN_RIJNDAEL
デフォルトでrijndael-api-fstおよびrijndael-alg-fstを使用する。

dkcRijndael.h で定義されています。


マクロ定義

#define dkcRijndaelEDecodeStringKey a,
b,
 )     dkcRijndaelStringKey(a,b,c,edkcRijndaelDecrypt)
 

dkcRijndael.h101 行で定義されています。

#define dkcRijndaelEncodeStringKey a,
b,
 )     dkcRijndaelStringKey(a,b,c,edkcRijndaelEncrypt)
 

dkcRijndael.h99 行で定義されています。


型定義

typedef struct dkc_RijnDael DKC_RIJNDAEL
 


列挙型

enum edk_Rijndael
 

列挙型の値:
edkcBAD_KEY_DIR  Key direction is invalid, e.g., unknown value
edkcBAD_KEY_MAT  Key material not of correct length
edkcBAD_KEY_INSTANCE  Key passed is not valid
edkcBAD_CIPHER_MODE  Params struct passed to cipherInit invalid
edkcBAD_CIPHER_STATE  Cipher in wrong state (e.g., not initialized)
edkcBAD_BLOCK_LENGTH 
edkcBAD_CIPHER_INSTANCE 
edkcBAD_DATA  Data contents are invalid, e.g., invalid padding
edkcBAD_OTHER  Unknown error
edkcRijndaelEncrypt  暗号化するとき〜〜
edkcRijndaelDecrypt  復号化するとき〜〜
edkcRijndael_ECB  Are we ciphering in ECB mode?
edkcRijndael_CBC  Are we ciphering in CBC mode?
edkcRijndael_CFB1  Are we ciphering in 1-bit CFB mode?

dkcRijndael.h39 行で定義されています。

00039                  {
00041     edkcBAD_KEY_DIR    =      -1 ,
00043     edkcBAD_KEY_MAT     =     -2 ,
00045     edkcBAD_KEY_INSTANCE =    -3 ,
00047     edkcBAD_CIPHER_MODE =     -4 ,
00049     edkcBAD_CIPHER_STATE =    -5 ,
00050     edkcBAD_BLOCK_LENGTH  =   -6,
00051     edkcBAD_CIPHER_INSTANCE = -7,
00053     edkcBAD_DATA        =     -8 ,
00055     edkcBAD_OTHER       =     -9,
00057     edkcRijndaelEncrypt = 0,
00059     edkcRijndaelDecrypt = 1,
00061     edkcRijndael_ECB = 1,
00063     edkcRijndael_CBC = 2,
00065     edkcRijndael_CFB1 = 3,
00066 };


関数

DKC_EXTERN DKC_RIJNDAEL* WINAPI dkcAllocRijndael  ) 
 

dkcRijndael.c59 行で定義されています。

参照先 dkcAllocate(), dkcFree(), dkc_RijnDael::mKey, dkc_RijnDael::mRijndael, と NULL.

00059                                        {
00060     DKC_RIJNDAEL *p = dkcAllocate(sizeof(DKC_RIJNDAEL));
00061     if(NULL==p){
00062         return NULL;
00063     }
00064 
00065     p->mKey = dkcAllocate(sizeof(keyInstance));
00066     if(NULL==p->mKey){
00067         goto Error;
00068     }
00069 
00070     p->mRijndael = dkcAllocate(sizeof(cipherInstance));
00071     if(NULL==p->mRijndael){
00072         goto Error;
00073     }
00074     return p;
00075 Error:
00076     dkcFree(&p->mRijndael);
00077     dkcFree(&p->mKey);
00078     dkcFree(&p);
00079     return NULL;
00080 }

DKC_EXTERN DKC_RIJNDAEL* WINAPI dkcAllocRijndaelDecrypt const BYTE key,
size_t  keysize
 

dkcRijndael.c93 行で定義されています。

参照先 dkcAllocate(), と NULL.

00093                                                                             {
00094     DKC_RIJNDAEL *p = dkcAllocate(sizeof(DKC_RIJNDAEL));
00095     if(NULL==p){
00096         return NULL;
00097     }
00098 
00099     return p;
00100 
00101 }

DKC_EXTERN DKC_RIJNDAEL* WINAPI dkcAllocRijndaelEncrypt const BYTE key,
size_t  keysize
 

dkcRijndael.c82 行で定義されています。

参照先 dkcAllocate(), と NULL.

00083 {
00084     DKC_RIJNDAEL *p = dkcAllocate(sizeof(DKC_RIJNDAEL));
00085     if(NULL==p){
00086         return NULL;
00087     }
00088 
00089     return p;
00090 }

DKC_EXTERN int WINAPI dkcFreeRijndael DKC_RIJNDAEL **   ) 
 

dkcRijndael.c174 行で定義されています。

参照先 dkcFree(), と NULL.

00174                                             {
00175     if(NULL==p){
00176         return edk_FAILED;
00177     }
00178     return dkcFree((void **)p);
00179 }

DKC_EXTERN int WINAPI dkcRijndaelBlockDecrypt DKC_RIJNDAEL p,
BYTE dest,
int  dsize,
const BYTE src,
int  ssize
 

dkcRijndael.c130 行で定義されています。

参照先 blockDecrypt(), と ProcessCall().

00131                                                                                                                     {
00132     return ProcessCall(blockDecrypt,p,dest,dsize,src,ssize);
00133 }

DKC_EXTERN int WINAPI dkcRijndaelBlockEncrypt DKC_RIJNDAEL p,
BYTE dest,
int  dsize,
const BYTE src,
int  ssize
 

dkcRijndael.c125 行で定義されています。

参照先 blockEncrypt(), と ProcessCall().

00126                                                                                                            {
00127     return ProcessCall(blockEncrypt,p,dest,dsize,src,ssize);
00128 }

DKC_EXTERN BOOL WINAPI dkcRijndaelErrorMessage int  result,
char *  buff,
size_t  size
 

TODO:
まだ未実装な為、実装する事

dkcRijndael.c148 行で定義されています。

参照先 edkcBAD_BLOCK_LENGTH, edkcBAD_CIPHER_INSTANCE, edkcBAD_CIPHER_MODE, edkcBAD_CIPHER_STATE, edkcBAD_DATA, edkcBAD_KEY_DIR, edkcBAD_KEY_INSTANCE, edkcBAD_KEY_MAT, edkcBAD_OTHER, RDEM_SC, と TRUE.

00149 {
00150 #define RDEM_SC(a) dkc_strcpy(buff,size,a,strlen(b))
00151 #if 0
00152     switch(result){
00153     case    edkcBAD_KEY_DIR://  Key direction is invalid, e.g., unknown value 
00154     RDEM_SC("キーのdirectoinが不正");break;
00155     case edkcBAD_KEY_MAT://  Key material not of correct length 
00156         RDEM_SC("キーの元データの長さが足りないかも");break;
00157     case edkcBAD_KEY_MAT://  Key passed is not valid 
00158         RDEM_SC("キーのpassedが無効かも");break;
00159     case edkcBAD_KEY_INSTANCE://  Params struct passed to cipherInit invalid 
00160     
00161     edkcBAD_CIPHER_MODE =     -4 ,
00163     edkcBAD_CIPHER_STATE =    -5 ,
00164     edkcBAD_BLOCK_LENGTH  =   -6,
00165     edkcBAD_CIPHER_INSTANCE = -7,
00167     edkcBAD_DATA        =     -8 ,
00169     edkcBAD_OTHER       =     -9,
00170 #endif
00171     return TRUE;
00172 }

DKC_EXTERN int WINAPI dkcRijndaelPadDecrypt DKC_RIJNDAEL p,
BYTE dest,
int  dsize,
const BYTE src,
int  ssize
 

dkcRijndael.c142 行で定義されています。

参照先 padDecrypt(), と ProcessCall().

00144 {
00145     return ProcessCall(padDecrypt,p,dest,dsize,src,ssize);
00146 }

DKC_EXTERN int WINAPI dkcRijndaelPadEncrypt DKC_RIJNDAEL p,
BYTE dest,
int  dsize,
const BYTE src,
int  ssize
 

dkcRijndael.c135 行で定義されています。

参照先 padEncrypt(), と ProcessCall().

00137 {
00138     return ProcessCall(padEncrypt,p,dest,dsize,src,ssize);
00139 }

DKC_EXTERN int WINAPI dkcRijndaelStringKey DKC_RIJNDAEL p,
char *  dest_and_material,
int  size,
BYTE  option
 

dkcRijndael.c181 行で定義されています。

参照先 edkcBAD_OTHER, makeKey(), dkc_RijnDael::mKey, と NULL.

00184 {
00185     keyInstance *pk;
00186     if(NULL==p){
00187         return edkcBAD_OTHER;
00188     }
00189     pk   = (keyInstance *)p->mKey;
00190     return makeKey(pk,option,size,dest_and_material);
00191 }


dkutil_cに対してSat Sep 10 09:24:51 2005に生成されました。  doxygen 1.4.4