diff options
author | root <root@new-selene.erebei.org> | 2015-12-01 02:11:23 +0000 |
---|---|---|
committer | root <root@new-selene.erebei.org> | 2015-12-01 02:11:23 +0000 |
commit | b4775420082f46cac862c8c55f23a68a2e96019d (patch) | |
tree | 85ceb94ed1b4bff4bc6197567bcda81bfff29749 /app/key.c | |
parent | b55240eb43a92c552003b8b324a385e041f84f12 (diff) | |
download | candlestick-b4775420082f46cac862c8c55f23a68a2e96019d.tar.gz candlestick-b4775420082f46cac862c8c55f23a68a2e96019d.tar.bz2 candlestick-b4775420082f46cac862c8c55f23a68a2e96019d.zip |
fish
Diffstat (limited to 'app/key.c')
-rw-r--r-- | app/key.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/app/key.c b/app/key.c new file mode 100644 index 0000000..6449216 --- /dev/null +++ b/app/key.c @@ -0,0 +1,61 @@ +#include "project.h" + + +int have_key; + +static size_t key_len; + +static uint8_t key[512]; + + +void +key_wipe (void) +{ + have_key = 0; + locked = 0; + memset (key, 0, sizeof (key)); +} + + +void +key_set (char *in, size_t len) +{ + if (len > sizeof (key)) + len = sizeof (key); + memcpy (key, in, len); + key_len = len; + locked = 0; + have_key = 1; +} + + +void +key_send (void) +{ + size_t i; + if (!have_key) + { + send_str ("*no key*\n"); + return; + } + if (locked) + { + send_str ("*locked*\n"); + return; + } + + for (i = 0; i < key_len; ++i) + { + send_ascii (key[i]); + } + + locked++; +} + + +void +key_init (void) +{ + key_wipe (); + have_key = 0; +} |