fprintf(stderr, "escaped: %s", line);
do_convert_from_ssh2(struct passwd *pw){	Key *k;	int blen;	char line[1024], *p;	char blob[8096];	char encoded[8096];	struct stat st;	int escaped = 0, private = 0, ok;	FILE *fp;	if (!have_identity)		ask_filename(pw, "Enter file in which the key is");	if (stat(identity_file, &st) < 0) {		perror(identity_file);		exit(1);	}	fp = fopen(identity_file, "r");	if (fp == NULL) {		perror(identity_file);		exit(1);	}	encoded[0] = '\0';	while (fgets(line, sizeof(line), fp)) {		if (!(p = strchr(line, '\n'))) {			fprintf(stderr, "input line too long.\n");			exit(1);		}		if (p > line && p[-1] == '\\')			escaped++;		if (strncmp(line, "----", 4) == 0 ||		    strstr(line, ": ") != NULL) {			if (strstr(line, SSH_COM_PRIVATE_BEGIN) != NULL)				private = 1;			fprintf(stderr, "ignore: %s", line);			continue;		}		if (escaped) {			escaped--;			fprintf(stderr, "escaped: %s", line);			continue;		}		*p = '\0';		strlcat(encoded, line, sizeof(encoded));	}	blen = uudecode(encoded, (u_char *)blob, sizeof(blob));	if (blen < 0) {		fprintf(stderr, "uudecode failed.\n");		exit(1);	}	k = private ?	    do_convert_private_ssh2_from_blob(blob, blen) :	    key_from_blob(blob, blen);	if (k == NULL) {		fprintf(stderr, "decode blob failed.\n");		exit(1);	}	ok = private ?	    (k->type == KEY_DSA ?		 PEM_write_DSAPrivateKey(stdout, k->dsa, NULL, NULL, 0, NULL, NULL) :		 PEM_write_RSAPrivateKey(stdout, k->rsa, NULL, NULL, 0, NULL, NULL)) :	    key_write(k, stdout);	if (!ok) {		fprintf(stderr, "key write failed");		exit(1);	}	key_free(k);	fprintf(stdout, "\n");	fclose(fp);	exit(0);}