int main() { srand(time(NULL)); Keypair *t = generate_keypair(); // Trent Keypair *kp1 = generate_keypair(); // Alice /* Alice's certificate */ Certificate *c = generate_certificate("Alice", kp1->public_key, t->private_key); /* Bob's u */ rsa_int u = generate_random_u(c); /* Alice computes h(u) and v */ rsa_int hu = rsa_int_hash(u); rsa_int v = crypt(hu, kp1->private_key, 0); /* Alice sends v to Bob * Bob encrypts v with Alice's public key, * and checks whether it is h(u) * */ rsa_int r = crypt(v, kp1->public_key, 1); // E(e, v) assert(r == hu); /* Trace begins */ trace("204-206:u: %d", u); trace("Sequence of bits for u"); trace_int_bits(u, "u"); trace("204-206:h(u): %d", hu); trace("Sequence of bits for h(u)"); trace_int_bits(hu, "h(u)"); trace("204-206:v: %d", v); trace("Sequence of bits for v"); trace_int_bits(v, "v"); trace("204-206:E(e, v): %d", r); trace("Sequence of bits for E(e, v)"); trace_int_bits(r, "E(e, v)"); /* Trace ends */ destroy_certificate(c); destroy_keypair(kp1); destroy_keypair(t); return 0; }
int main(int argc, const char **argv) { usage(argc); get_db_path(argc, argv); get_name(argc, argv); open_db(); create_table(); generate_keypair(); insert_keypair(); close_db(); return 0; }
static void *worker_loop(void *ignored) { bool keep_running = true; while(keep_running) { brine_task_s *task = (brine_task_s *) brine_queue_dequeue(queue); if (!task) { keep_running = false; break; } switch(task->cmd) { case BRINE_STOP: keep_running = false; break; case BRINE_NEW_KEYPAIR: generate_keypair(task); break; case BRINE_NEW_KEYPAIR_FROM_SEED: generate_keypair_from_seed(task); break; case BRINE_SIGN_MSG: sign_message(task); break; case BRINE_VERIFY: verify_signature(task); break; case BRINE_TO_BINARY: keypair_to_binary(task); break; case BRINE_TO_KEYPAIR: binary_to_keypair(task); break; default: break; } brine_task_destroy(&task); } return NULL; }