メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcRijndael.c

説明を見る。
00001 
00011 #include "dkcRijndael.h"
00012 #include "dkcStdio.h"
00013 #if 0
00014 
00015 #include "rijndael/aes.h"
00016 
00017 
00018 
00019 DKC_RIJNDAEL *WINAPI dkcAllocRijndaelEncrypt(const BYTE *key,size_t keysize){
00020     DKC_RIJNDAEL *p = dkcAllocate(sizeof(DKC_RIJNDAEL));
00021     if(NULL==p){
00022         return NULL;
00023     }
00024     //p->mKey = dkcAllocMemoryStream(keysize);
00025 
00026     if(aes_good != aes_enc_key(key,keysize,&(p->mCtx))){
00027         dkcFreeRijndael(&p);
00028         return NULL;
00029     }
00030     return p;
00031 }
00032 
00033 
00034 DKC_RIJNDAEL *WINAPI dkcAllocRijndaelDecrypt(const BYTE *key,size_t keysize){
00035     DKC_RIJNDAEL *p = dkcAllocate(sizeof(DKC_RIJNDAEL));
00036     if(NULL==p){
00037         return NULL;
00038     }
00039 
00040     if(aes_good != aes_dec_key(key,keysize,&(p->mCtx))){
00041         dkcFreeRijndael(&p);
00042         return NULL;
00043     }
00044     return p;
00045 
00046 }
00047 
00048 int WINAPI dkcRijndaelEncrypt(DKC_RIJNDAEL *p,BYTE *dest,size_t dsize,const BYTE *src,size_t ssize){
00049     size_t i;
00050     if(ssize % BLOCK_SIZE != 0){
00051         //ちょっとBLOCK_SIZEで割れる数でないとねぇ。
00052         return edk_LogicError;
00053     }
00054     for( i=0;i<ssize;i += BLOCK_SIZE)
00055     {
00056 #   ifdef NDEBUG
00057         if(aes_bad==aes_enc_blk(&src[i],&dest[i],&(p->mCtx))){
00058             return edk_FAILED;
00059         }
00060 #   else
00061         dkcmNOT_ASSERT(aes_bad==aes_enc_blk(&src[i],&dest[i],&(p->mCtx)));
00062 #   endif
00063     }
00064     return edk_SUCCEEDED;
00065 }
00066 
00067 int WINAPI dkcRijndaelDecrypt(DKC_RIJNDAEL *p,BYTE *dest,size_t dsize,const BYTE *src,size_t ssize){
00068     size_t i;
00069     
00070     if(ssize % BLOCK_SIZE != 0){
00071         //ちょっとBLOCK_SIZEで割れる数でないとねぇ。
00072         return edk_LogicError;
00073     }
00074 
00075     for( i=0;i<ssize;i += BLOCK_SIZE)
00076     {
00077 #   ifdef NDEBUG
00078         if(aes_bad==aes_dec_blk(&src[i],&dest[i],&(p->mCtx))){
00079             return edk_FAILED;
00080         }
00081 #   else
00082         dkcmNOT_ASSERT(aes_bad==aes_dec_blk(&src[i],&dest[i],&(p->mCtx)));
00083 #   endif
00084     }
00085     return edk_SUCCEEDED;
00086 }
00087 
00088 int WINAPI dkcFreeRijndael(DKC_RIJNDAEL **p){
00089     if(NULL==p){
00090         return edk_FAILED;
00091     }
00092     return dkcFree(p);
00093 }
00094 
00095 #endif

dkutil_cに対してSun Jul 18 22:45:21 2004に生成されました。 doxygen 1.3.6