authenticating.c

来自「NAT打洞」· C语言 代码 · 共 43 行

C
43
字号
#include "common.h"
#include "authenticating.h"
#include "protocol.h"
#include "proxy_socket.h"
#include "borzoi_c.h"

int authenticating(SOCKET proxy, char *username){
	char buff[BUFFER_SIZE];
  	char buf_pk[PUBLIC_KEY_LEN];
  	char buf_sk[PRIVATE_KEY_LEN];
  	char key[SYMMETRIC_KEY_LEN];
  	int len;
  	int i;
  	int nsize;
    if(username == NULL){
  		return 1;
  	}
  	if(open_public_key(username, buf_pk) != 0){
  		return 1;
  	}
  	sprintf(buff, "%s: %s; %d\n", proxyAuth1, username, PUBLIC_KEY_LEN);
  	len = strlen(buff);
  	for(i = 0; i < PUBLIC_KEY_LEN; i++){
  		buff[len + i] = buf_pk[i];
  	}
  	if(
    	HAS_SOCKET_ERROR(
    		send(proxy, buff, len + PUBLIC_KEY_LEN, 0)
    	)
  	){
    	handle_error(__FILE__, __LINE__);
    	return 0;
  	}
  	if(
    	HAS_SOCKET_ERROR(
		    (nsize=recv(proxy, buff,
                    BUFFER_SIZE-1,0))
    	)
  	){
    	handle_error(__FILE__, __LINE__);
    	return 0;
  	}
  	// 耱噔桁 玎忮瘌帼

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?