authtis.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 66 行

C
66
字号
#include "ssh.h"static intauthtisfn(Conn *c){	int fd, n;	char *chal, resp[256];	Msg *m;	if(!c->interactive)		return -1;	debug(DBG_AUTH, "try TIS\n");	sendmsg(allocmsg(c, SSH_CMSG_AUTH_TIS, 0));	m = recvmsg(c, -1);	switch(m->type){	default:		badmsg(m, SSH_SMSG_AUTH_TIS_CHALLENGE);	case SSH_SMSG_FAILURE:		free(m);		return -1;	case SSH_SMSG_AUTH_TIS_CHALLENGE:		break;	}	chal = getstring(m);	free(m);	if((fd = open("/dev/cons", ORDWR)) < 0)		error("can't open console");	fprint(fd, "TIS Authentication\n%s", chal);	n = read(fd, resp, sizeof resp-1);	if(n < 0)		resp[0] = '\0';	else		resp[n] = '\0';	if(resp[0] == 0 || resp[0] == '\n')		return -1;	m = allocmsg(c, SSH_CMSG_AUTH_TIS_RESPONSE, 4+strlen(resp));	putstring(m, resp);	sendmsg(m);		m = recvmsg(c, -1);	switch(m->type){	default:		badmsg(m, 0);	case SSH_SMSG_SUCCESS:		free(m);		return 0;	case SSH_SMSG_FAILURE:		free(m);		return -1;	}}Auth authtis ={	SSH_AUTH_TIS,	"tis",	authtisfn,};

⌨️ 快捷键说明

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