#include "dkcOSIndependent.h"
dkcArcfour.hのインクルード依存関係図

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

構成 | |
| struct | dkc_Arcfour_State |
| arcfour algprithm state (RC4互換のアルゴリズム [詳細] | |
| struct | dkc_Arcfour2byte_State |
| Arcfourを2バイトに拡張したもの 暗号強度、安全性等は不明 使用は控えた方が良いかと・・・. [詳細] | |
マクロ定義 | |
| #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) |
| #define | dkcArcfour2ByteDecrypt(p, dest, destsize, src, srcsize) dkcArcfour2ByteEncrypt(p,dest,destsize,src,srcsize) |
| #define | dkcArcfour2ByteDecryptNoDest(p, dest_and_src, dest_and_srcsize) dkcArcfour2ByteEncryptNoDest(p,dest_and_src,dest_and_srcsize) |
型定義 | |
| typedef dkc_Arcfour_State | DKC_ARCFOUR_STATE |
| arcfour algprithm state (RC4互換のアルゴリズム | |
| typedef dkc_Arcfour2byte_State | DKC_ARCFOUR2BYTE_STATE |
| Arcfourを2バイトに拡張したもの 暗号強度、安全性等は不明 使用は控えた方が良いかと・・・. | |
関数 | |
| 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) |
| DKC_EXTERN DKC_ARCFOUR2BYTE_STATE *WINAPI | dkcAllocArcfour2Byte (const unsigned char *key, size_t keylen) |
| DKC_EXTERN int WINAPI | dkcFreeArcfour2Byte (DKC_ARCFOUR2BYTE_STATE **p) |
| DKC_EXTERN unsigned short WINAPI | dkcArcfour2ByteProcess (DKC_ARCFOUR2BYTE_STATE *p) |
| DKC_EXTERN int WINAPI | dkcArcfour2ByteEncrypt (DKC_ARCFOUR2BYTE_STATE *p, unsigned char *dest, size_t destsize, const unsigned char *src, size_t srcsize) |
| DKC_EXTERN int WINAPI | dkcArcfour2ByteEncryptNoDest (DKC_ARCFOUR2BYTE_STATE *p, unsigned char *dest_and_src, size_t dest_and_srcsize) |
dkcArcfour.h で定義されています。
|
|
dkcArcfour.h の 92 行で定義されています。 |
|
|
dkcArcfour.h の 95 行で定義されています。 |
|
|
dkcArcfour.h の 58 行で定義されています。 |
|
|
dkcArcfour.h の 61 行で定義されています。 |
|
|
Arcfourを2バイトに拡張したもの 暗号強度、安全性等は不明 使用は控えた方が良いかと・・・.
参照元 dkcAllocArcfour2Byte(), dkcArcfour2ByteEncrypt(), dkcArcfour2ByteEncrypt_Base(), dkcArcfour2ByteEncryptNoDest(), dkcArcfour2ByteProcess(), と dkcFreeArcfour2Byte(). |
|
|
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 if(NULL==key || 0==keylen){
00022 return NULL;
00023 }
00024
00025 memset(sb2,0,sizeof(sb2));
00026 //allocate state struct
00027 p = (DKC_ARCFOUR_STATE *)dkcAllocate(sizeof(DKC_ARCFOUR_STATE));
00028 if(NULL==p){
00029 return NULL;
00030 }
00031 sb1 = p->msbox;
00032
00033 //initialize
00034 for(i=0;i<256;i++){
00035 sb1[i] = (unsigned char)i;
00036 //嗅ぎ回られないように(なんか、意味あるのか?ないナァ?
00037 //p->msbox2[i] = key [i % keylen];
00038 }
00039 j=i=0;
00040
00041 for(;j<256;j++){
00042 sb2[j] = key [j % keylen];
00043 }
00044
00045
00046 for(i=0;i<256;i++){
00047 //j = (j + sb1 [i] + sb2 [i]) % 256;
00048 j = (j + sb1[i] + sb2[i]) & 0xff;
00049 temp = sb1 [i];
00050 sb1 [i] = sb1 [j];
00051 sb1 [j] = temp;
00052 /*sb1[i] = sb1[j] - sb1[i] ;
00053 sb1[j] -= sb1[i] ;
00054 sb1[i] += sb1[j] ;*/
00055 //SWAP_NUM(sb1[i],sb1[j]);
00056 }
00057 return p;
00058 }
|
|
||||||||||||
|
dkcArcfour.c の 160 行で定義されています。 参照先 DKC_ARCFOUR2BYTE_STATE, dkcAllocate(), dkc_Arcfour2byte_State::msbox, と NULL.
00162 {
00163
00164 int i,j;
00165 unsigned short temp;
00166 unsigned short *sb1,sb2[USHRT_MAX];
00167 DKC_ARCFOUR2BYTE_STATE *p;
00168 if(NULL==key || 0==keylen){
00169 return NULL;
00170 }
00171
00172 memset(sb2,0,sizeof(sb2));
00173 //allocate state struct
00174 p = (DKC_ARCFOUR2BYTE_STATE *)dkcAllocate(sizeof(DKC_ARCFOUR2BYTE_STATE));
00175 if(NULL==p){
00176 return NULL;
00177 }
00178 sb1 = p->msbox;
00179
00180 //initialize
00181 for(i=0;i<USHRT_MAX;i++){
00182 sb1[i] = (unsigned short)i;
00183 //嗅ぎ回られないように(なんか、意味あるのか?ないナァ?
00184 //p->msbox2[i] = key [i % keylen];
00185 }
00186 j=i=0;
00187
00188 for(;j<USHRT_MAX;j++){
00189 sb2[j] = key [j % keylen];
00190 }
00191
00192
00193 for(i=0;i<USHRT_MAX;i++){
00194 //j = (j + sb1 [i] + sb2 [i]) % 256;
00195 j = (j + sb1[i] + sb2[i]) & 0xff;
00196 temp = sb1 [i];
00197 sb1 [i] = sb1 [j];
00198 sb1 [j] = temp;
00199 /*sb1[i] = sb1[j] - sb1[i] ;
00200 sb1[j] -= sb1[i] ;
00201 sb1[i] += sb1[j] ;*/
00202 //SWAP_NUM(sb1[i],sb1[j]);
00203 }
00204 return p;
00205 }
|
|
||||||||||||||||||||||||
|
dkcArcfour.c の 273 行で定義されています。 参照先 DKC_ARCFOUR2BYTE_STATE, と dkcArcfour2ByteEncrypt_Base().
00276 {
00277 //size_t i=0;
00278 if(destsize < srcsize){
00279 return edk_BufferOverFlow;
00280 }
00281 if(srcsize % 2 != 0){//2の倍数じゃないとねぇ
00282 return edk_ArgumentException;
00283 }
00284
00285 dkcArcfour2ByteEncrypt_Base(p,
00286 (unsigned short *)dest,(unsigned short *)src,
00287 srcsize / 2
00288 );
00289
00290 /*for(i = 0;i < srcsize;i++){
00291 dest[i] = (unsigned char )(src[i] ^ dkcArcfourByte(p) );
00292 }*/
00293
00294 return edk_SUCCEEDED;
00295 }
|
|
||||||||||||||||
|
dkcArcfour.c の 299 行で定義されています。 参照先 DKC_ARCFOUR2BYTE_STATE, と dkcArcfour2ByteEncrypt_Base().
00301 {
00302 if(dest_and_srcsize % 2 != 0){//2の倍数じゃないとねぇ
00303 return edk_ArgumentException;
00304 }
00305 dkcArcfour2ByteEncrypt_Base(p,
00306 (unsigned short *)dest_and_src,(unsigned short *)dest_and_src,
00307 dest_and_srcsize / 2
00308 );
00309 return edk_SUCCEEDED;
00310 }
|
|
|
dkcArcfour.c の 207 行で定義されています。 参照先 DKC_ARCFOUR2BYTE_STATE, dkc_Arcfour2byte_State::mi, dkc_Arcfour2byte_State::mj, と dkc_Arcfour2byte_State::msbox.
00207 {
00208 unsigned short i,j,temp;
00209 unsigned short *sb1 = p->msbox;
00210
00211 //calc
00212 i = (unsigned short )(p->mi+1);// % 256;
00213 j = (unsigned short )(p->mj + sb1[i]);// % 256;
00214
00215 //swap
00216 temp = sb1 [i];
00217 sb1 [i] = sb1 [j];
00218 sb1 [j] = temp;
00219
00220 //SWAP_NUM(sb1[i],sb1[j]);
00221 //refresh
00222 p->mi = i;
00223 p->mj = j;
00224 //calc
00225 i = (unsigned short )(sb1 [i] + sb1 [j]);// % 256;
00226 j = (unsigned short )sb1[i];
00227 return j;
00228 }
|
|
|
dkcArcfour.c の 60 行で定義されています。 参照先 DKC_ARCFOUR_STATE, dkc_Arcfour_State::mi, dkc_Arcfour_State::mj, と dkc_Arcfour_State::msbox.
00060 {
00061 unsigned char i,j,temp;
00062 unsigned char *sb1 = p->msbox;
00063
00064 //calc
00065 i = (unsigned char )(p->mi+1);// % 256;
00066 j = (unsigned char )(p->mj + sb1[i]);// % 256;
00067
00068 //swap
00069 temp = sb1 [i];
00070 sb1 [i] = sb1 [j];
00071 sb1 [j] = temp;
00072
00073 //SWAP_NUM(sb1[i],sb1[j]);
00074 //refresh
00075 p->mi = i;
00076 p->mj = j;
00077 //calc
00078 i = (unsigned char )(sb1 [i] + sb1 [j]);// % 256;
00079 j = (unsigned char )sb1[i];
00080 return j;
00081 }
|
|
||||||||||||||||||||||||
|
dkcArcfour.c の 123 行で定義されています。 参照先 DKC_ARCFOUR_STATE, と dkcArcfourEncrypt_Base().
00126 {
00127 //size_t i=0;
00128 if(destsize < srcsize){
00129 return edk_BufferOverFlow;
00130 }
00131 dkcArcfourEncrypt_Base(p,dest,src,srcsize);
00132
00133 /*for(i = 0;i < srcsize;i++){
00134 dest[i] = (unsigned char )(src[i] ^ dkcArcfourByte(p) );
00135 }*/
00136
00137 return edk_SUCCEEDED;
00138 }
|
|
||||||||||||||||
|
dkcArcfour.c の 142 行で定義されています。 参照先 DKC_ARCFOUR_STATE, と dkcArcfourEncrypt_Base().
00144 {
00145 dkcArcfourEncrypt_Base(p,dest_and_src,dest_and_src,dest_and_srcsize);
00146 }
|
|
|
dkcArcfour.c の 148 行で定義されています。 参照先 DKC_ARCFOUR_STATE, dkcFree(), と NULL.
|
|
|
dkcArcfour.c の 312 行で定義されています。 参照先 DKC_ARCFOUR2BYTE_STATE, dkcFree(), と NULL.
|
1.3.6