forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a0abbb9
commit aa4e5b4
Showing
3 changed files
with
67 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters