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

dkcVernam.h

単純な Varnam 暗号 [詳細]

#include "dkcOSIndependent.h"

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

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

ソースコードを見る。

マクロ定義

#define dkcVernamDecrypt(buffer, size, key, keysize, seed, ff)   dkcVernamEncrypt(buffer,size,key,keysize,seed,ff)
#define dkcEasyVernamDecrypt(buffer, size, seed, ff)   dkcEasyVernamEncrypt(buffer,size,seed,ff)

型定義

typedef int(WINAPIV * DKC_VERNAM_F_TYPE )(ULONG *, ULONG)
 VERNAM暗号用ランダムコールバック

関数

DKC_EXTERN void WINAPI dkcVernamEncrypt (BYTE *buffer, size_t size, const BYTE *key, size_t keysize, ULONG seed, DKC_VERNAM_F_TYPE ff)
DKC_EXTERN void WINAPI dkcEasyVernamEncrypt (BYTE *buffer, size_t size, ULONG seed, DKC_VERNAM_F_TYPE ff)


説明

単純な Varnam 暗号

作者:
d金魚

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


マクロ定義

#define dkcEasyVernamDecrypt buffer,
size,
seed,
ff   )     dkcEasyVernamEncrypt(buffer,size,seed,ff)
 

参照:
dkcEasyVernamEncrypt

dkcVernam.h53 行で定義されています。

#define dkcVernamDecrypt buffer,
size,
key,
keysize,
seed,
ff   )     dkcVernamEncrypt(buffer,size,key,keysize,seed,ff)
 

引数:
buffer[in][out] 復号化するバッファへのポインタ(複合化後のデータが格納される。
size[in] bufferのサイズ
key[in] キーバッファへのポインタ
keysize[in] キーバッファのサイズ
seed[in] 種値
ff[in] DKC_VERNAM_F_TYPE型の関数へのポインタ

dkcVernam.h38 行で定義されています。


型定義

typedef int(WINAPIV * DKC_VERNAM_F_TYPE)(ULONG *, ULONG)
 

VERNAM暗号用ランダムコールバック

dkcVernam.h17 行で定義されています。


関数

DKC_EXTERN void WINAPI dkcEasyVernamEncrypt BYTE buffer,
size_t  size,
ULONG  seed,
DKC_VERNAM_F_TYPE  ff
 

引数:
buffer[in][out] 復号化するバッファへのポインタ(複合化後のデータが格納される。
size[in] bufferのサイズ
seed[in] 種値
ff[in] DKC_VERNAM_F_TYPE型の関数へのポインタ
覚え書き:
キーに直接乱数値を使います。(正統派バーナム暗号?

dkcVernam.c70 行で定義されています。

参照先 BYTE, dkcRandomV(), と NULL.

00071 {
00072     size_t i;
00073     BYTE num;
00074     if(NULL==ff){
00075         ff = dkcRandomV;
00076     }
00077     for(i=0;i<size;i++){
00078         num = (BYTE)(ff(&seed,UCHAR_MAX));
00079         buffer[i] ^= num;
00080     }
00081 }

DKC_EXTERN void WINAPI dkcVernamEncrypt BYTE buffer,
size_t  size,
const BYTE key,
size_t  keysize,
ULONG  seed,
DKC_VERNAM_F_TYPE  ff
 

引数:
buffer[in][out] 暗号化するバッファへのポインタ(暗号化後のデータが格納される。
size[in] bufferのサイズ
key[in] キーバッファへのポインタ
keysize[in] キーバッファのサイズ
seed[in] 種値
ff[in] DKC_VERNAM_F_TYPE型の関数へのポインタ
覚え書き:
あらかじめ用意していた乱数列(key)から1バイト単位、ff関数の乱数値に従ってランダムに選んで暗号化します。

dkcVernam.c19 行で定義されています。

参照先 dkcRandomV(), と NULL.

00021 {
00022     size_t i;
00023     int pos;
00024     if(NULL==ff){
00025         ff = dkcRandomV;
00026     }
00027     for(i=0;i<size;i++){
00028         pos = ff(&seed,keysize);
00029         buffer[i] ^= key[pos];
00030     }
00031 }


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