fclose(fp);
int rsakey_pubblob(const Filename *filename, void **blob, int *bloblen,		   const char **errorstr){    FILE *fp;    char buf[64];    struct RSAKey key;    int ret;    const char *error = NULL;    /* Default return if we fail. */    *blob = NULL;    *bloblen = 0;    ret = 0;    fp = f_open(*filename, "rb");    if (!fp) {	error = "can't open file";	goto end;    }    /*     * Read the first line of the file and see if it's a v1 private     * key file.     */    if (fgets(buf, sizeof(buf), fp) && !strcmp(buf, rsa_signature)) {	memset(&key, 0, sizeof(key));	if (loadrsakey_main(fp, &key, TRUE, NULL, NULL, &error)) {	    *blob = rsa_public_blob(&key, bloblen);	    freersakey(&key);	    ret = 1;	}    } else {	error = "not an SSH-1 RSA file";        fclose(fp);    }  end:    if ((ret != 1) && errorstr)	*errorstr = error;    return ret;}