From 8c4c00ae0a46e46c338a8876718caf778adf79b7 Mon Sep 17 00:00:00 2001 From: Johannes Findeisen Date: Tue, 29 Nov 2022 21:06:25 +0100 Subject: [PATCH] More comments, cleanups and added LICENSE and README. --- .../Blinker/{ => src}/Blinker.cpp | 0 Digispark_Passkey/Blinker/{ => src}/Blinker.h | 0 Digispark_Passkey/Digispark_Passkey.ino | 70 ++++++++++++------- Digispark_Passkey/LICENSE | 21 ++++++ Digispark_Passkey/README.md | 7 ++ 5 files changed, 72 insertions(+), 26 deletions(-) rename Digispark_Passkey/Blinker/{ => src}/Blinker.cpp (100%) rename Digispark_Passkey/Blinker/{ => src}/Blinker.h (100%) create mode 100644 Digispark_Passkey/LICENSE create mode 100644 Digispark_Passkey/README.md diff --git a/Digispark_Passkey/Blinker/Blinker.cpp b/Digispark_Passkey/Blinker/src/Blinker.cpp similarity index 100% rename from Digispark_Passkey/Blinker/Blinker.cpp rename to Digispark_Passkey/Blinker/src/Blinker.cpp diff --git a/Digispark_Passkey/Blinker/Blinker.h b/Digispark_Passkey/Blinker/src/Blinker.h similarity index 100% rename from Digispark_Passkey/Blinker/Blinker.h rename to Digispark_Passkey/Blinker/src/Blinker.h diff --git a/Digispark_Passkey/Digispark_Passkey.ino b/Digispark_Passkey/Digispark_Passkey.ino index 121ecac..8ab07f7 100644 --- a/Digispark_Passkey/Digispark_Passkey.ino +++ b/Digispark_Passkey/Digispark_Passkey.ino @@ -1,45 +1,63 @@ +// Passkey for Arduino using the Digispark Rev.3 board. +// Copyright 2022 by Johannes Findeisen +// Licensed under the terms of the MIT license. + +// For using the Blinker library you have to install it from: +// https://github.com/MajenkoLibraries/Blinker +// Since the code is included in Passkey you easily can just copy +// Blinker/src/Blinker.cpp and Blinker/src/Blinker.h to the root of +// Passkey. #include "Blinker.h" #include "DigiKeyboard.h" -// the button pin +// The button pin #define BUTTON_PIN 0 -// the LED pin +// The LED pin #define LED_PIN 1 -// the pause after last button press before executing a command +// The pause after last button press before executing a command #define PAUSE 2000 -// local variables +// Local variables unsigned long last; unsigned int count; -// create blinker +// Create blinker object Blinker blinker(LED_PIN); -// the list of available passwords -// the number and overall lenght of passwords depends because the memory of the digispark is very limited... -// i recommend to use a prefix you easily can remember for the password/passwords to make the passwords -// on the passkey unusable for others if you have lost your passkey. E.g.: WhatAWonderfulWorld -> then press the button. +// The list of available passwords +// The number and overall lenght of passwords depends +// because the memory of the digispark is very limited... +// I recommend to use a prefix you easily can remember +// for the password/passwords to make the passwords +// on the passkey unusable for others in case you've lost +// your passkey. E.g.: WhatAWonderfulWorld -> then press the button. const char *passwords[] = { - "n0Emb871NAQPSIqBoldh8R7UDaNhncF7Pt60Amdo6GWdTdAPwVBi2A3KU8x8DTCRo6GWdTdXNn2wLh3SUbxVWQvFDVPtatDg", // passwords[0] - "oaxt6e3lSgflOuJ3C6Q6sUb5gvmvI5IEPFku5fqcbxJljBOUblHIT121wCu", // passwords[1] - "jUgKGBtiJ0iNN1Ok9vejrXNn2wLh3SUbxVWQvFDVPtat0OxJlKU8x8DTCRo6GWdTdAPwVBi2A3KUrTKQwjUgK", // passwords[2] - "G57dFnXsPUnRq1eC1CjrGxpCjuiJFlDti54W6wBS9Ro6GWdTdAPwVBi2A3KU8x8KGBtiJ0iNN1Ok9vejrXNn2wLhH" // etc... + // passwords[0] + "n0Emb871NAQPSIqBoldh8R7UDaNhncF7Pt60Amdo6GWdTdAPwVBi2A3KU8x8DTCRo6GWdTdXNn2wLh3SUbxVWQvFDVPtatDg", + // passwords[1] + "oaxt6e3lSgflOuJ3C6Q6sUb5gvmvI5IEPFku5fqcbxJljBOUblHIT121wCu", + // passwords[2] + "jUgKGBtiJ0iNN1Ok9vejrXNn2wLh3SUbxVWQvFDVPtat0OxJlKU8x8DTCRo6GWdTdAPwVBi2A3KUrTKQwjUgK", + // passwords[3] + "G57dFnXsPUnRq1eC1CjrGxpCjuiJFlDti54W6wBS9Ro6GWdTdAPwVBi2A3KU8x8KGBtiJ0iNN1Ok9vejrXNn2wLhH" }; void setup() { - // set button pin to high + // Set button pin to high. pinMode(BUTTON_PIN, INPUT); + // Set BUTTON_PIN pin to high because the button is connected + // to GND when pressed and will go LOW digitalWrite(BUTTON_PIN, HIGH); - // set blink effect (ON, OFF) in milliseconds + // Set blink effect (ON, OFF) in milliseconds blinker.setDelay(25, 10000); blinker.start(); - // initialize HID + // Initialize HID DigiKeyboard.delay(0); DigiKeyboard.sendKeyStroke(0); - // light up the LED for a second to show that passkey is ready + // Light up the LED for a second to show that passkey is ready pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH); delay(1000); @@ -47,23 +65,23 @@ void setup() { } void loop() { - // start LED blink effect + // Start LED blink effect blinker.blink(); - // read button state + // Read button state if (digitalRead(BUTTON_PIN) == LOW) { - // button is pressed + // Button is pressed last = millis(); count++; - // wait until button is released + // Wait until button is released while (digitalRead(BUTTON_PIN) == LOW) { delay(1); } } - // wait PAUSE time before executing a command + // Wait PAUSE time before executing a command if (count > 0 && (millis() - last) >= PAUSE) { - // the switch case is the number of button presses + // The switch case is the number of button presses switch (count) { case 1: DigiKeyboard.println(passwords[0]); @@ -75,14 +93,14 @@ void loop() { DigiKeyboard.println(passwords[2]); break; case 5: - // you can use print instead of println if you don't want to - // hit enter automatically after inserting the password + // You can use print instead of println if you don't want + // to hit enter automatically after inserting the password DigiKeyboard.print(passwords[3]); break; default: break; } - // reset the counter + // Reset the counter count = 0; } } diff --git a/Digispark_Passkey/LICENSE b/Digispark_Passkey/LICENSE new file mode 100644 index 0000000..7f26d00 --- /dev/null +++ b/Digispark_Passkey/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Johannes Findeisen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Digispark_Passkey/README.md b/Digispark_Passkey/README.md new file mode 100644 index 0000000..7fd808f --- /dev/null +++ b/Digispark_Passkey/README.md @@ -0,0 +1,7 @@ +# Digispark Passkey + +The Passkey is a minimal device for storing passwords in an easy way. + +**WARNING: No authentication nor encryption! All passwords are stored plain on the +device. Everybody who has access to it will have access to your stored passwords.** +