You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
usb-firewall-fork/Upstream/Inc/build_config.h

80 lines
3.7 KiB

/*
* build_config.h
*
* Created on: Jun 20, 2017
* Author: Robert Fisk
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#ifndef INC_BUILD_CONFIG_H_
#define INC_BUILD_CONFIG_H_
#define CONFIG_MASS_STORAGE_ENABLED
#define CONFIG_MASS_STORAGE_WRITES_PERMITTED
#define CONFIG_KEYBOARD_ENABLED
#define CONFIG_KEYBOARD_BOT_DETECT_ENABLED
#define CONFIG_MOUSE_ENABLED
#define CONFIG_MOUSE_BOT_DETECT_ENABLED
#define CONFIG_WRITE_FLASH_TIME_MS 3000 //Enable write LED flashes for the specified length of time
//Configure keyboard bot detection here:
#ifdef CONFIG_KEYBOARD_BOT_DETECT_ENABLED
//-----------------------------------------------------------
//Adjust this threshold first to tune keyboard bot detection. Lower values = more sensitive
#define KEYBOARD_BOTDETECT_LOCKOUT_BIN_THRESHOLD 5 //4 is a good setting for the paranoid. 5 is good for the average user who doesn't want to encounter a rare false-positive.
//-----------------------------------------------------------
#define KEYBOARD_BOTDETECT_FAST_BIN_WIDTH_MS 10 //10ms per bin
#define KEYBOARD_BOTDETECT_SLOW_BIN_WIDTH_MS 20 //20ms per bin
#define KEYBOARD_BOTDETECT_FAST_BIN_COUNT 30 //30 bins at 10ms = 300ms fast coverage
#define KEYBOARD_BOTDETECT_SLOW_BIN_COUNT 50 //50 bins at 20ms = 1 sec slow coverage, wrapped
#define KEYBOARD_BOTDETECT_FAST_BIN_DRAIN_DIVIDER 2
#define KEYBOARD_BOTDETECT_SLOW_BIN_DRAIN_DIVIDER 4
#endif
//Configure mouse bot detection here:
#ifdef CONFIG_MOUSE_BOT_DETECT_ENABLED
#define MOUSE_BOTDETECT_VELOCITY_MULTIPLIER 10
//Jump detection stuff
#define MOUSE_BOTDETECT_JUMP_VELOCITY_THRESHOLD 20 //Varies by mouse. Most short jumps are <= 10 velocity
#define MOUSE_BOTDETECT_JUMP_PERIODS 4
//Constant acceleration detection stuff
#define MOUSE_BOTDETECT_CONSTANT_ACCEL_LOCKOUT 300 //Lock when constant acceleration counter reaches this number
#define MOUSE_BOTDETECT_CONSTANT_ACCEL_STOP 100 //Block mouse movements when counter is above this value
#define MOUSE_BOTDETECT_CONSTANT_ACCEL_CREDIT 100 //Non-constant-acceleration movements can build a credit that will be used before hitting the limits above. Handy for mice or users that exhibit constant velocity characteristics mid-movement.
#define MOUSE_BOTDETECT_VELOCITY_RESET_TIMEOUT_MS 3000 //Reset constant acceleration counter when mouse stops for this time
#define MOUSE_BOTDETECT_VELOCITY_HISTORY_SIZE 12
#define MOUSE_BOTDETECT_VELOCITY_MATCH_BASE 256
#define MOUSE_BOTDETECT_VELOCITY_MATCH_ERROR 6
//Jiggle detection stuff
#define MOUSE_BOTDETECT_JIGGLE_STOP_PERIODS 10
#define MOUSE_BOTDETECT_JIGGLE_BIN_WIDTH_MS 20 //20ms per bin
#define MOUSE_BOTDETECT_JIGGLE_BIN_COUNT 50 //50 bins at 20ms = 1 sec coverage, wrapped
#define MOUSE_BOTDETECT_JIGGLE_BIN_DIVIDER 3
#define MOUSE_BOTDETECT_LOCKOUT_JIGGLE_BIN_THRESHOLD 4
#endif
//Configuration common to all bot detectors
#if defined CONFIG_KEYBOARD_BOT_DETECT_ENABLED || defined CONFIG_MOUSE_BOT_DETECT_ENABLED
#define BOTDETECT_TEMPORARY_LOCKOUT_TIME_MS 4000 //Lock keyboard/mouse for 4 seconds as a first warning
#define BOTDETECT_TEMPORARY_LOCKOUT_FLASH_TIME_MS 60000 //Flash fault LED for 60 seconds after warning lockout
#endif
#endif /* INC_BUILD_CONFIG_H_ */