int main (int argc, char* argv[]) { int f[2000]; oram_args_t *args = malloc(sizeof(oram_args_t)); args_parse(args, argc, argv); signal(SIGINT, sig_handler); signal(SIGTERM, sig_handler); if (args->mode == ORAM_MODE_SERVER) { if (args->daemon == ORAM_DAEMON_STOP) { if (daemon_stop(args) != 0) { errf("cannot stop"); return -1; } return 0; } else if (args->daemon == ORAM_DAEMON_RESTART) { if (daemon_stop(args) != 0) { errf("cannot stop"); return -1; } if (daemon_start(args) != 0) { errf("cannot start"); return -1; } } else if (args->daemon == ORAM_DAEMON_START) { if (daemon_start(args) != 0) { errf("cannot start"); return -1; } } server_run(args, &sv_ctx); } else { client_ctx ctx; oram_client_args ar; ar.verbose = 1; if (client_init(&ctx, &ar) < 0) return -1; // if (client_create(&ctx, 6000, 1) < 0) // return -1; if (client_load(&ctx, 1) < 0) return -1; unsigned char data[ORAM_BLOCK_SIZE]; int m; for(m = 0;m < 100;m++) { data[0] = m; oblivious_access(m, ORAM_ACCESS_WRITE, data, &ctx); } for(m = 0;m < 100;m++) { oblivious_access(m, ORAM_ACCESS_READ, data, &ctx); f[m] = data[0]; } for (m = 0;m < 100;m++) assert(f[m] == m); client_save(&ctx, 0); } return 0; }
mvcp_error_code client_select_unit( client demo ) { int terminated = 0; int refresh = 1; while ( !terminated ) { mvcp_units units = mvcp_units_init( demo->dv ); if ( mvcp_units_count( units ) > 0 ) { mvcp_unit_entry_t unit; int index = 0; char key = '\0'; if ( refresh ) { printf( "Select a Unit\n\n" ); for ( index = 0; index < mvcp_units_count( units ); index ++ ) { mvcp_units_get( units, index, &unit ); printf( "%d: U%d - %s [%s]\n", index + 1, unit.unit, unit.guid, unit.online ? "online" : "offline" ); } printf( "0: Exit\n\n" ); printf( "Unit [%d]: ", demo->selected_unit + 1 ); refresh = 0; } key = get_keypress( ); if ( key == '\r' ) key = demo->selected_unit + '1'; if ( key != '0' ) { if ( key >= '1' && key < '1' + mvcp_units_count( units ) ) { demo->selected_unit = key - '1'; printf( "%c\n\n", key ); client_load( demo ); refresh = 1; } else { beep( ); } } else { printf( "0\n\n" ); terminated = 1; } } else if ( mvcp_units_count( units ) == 0 ) { printf( "No units added - add a unit first\n\n" ); client_add_unit( demo ); } else { printf( "Unable to obtain Unit List.\n" ); terminated = 1; } mvcp_units_close( units ); } return mvcp_ok; }