45 if (!strcmp(
"OK", (
const char*)ans.
buf)) nn = 0;
46 else if (!strcmp(
"ERR", (
const char*)ans.
buf)) {
48 nn = atoi((
const char*)eno.
buf);
90 if (key!=NULL && cipher!=NULL) {
126 if (algor==NULL)
return ret;
132 if (cc!=0) { ret.
state = cc;
return ret; }
165 if (cc!=0)
return cc;
209 int cryptf, sock, cc, tm = 10;
238 EVP_CIPHER* cipher = NULL;
239 if (keyex!=0 && cryptm!=0) {
246 if (cc!=0 && !cont) {
255 if (cryptf==
FALSE) chmode =
ON;
361 if (cfn!=NULL && ipaddr.
buf!=NULL) {
368 if (spki.
buf!=NULL) {
370 mpki = gen_DHspki_fs(spki, &dhkey);
376 PRINT_MESG(
"ERROR: start_CRYPT_transfer: DH Key is NULL\n");
381 PRINT_MESG(
"ERROR: start_CRYPT_transfer: spki is NULL\n");
398 if (cryptm==SSL_AES128CBC) {
402 else if (cryptm==SSL_3DES3CBC) {
Buffer encode_base64_Buffer(Buffer buf)
バイナリデータ buf.bufの buf.vldszバイトを Base64にエンコード する
Buffer get_line_Buffer(Buffer str, int n)
複数行の文字列バッファから任意の行を取り出す.
Buffer make_Buffer(int sz)
Buffer型変数のバッファ部をつくり出す.
void chomp_Buffer(Buffer *str)
最初の改行コード以降を無視する.
void clear_Buffer(Buffer *str)
Buffer型変数 のバッファ部を 0クリアする.
void free_Buffer(Buffer *buf)
Buffer型変数のバッファ部を解放する
Buffer init_Buffer()
初期化したBuffer型変数を返す.
Buffer decode_base64_Buffer(Buffer str)
strのバッファを Base64からデコードする
int cat_Buffer(Buffer *src, Buffer *dst)
Buffer変数 srcから dstへバッファを catする.
#define copy_s2Buffer(src, dst)
copy_b2Buffer()
#define cat_s2Buffer(src, dst)
cat_b2Buffer()
#define make_Buffer_bystr(str)
set_Buffer()
Buffer get_operand(Buffer msg)
Buffer get_command(Buffer msg)
int start_CRYPT_transfer(int sock, int keyex, int cryptm, Buffer ipaddr, char *cfn, int tm, Buffer *shdkey, EVP_CIPHER **cipher)
int send_spki_recv_ans(int sock, Buffer mkey, int tm, Buffer *key, EVP_CIPHER *cipher)
int check_auth(Buffer ahost, int aport, Buffer userid, Buffer passwd, int chmode, int keyex, int cryptm, char *cfn, int cont)
Buffer send_algor_recv_spki(int sock, char *algor, int tm, Buffer *key, EVP_CIPHER *cipher)
int stop_CRYPT_transfer(int sock, int tm, Buffer *shdkey, EVP_CIPHER *cipher)
int send_command_recv_ans(int sock, char *command, int tm, Buffer *key, EVP_CIPHER *cipher)
Buffer recv_mesg_until_end(int sock, int tm, Buffer *key, EVP_CIPHER *cipher)
#define JBXL_ARGS_ERROR
不正な引数(NULLなど)
#define JBXL_ISNET_PUBKEYALG_ERROR
知らない公開鍵暗号アルゴリズム
#define JBXL_ISNET_CONNECT_ERROR
認証サーバとの接続エラー
#define JBXL_ISNET_SERVER_ERROR
認証ホストの検証エラー
#define JBXL_ISNET_NULLANS_ERROR
サーバからの返答が NULL
#define JBXL_ISNET_CMD_ERROR
サーバから 'OK', 'ERR' 以外のものを受信した
#define JBXL_ISNET_START_ERROR
認証サーバとの通信開始エラー(相手は認証サーバでない?)
#define JBXL_ISNET_PASSWD_ERROR
ユーザ認証失敗(ユーザは存在するが,パスワードが一致しない)
#define JBXL_ISNET_DHKEY_ERROR
DH鍵エラー(ISNET内)
#define JBXL_ISNET_USER_ERROR
ユーザ認証失敗(ユーザが存在しない)
#define JBXL_ISNET_CHALLENGE_ERROR
チャレンジキー合意エラー
char * get_ipaddr_byname(const char *hostname, int family)
ホスト名 → IPv4/IPv6 アドレス(文字列)
int socket_close(int sofd)
call shutdown(), close()
#define tcp_client_socket(h, p)
char * x2crypt(char *pass, char *bsalt)
int state
変数の状態を表す.正常は JBXL_NORMAL
unsigned char * buf
バッファの先頭へのポインタ.str[bufsz]は必ず 0x00となる.