JunkBox_Lib++ (for Windows) 1.10.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cipher.cpp
Go to the documentation of this file.
1
9#include "cipher.h"
10
11
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}
32
33
43{
44 Buffer deskey;
45
46 deskey = to_bin64(key);
47 setkey((const char*)deskey.buf);
48 free_Buffer(&deskey);
49
50 return;
51}
52
53
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}
76
77
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}
105
106
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}
129
130
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}
154
155
164void dump_bin64(char* format, Buffer str)
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}
172
Buffer encode_base64_Buffer(Buffer buf)
バイナリデータ buf.bufの buf.vldszバイトを Base64にエンコード する
Definition buffer.cpp:804
Buffer make_Buffer(int sz)
Buffer型変数のバッファ部をつくり出す.
Definition buffer.cpp:71
void free_Buffer(Buffer *buf)
Buffer型変数のバッファ部を解放する
Definition buffer.cpp:128
Buffer init_Buffer()
初期化したBuffer型変数を返す.
Definition buffer.cpp:47
Buffer decode_base64_Buffer(Buffer str)
strのバッファを Base64からデコードする
Definition buffer.cpp:850
void setkey_byBuffer(Buffer key)
Definition cipher.cpp:42
Buffer from_bin64(Buffer str)
Definition cipher.cpp:139
Buffer to_bin64(Buffer str)
Definition cipher.cpp:116
void setkey_byBase64(Buffer key)
Definition cipher.cpp:20
Buffer encrypt_Base64(Buffer buf, int mode)
Definition cipher.cpp:93
Buffer encrypt_Buffer(Buffer buf, int mode)
Definition cipher.cpp:66
void dump_bin64(char *format, Buffer str)
Definition cipher.cpp:164
暗号用ライブラリヘッダ
#define Min(x, y)
Definition common.h:250
#define setBit(x, n, i)
Definition common.h:259
unsigned char uByte
1Byte
Definition common.h:332
#define getBit(x, n)
Definition common.h:258
int vldsz
データの長さ.バイナリデータの場合も使用可能.文字列の場合は 0x00 を含まない.
Definition buffer.h:37
unsigned char * buf
バッファの先頭へのポインタ.str[bufsz]は必ず 0x00となる.
Definition buffer.h:39