static void initialise_mcurve( struct ec_curve *curve, mp_int *p, mp_int *a, mp_int *b, mp_int *G_x, unsigned log2_cofactor) { initialise_common(curve, EC_MONTGOMERY, p); curve->m.mc = ecc_montgomery_curve(p, a, b); curve->m.log2_cofactor = log2_cofactor; curve->m.G = ecc_montgomery_point_new(curve->m.mc, G_x); }
static void initialise_ecurve( struct ec_curve *curve, mp_int *p, mp_int *d, mp_int *a, mp_int *nonsquare, mp_int *G_x, mp_int *G_y, mp_int *G_order) { initialise_common(curve, EC_EDWARDS, p); curve->e.ec = ecc_edwards_curve(p, d, a, nonsquare); curve->e.G = ecc_edwards_point_new(curve->e.ec, G_x, G_y); curve->e.G_order = mp_copy(G_order); }
static void initialise_wcurve( struct ec_curve *curve, mp_int *p, mp_int *a, mp_int *b, mp_int *nonsquare, mp_int *G_x, mp_int *G_y, mp_int *G_order) { initialise_common(curve, EC_WEIERSTRASS, p); curve->w.wc = ecc_weierstrass_curve(p, a, b, nonsquare); curve->w.G = ecc_weierstrass_point_new(curve->w.wc, G_x, G_y); curve->w.G_order = mp_copy(G_order); }
int main(int argc, char *argv[]) { #ifdef _WIN32 HANDLE thread; #else pthread_t tid; #endif char *server_ip = DEFAULT_SERVER_IP; char *port_str = DEFAULT_PORT; char *filename = DEFAULT_FILE; int err = 0; int sockfd = 0; int c = 0; while ((c = getopt(argc, argv, "ls:p:")) != -1) { switch (c) { case 's': server_ip = optarg; break; case 'p': port_str = optarg; break; case 'l': g_libpcap_mode = 1; break; case ':': /* -f or -o without operand */ fprintf(stderr, "Option -%c requires an operand\n", optopt); err++; break; case '?': fprintf(stderr, "Unrecognized option: '-%c'\n", optopt); err++; } } for ( ; optind < argc; optind++) { if (filename != DEFAULT_FILE) err++; filename = argv[optind]; break; } if (err) usage(argv); sockfd = initialise_common(server_ip, port_str); g_pcap_fptr = fopen(filename, "wb"); if (g_libpcap_mode) { // Emit libpcap common header emit_pcap_header(g_pcap_fptr); } else { // Emit common header and two interface descriptions as there are two on the tap emit_pcapng_section_header_block(g_pcap_fptr); emit_pcapng_interface_description_block(g_pcap_fptr); emit_pcapng_interface_description_block(g_pcap_fptr); } fflush(g_pcap_fptr); // Now start the console #ifdef _WIN32 thread = CreateThread(NULL, 0, console_thread, &sockfd, 0, NULL); if (thread == NULL) print_and_exit("ERROR: Failed to create console thread\n"); #else err = pthread_create(&tid, NULL, &console_thread, &sockfd); if (err != 0) print_and_exit("ERROR: Failed to create console thread\n"); #endif handle_socket(sockfd); return 0; }