46 #define CIRCUITPADDING_MACHINES_PRIVATE
68 client_machine->name =
"client_ip_circ";
134 next_state[CIRCPAD_EVENT_NONPADDING_SENT] =
135 CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP;
145 client_machine->
machine_num = smartlist_len(machines_sl);
146 circpad_register_padding_machine(client_machine, machines_sl);
149 "Registered client intro point hiding padding machine (%u)",
162 relay_machine->name =
"relay_ip_circ";
185 next_state[CIRCPAD_EVENT_NONPADDING_SENT] =
186 CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP;
190 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
198 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
199 next_state[CIRCPAD_EVENT_PADDING_SENT] =
200 CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP;
205 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
206 next_state[CIRCPAD_EVENT_NONPADDING_SENT] =
207 CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP;
216 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
222 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
223 length_dist.type = CIRCPAD_DIST_UNIFORM;
224 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
225 length_dist.param1 = INTRO_MACHINE_MINIMUM_PADDING;
226 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
227 length_dist.param2 = INTRO_MACHINE_MAXIMUM_PADDING;
230 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
236 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
237 histogram_edges[0] = 1000;
238 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
239 histogram_edges[1] = 10000;
245 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
249 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
250 histogram_total_tokens =
251 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
histogram[0];
254 relay_machine->
machine_num = smartlist_len(machines_sl);
255 circpad_register_padding_machine(relay_machine, machines_sl);
258 "Registered relay intro circuit hiding padding machine (%u)",
272 client_machine->name =
"client_rp_circ";
326 next_state[CIRCPAD_EVENT_NONPADDING_SENT] =
327 CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP;
331 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
333 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
339 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
346 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
347 length_dist.type = CIRCPAD_DIST_UNIFORM;
348 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
349 length_dist.param1 = 1;
350 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
351 length_dist.param2 = 2;
356 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
358 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
359 histogram_edges[0] = 0;
360 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
361 histogram_edges[1] = 1000;
367 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
369 client_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
370 histogram_total_tokens = 1;
373 client_machine->
machine_num = smartlist_len(machines_sl);
374 circpad_register_padding_machine(client_machine, machines_sl);
377 "Registered client rendezvous circuit hiding padding machine (%u)",
391 relay_machine->name =
"relay_rp_circ";
410 next_state[CIRCPAD_EVENT_NONPADDING_SENT] =
411 CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP;
415 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
417 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
423 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
430 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
431 length_dist.type = CIRCPAD_DIST_UNIFORM;
432 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
433 length_dist.param1 = 1;
434 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
435 length_dist.param2 = 2;
440 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
442 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
443 histogram_edges[0] = 0;
444 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
445 histogram_edges[1] = 1000;
451 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
453 relay_machine->
states[CIRCPAD_STATE_OBFUSCATE_CIRC_SETUP].
454 histogram_total_tokens = 1;
457 relay_machine->
machine_num = smartlist_len(machines_sl);
458 circpad_register_padding_machine(relay_machine, machines_sl);
461 "Registered relay rendezvous circuit hiding padding machine (%u)",
Header file for circuitlist.c.
#define CIRCUIT_PURPOSE_C_REND_JOINED
#define CIRCUIT_PURPOSE_C_CIRCUIT_PADDING
#define CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED
#define CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT
#define CIRCUIT_PURPOSE_C_REND_READY
#define CIRCUIT_PURPOSE_C_INTRODUCE_ACKED
void circpad_machine_states_init(circpad_machine_spec_t *machine, circpad_statenum_t num_states)
circpad_purpose_mask_t circpad_circ_purpose_to_mask(uint8_t circ_purpose)
Header file for circuitpadding.c.
#define CIRCPAD_STATE_START
#define CIRCPAD_STATE_END
@ CIRCPAD_TOKEN_REMOVAL_NONE
void circpad_machine_client_hide_rend_circuits(smartlist_t *machines_sl)
void circpad_machine_client_hide_intro_circuits(smartlist_t *machines_sl)
void circpad_machine_relay_hide_intro_circuits(smartlist_t *machines_sl)
void circpad_machine_relay_hide_rend_circuits(smartlist_t *machines_sl)
Header file for circuitpadding_machines.c.
Common functions for using (pseudo-)random number generators.
Header file for networkstatus.c.
Master header file for Tor-specific functionality.
circpad_purpose_mask_t apply_purpose_mask
circpad_purpose_mask_t keep_purpose_mask
circpad_circuit_state_t apply_state_mask
unsigned manage_circ_lifetime
unsigned should_negotiate_end
uint8_t max_padding_percent
uint16_t allowed_padding_count
circpad_machine_num_t machine_num
circpad_machine_conditions_t conditions
circpad_hist_token_t histogram[CIRCPAD_MAX_HISTOGRAM_LEN]