Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Basic TOTP implementation in C for Arduino
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
ARDUINO-OATH-TOKEN ================== This is a basic Open-Source implementation of a TOTP (compliant with OATH*) code in Arduino. Basicaly it generates 6 digits OTP based in a EPOCH time stored in a variable called birthTime There is no time drift. The OTP is updated each 30 seconds. For HMAC-SHA1 hash this implementation uses the code from Cathedrow / Cryptosuite (https://github.com/Cathedrow/Cryptosuite). However a small change was added to sha1.h and sha1.c: The method size_t Sha1Class::writebytes(const uint8_t* data, int length) For debug purposes the main important functions are printed to serial output. A picture of a working prototype can be found at: https://github.com/damico/ARDUINO-OATH-TOKEN/blob/master/arduino-oath-token-prototype.png *http://www.openauthentication.org/ For compilation purposes, make sure that you have the following directory structure: ---> ARDUINO-OATH-TOKEN/ ---> ---> arduino_oath_token/ ---> ---> ---> arduino_oath_token.ino ---> ---> Sha/ ---> ---> ---> sha1.cpp ---> ---> ---> sha1.h Also, check you libraries directory inside arduino installation folder. It must contain the Sha folder inside it (the arduino installation folder may have different locations and versions, depending of OS). ---> arduino-1.0.1/ ---> ---> libraries/ ---> ---> ---> Sha ---> ---> ---> ---> sha1.cpp ---> ---> ---> ---> sha1.h The Sha library folder can be found at https://github.com/Cathedrow/Cryptosuite as mentioned before but change the sha1.cpp and sha1.h by the ones found at https://github.com/damico/ARDUINO-OATH-TOKEN/tree/master/Sha repository. author: Jose (Ricardo de Oliveira) Damico (jd dot comment at gmail dot com)