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
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
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
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((void **)p);
00093 }
00094
00095 #endif