From 775d4a84f36d4d5d0700e9c44dfa4114a0cc022c Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sun, 27 Apr 2025 13:16:46 +0800 Subject: Yay! working with session key encryption. --- lock/bend.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'lock/bend.c') diff --git a/lock/bend.c b/lock/bend.c index d7459eb..3957c55 100644 --- a/lock/bend.c +++ b/lock/bend.c @@ -36,7 +36,6 @@ static char tab[] = { 'P', 'f', ':', 'B', ']', 'Y', '^', 'F', '%', 'C', 'x' }; -static uint8_t sync = 0; static volatile uint8_t rxd = 0; static uint16_t tablen = sizeof(tab) / sizeof(tab[0]); @@ -129,10 +128,20 @@ int main(void) radio_recv(buf, WDLEN); rxd = 0; xor(KEY, buf, msg, WDLEN); - if (memcmp(msg, LOCK, WDLEN) == 0) - lock(); - else if (memcmp(msg, UNLOCK, WDLEN) == 0) - unlock(); + if (memcmp(msg, SYN, WDLEN) == 0) { + keygen(key, WDLEN); + xor(KEY, key, buf, WDLEN); + radio_sendto(txaddr, buf, WDLEN); + } else { + xor(key, buf, msg, WDLEN); + if (memcmp(msg, LOCK, WDLEN) == 0) { + lock(); + keydel(key, WDLEN); + } else if (memcmp(msg, UNLOCK, WDLEN) == 0) { + unlock(); + keydel(key, WDLEN); + } + } } } return 0; -- cgit v1.2.3