parent
26099e07d9
commit
f053dd63a4
@ -0,0 +1,54 @@ |
|||||||
|
# Secure |
||||||
|
|
||||||
|
The secure feature aims to prevent unwanted interaction without user intervention. |
||||||
|
|
||||||
|
?> Secure does **not** currently implement encryption/decryption/etc and should not be a replacement where a strong hardware/software based solution is required. |
||||||
|
|
||||||
|
### Unlock sequence |
||||||
|
|
||||||
|
To unlock, the user must perform a set of actions. This can optionally be configured to be multiple keys. |
||||||
|
|
||||||
|
* While unlocking all keyboard input is ignored |
||||||
|
* Incorrect attempts will revert back to the previously locked state |
||||||
|
|
||||||
|
### Automatic Locking |
||||||
|
|
||||||
|
Once unlocked, the keyboard will revert back to a locked state after the configured timeout. |
||||||
|
The timeout can be refreshed by using the `secure_activity_event` function, for example from one of the various [hooks](custom_quantum_functions.md). |
||||||
|
|
||||||
|
## Usage |
||||||
|
|
||||||
|
Add the following to your `rules.mk`: |
||||||
|
|
||||||
|
```make |
||||||
|
SECURE_ENABLE = yes |
||||||
|
``` |
||||||
|
|
||||||
|
## Keycodes |
||||||
|
|
||||||
|
| Key | Description | |
||||||
|
|------------------|--------------------------------------------------------------------------------| |
||||||
|
| `SECURE_LOCK` | Revert back to a locked state | |
||||||
|
| `SECURE_UNLOCK` | Forces unlock without performing a unlock sequence | |
||||||
|
| `SECURE_TOGGLE` | Toggle directly between locked and unlock without performing a unlock sequence | |
||||||
|
| `SECURE_REQUEST` | Request that user perform the unlock sequence | |
||||||
|
|
||||||
|
## Configuration |
||||||
|
|
||||||
|
| Define | Default | Description | |
||||||
|
|-------------------------|----------------|---------------------------------------------------------------------------------| |
||||||
|
|`SECURE_UNLOCK_TIMEOUT` | `5000` | Timeout for the user to perform the configured unlock sequence - `0` to disable | |
||||||
|
|`SECURE_IDLE_TIMEOUT` | `60000` | Timeout while unlocked before returning to locked - `0` to disable | |
||||||
|
|`SECURE_UNLOCK_SEQUENCE` | `{ { 0, 0 } }` | Array of matrix locations describing a sequential sequence of keypresses | |
||||||
|
|
||||||
|
## Functions |
||||||
|
|
||||||
|
| Function | Description | |
||||||
|
|---------------------------|----------------------------------------------------------------------------| |
||||||
|
| `secure_is_locked()` | Check if the device is currently locked | |
||||||
|
| `secure_is_unlocking()` | Check if an unlock sequence is currently in progress | |
||||||
|
| `secure_is_unlocked()` | Check if the device is currently unlocked | |
||||||
|
| `secure_lock()` | Lock down the device | |
||||||
|
| `secure_unlock()` | Force unlock the device - bypasses user unlock sequence | |
||||||
|
| `secure_request_unlock()` | Begin listening for an unlock sequence | |
||||||
|
| `secure_activity_event()` | Flag that user activity has happened and the device should remain unlocked | |
Loading…
Reference in new issue