/* GABA: (expr (name make_writekey) (globals (open IO_WRITE_FILE) (stdin IO_READ_STDIN) (read READ_SEXP)) (params (private object io_write_file_info) (public object io_write_file_info)) (expr (lambda (backend) (let ((key (read (stdin backend)))) (prog1 (transport (open backend public) (private2public key)) ; FIXME: Add encryption here (canonical (open backend private) key)))))) */
static struct lsh_object * make_writekey(struct io_write_file_info *private, struct io_write_file_info *public) { /* (S (S (B S (C (B* (B* prog1) transport (C open public)) private2public)) (B canonical (C open private))) (B read stdin)) */ return MAKE_TRACE("make_writekey", S2(S2(B2(S, C2(Bp3(Bp1(PROG1), TRANSPORT, C2(IO_WRITE_FILE, ((struct lsh_object *) public))), PRIVATE2PUBLIC)), B2(CANONICAL, C2(IO_WRITE_FILE, ((struct lsh_object *) private)))), B2(READ_SEXP, IO_READ_STDIN)) ); }