#include "dkcOSIndependent.h"
dkcArcfour.hのインクルード依存関係図
このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。
構成 | |
struct | dkc_Arcfour_State |
arcfour algprithm state (RC4互換のアルゴリズム [詳細] | |
マクロ定義 | |
#define | dkcArcfourDecrypt(p, dest, destsize, src, srcsize) dkcArcfourEncrypt(p,dest,destsize,src,srcsize) |
#define | dkcArcfourDecryptNoDest(p, dest_and_src, dest_and_srcsize) dkcArcfourEncryptNoDest(p,dest_and_src,dest_and_srcsize) |
型定義 | |
typedef dkc_Arcfour_State | DKC_ARCFOUR_STATE |
arcfour algprithm state (RC4互換のアルゴリズム | |
関数 | |
DKC_EXTERN DKC_ARCFOUR_STATE *WINAPI | dkcAllocArcfour (const unsigned char *key, size_t keylen) |
DKC_EXTERN int WINAPI | dkcFreeArcfour (DKC_ARCFOUR_STATE **p) |
DKC_EXTERN unsigned char WINAPI | dkcArcfourByte (DKC_ARCFOUR_STATE *p) |
DKC_EXTERN int WINAPI | dkcArcfourEncrypt (DKC_ARCFOUR_STATE *p, unsigned char *dest, size_t destsize, const unsigned char *src, size_t srcsize) |
DKC_EXTERN void WINAPI | dkcArcfourEncryptNoDest (DKC_ARCFOUR_STATE *p, unsigned char *dest_and_src, size_t dest_and_srcsize) |
dkcArcfour.h で定義されています。
|
dkcArcfour.h の 58 行で定義されています。 |
|
dkcArcfour.h の 61 行で定義されています。 |
|
arcfour algprithm state (RC4互換のアルゴリズム
参照元 dkcAllocArcfour(), dkcArcfourByte(), dkcArcfourEncrypt(), dkcArcfourEncrypt_Base(), dkcArcfourEncryptNoDest(), と dkcFreeArcfour(). |
|
dkcArcfour.c の 13 行で定義されています。 参照先 DKC_ARCFOUR_STATE, dkcAllocate(), dkc_Arcfour_State::msbox, と NULL.
00015 { 00016 00017 int i,j; 00018 unsigned char temp; 00019 unsigned char *sb1,sb2[256]; 00020 DKC_ARCFOUR_STATE *p; 00021 00022 memset(sb2,0,sizeof(sb2)); 00023 //allocate state struct 00024 p = (DKC_ARCFOUR_STATE *)dkcAllocate(sizeof(DKC_ARCFOUR_STATE)); 00025 if(NULL==p){ 00026 return NULL; 00027 } 00028 sb1 = p->msbox; 00029 00030 //initialize 00031 for(i=0;i<256;i++){ 00032 sb1[i] = (unsigned char)i; 00033 //嗅ぎ回られないように(なんか、意味あるのか?ないナァ? 00034 //p->msbox2[i] = key [i % keylen]; 00035 } 00036 j=i=0; 00037 00038 for(;j<256;j++){ 00039 sb2[j] = key [j % keylen]; 00040 } 00041 00042 00043 for(i=0;i<256;i++){ 00044 //j = (j + sb1 [i] + sb2 [i]) % 256; 00045 j = (j + sb1[i] + sb2[i]) & 0xff; 00046 temp = sb1 [i]; 00047 sb1 [i] = sb1 [j]; 00048 sb1 [j] = temp; 00049 /*sb1[i] = sb1[j] - sb1[i] ; 00050 sb1[j] -= sb1[i] ; 00051 sb1[i] += sb1[j] ;*/ 00052 //SWAP_NUM(sb1[i],sb1[j]); 00053 } 00054 return p; 00055 } |
|
dkcArcfour.c の 57 行で定義されています。 参照先 DKC_ARCFOUR_STATE, DKC_EXTERN, dkc_Arcfour_State::mi, dkc_Arcfour_State::mj, と dkc_Arcfour_State::msbox.
00057 { 00058 unsigned char i,j,temp; 00059 unsigned char *sb1 = p->msbox; 00060 00061 //calc 00062 i = (unsigned char )(p->mi+1);// % 256; 00063 j = (unsigned char )(p->mj + sb1[i]);// % 256; 00064 00065 //swap 00066 temp = sb1 [i]; 00067 sb1 [i] = sb1 [j]; 00068 sb1 [j] = temp; 00069 00070 //SWAP_NUM(sb1[i],sb1[j]); 00071 //refresh 00072 p->mi = i; 00073 p->mj = j; 00074 //calc 00075 i = (unsigned char )(sb1 [i] + sb1 [j]);// % 256; 00076 j = (unsigned char )sb1[i]; 00077 return j; 00078 } |
|
dkcArcfour.c の 120 行で定義されています。 参照先 DKC_ARCFOUR_STATE, dkcArcfourEncrypt_Base(), edk_BufferOverFlow, と edk_SUCCEEDED.
00123 { 00124 //size_t i=0; 00125 if(destsize < srcsize){ 00126 return edk_BufferOverFlow; 00127 } 00128 dkcArcfourEncrypt_Base(p,dest,src,srcsize); 00129 00130 /*for(i = 0;i < srcsize;i++){ 00131 dest[i] = (unsigned char )(src[i] ^ dkcArcfourByte(p) ); 00132 }*/ 00133 00134 return edk_SUCCEEDED; 00135 } |
|
dkcArcfour.c の 139 行で定義されています。 参照先 DKC_ARCFOUR_STATE, と dkcArcfourEncrypt_Base().
00141 { 00142 dkcArcfourEncrypt_Base(p,dest_and_src,dest_and_src,dest_and_srcsize); 00143 } |
|
dkcArcfour.c の 145 行で定義されています。 参照先 DKC_ARCFOUR_STATE, dkcFree(), edk_FAILED, と NULL.
00145 { 00146 if(NULL==p){ 00147 return edk_FAILED; 00148 } 00149 return dkcFree((void **)p); 00150 } |