JunkBox_Lib++ (for Windows) 1.10.1
Loading...
Searching...
No Matches
cipher.h File Reference

暗号用ライブラリヘッダ More...

#include "buffer.h"
Include dependency graph for cipher.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _XOPEN_SOURCE
 

Functions

void setkey_byBase64 (Buffer)
 
void setkey_byBuffer (Buffer)
 
Buffer encrypt_Base64 (Buffer, int)
 
Buffer encrypt_Buffer (Buffer, int)
 
Buffer to_bin64 (Buffer)
 
Buffer from_bin64 (Buffer)
 
void dump_bin64 (char *, Buffer)
 

Detailed Description

Author
Fumi.Iseki (C)

Definition in file cipher.h.

Macro Definition Documentation

◆ _XOPEN_SOURCE

#define _XOPEN_SOURCE

Definition at line 26 of file cipher.h.

Function Documentation

◆ dump_bin64()

void dump_bin64 ( char * format,
Buffer str )

void dump_bin64(char* format, Buffer str)

bin64形式を標準エラー出力に表示する.

Parameters
formatbin64の内容を表示する前に表示するタイトル.
str表示する bin64形式のバイト列

Definition at line 164 of file cipher.cpp.

165{
166 int i;
167
168 fprintf(stderr, format);
169 for (i=0; i<str.vldsz; i++) fprintf(stderr, "%1d", str.buf[i]);
170 fprintf(stderr, "\n");
171}
int vldsz
データの長さ.バイナリデータの場合も使用可能.文字列の場合は 0x00 を含まない.
Definition buffer.h:37
unsigned char * buf
バッファの先頭へのポインタ.str[bufsz]は必ず 0x00となる.
Definition buffer.h:39

References Buffer::buf, and Buffer::vldsz.

◆ encrypt_Base64()

Buffer encrypt_Base64 ( Buffer buf,
int mode )

Buffer encrypt_Base64(Buffer buf, int mode)

文字列の暗号化または復号を行う

暗号化または復号される文字列はBase64でエンコードされている. 内部では一旦 Base64からデコードされて処理がおこなわれ,再びエンコードされる.

この関数を呼ぶ前に, setkey_XXXX()関数で暗号化キーを設定しなければならない.

Parameters
buf暗号化または復号を行う Base64文字列.
mode0: 暗号化.1: 復号.
Returns
暗号化または復号された文字列.Base64でエンコードされる.

Definition at line 93 of file cipher.cpp.

94{
95 Buffer dec, str, enc;
96
97 dec = decode_base64_Buffer(buf);
98 str = encrypt_Buffer(dec, mode);
99 free_Buffer(&dec);
100
101 enc = encode_base64_Buffer(str);
102 free_Buffer(&str);
103 return enc;
104}
Buffer encode_base64_Buffer(Buffer buf)
バイナリデータ buf.bufの buf.vldszバイトを Base64にエンコード する
Definition buffer.cpp:804
void free_Buffer(Buffer *buf)
Buffer型変数のバッファ部を解放する
Definition buffer.cpp:128
Buffer decode_base64_Buffer(Buffer str)
strのバッファを Base64からデコードする
Definition buffer.cpp:850
Buffer encrypt_Buffer(Buffer buf, int mode)
Definition cipher.cpp:66

References decode_base64_Buffer(), encode_base64_Buffer(), encrypt_Buffer(), and free_Buffer().

Here is the call graph for this function:

◆ encrypt_Buffer()

Buffer encrypt_Buffer ( Buffer buf,
int mode )

Buffer encrypt_Buffer(Buffer buf, int mode)

バイナリデータの暗号化または復号を行う. この関数を呼ぶ前に, setkey_XXXX()関数で暗号化キーを設定しなければならない.

Parameters
buf暗号化または復号を行うデータ.
mode0: 暗号化.1: 復号.
Returns
暗号化の場合は 暗号化されたデータ.
復号の場合は 復号されたデータ.

Definition at line 66 of file cipher.cpp.

67{
68 Buffer str, cry;
69
70 str = to_bin64(buf);
71 encrypt((char*)str.buf, mode);
72 cry = from_bin64(str);
73 free_Buffer(&str);
74 return cry;
75}
Buffer from_bin64(Buffer str)
Definition cipher.cpp:139
Buffer to_bin64(Buffer str)
Definition cipher.cpp:116

References Buffer::buf, free_Buffer(), from_bin64(), and to_bin64().

Referenced by encrypt_Base64().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ from_bin64()

Buffer from_bin64 ( Buffer str)

Buffer from_bin64(Buffer str)

0,1のバイト列(64Byte, bin64形式)を 8byteのビット列に変換する.

Parameters
strビット列に変換するバイト列.64Byte. bin64形式.
Returns
変換されたビット列.8Byte. 64bit.

Definition at line 139 of file cipher.cpp.

140{
141 int i;
142 Buffer ret;
143
144 ret = init_Buffer();
145 if (str.vldsz!=64) return ret;
146
147 ret = make_Buffer(8);
148 if (ret.buf==NULL) return ret;
149
150 for (i=0; i<64; i++) setBit(ret.buf, i, (int)str.buf[i]);
151 ret.vldsz = 8;
152 return ret;
153}
Buffer make_Buffer(int sz)
Buffer型変数のバッファ部をつくり出す.
Definition buffer.cpp:71
Buffer init_Buffer()
初期化したBuffer型変数を返す.
Definition buffer.cpp:47
#define setBit(x, n, i)
Definition common.h:259

References Buffer::buf, init_Buffer(), make_Buffer(), setBit, and Buffer::vldsz.

Referenced by encrypt_Buffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setkey_byBase64()

void setkey_byBase64 ( Buffer key)

void setkey_byBase64(Buffer key)

Base64によってエンコードされた文字列をデコードし,それを encrypt関数の暗号化キーとして設定する.
キー長は通常 8Byte(64bit)だが,有効なものは最初の7Byte(56bit)である.

Parameters
key暗号化のキー

Definition at line 20 of file cipher.cpp.

21{
22 Buffer tmpkey, deskey;
23
24 tmpkey = decode_base64_Buffer(key);
25 deskey = to_bin64(tmpkey);
26
27 setkey((const char*)deskey.buf);
28 free_Buffer(&tmpkey);
29 free_Buffer(&deskey);
30 return;
31}

References Buffer::buf, decode_base64_Buffer(), free_Buffer(), and to_bin64().

Here is the call graph for this function:

◆ setkey_byBuffer()

void setkey_byBuffer ( Buffer key)

void setkey_byBuffer(Buffer key)

アスキー文字(8Byte)を用いて,encrypt関数の暗号化キーを設定する. ただし,キーとして有もなものは最初の7Byteである.

Parameters
key暗号化のキー

Definition at line 42 of file cipher.cpp.

43{
44 Buffer deskey;
45
46 deskey = to_bin64(key);
47 setkey((const char*)deskey.buf);
48 free_Buffer(&deskey);
49
50 return;
51}

References Buffer::buf, free_Buffer(), and to_bin64().

Here is the call graph for this function:

◆ to_bin64()

Buffer to_bin64 ( Buffer str)

Buffer to_bin64(Buffer str)

Bit列を 0,1のバイト列(64Byte)に変換する (bin64形式に件関する).
例えば、整数の 2は 0,0,0,0,0,.....,0,1,0 のバイト列(64Byte)になる.

Parameters
strバイト列に変換するビット列.
Returns
変換されたバイト列.1バイトの 0,1の列.bin64形式.

Definition at line 116 of file cipher.cpp.

117{
118 int i, mi;
119 Buffer ret;
120
121 ret = make_Buffer(64);
122 if (ret.buf==NULL) return ret;
123
124 mi = Min(64, str.vldsz*8);
125 for (i=0; i<mi; i++) ret.buf[i] = (uByte)getBit(str.buf, i);
126 ret.vldsz = mi;
127 return ret;
128}
#define Min(x, y)
Definition common.h:250
unsigned char uByte
1Byte
Definition common.h:332
#define getBit(x, n)
Definition common.h:258

References Buffer::buf, getBit, make_Buffer(), Min, and Buffer::vldsz.

Referenced by encrypt_Buffer(), setkey_byBase64(), and setkey_byBuffer().

Here is the call graph for this function:
Here is the caller graph for this function: