+#ifndef TOTP_H_\r
+#define TOTP_H_\r
+\r
#include <inttypes.h>\r
#include "time.h"\r
\r
uint32_t getCodeFromTimestamp(uint32_t timeStamp);\r
uint32_t getCodeFromTimeStruct(struct tm time);\r
uint32_t getCodeFromSteps(uint32_t steps);\r
+\r
+#endif // TOTP_H_\r
0xf0,0xe1,0xd2,0xc3 // H4\r
};\r
\r
+union _buffer {\r
+ uint8_t b[BLOCK_LENGTH];\r
+ uint32_t w[BLOCK_LENGTH/4];\r
+} buffer;\r
+union _state {\r
+ uint8_t b[HASH_LENGTH];\r
+ uint32_t w[HASH_LENGTH/4];\r
+} state;\r
+\r
+uint8_t bufferOffset;\r
+uint32_t byteCount;\r
+uint8_t keyBuffer[BLOCK_LENGTH];\r
+uint8_t innerHash[HASH_LENGTH];\r
+\r
void init(void) {\r
memcpy(state.b,sha1InitState,HASH_LENGTH);\r
byteCount = 0;\r
}\r
\r
void pad() {\r
- // Implement SHA-1 padding (fips180-2 \81\985.1.1)\r
+ // Implement SHA-1 padding (fips180-2 ��5.1.1)\r
\r
// Pad with 0x80 followed by 0x00 until the end of the block\r
addUncounted(0x80);\r
+#ifndef SHA1_H_\r
+#define SHA1_H_\r
+\r
#include <inttypes.h>\r
\r
#define HASH_LENGTH 20\r
#define BLOCK_LENGTH 64\r
\r
-union _buffer {\r
- uint8_t b[BLOCK_LENGTH];\r
- uint32_t w[BLOCK_LENGTH/4];\r
-} buffer;\r
-union _state {\r
- uint8_t b[HASH_LENGTH];\r
- uint32_t w[HASH_LENGTH/4];\r
-} state;\r
-\r
-uint8_t bufferOffset;\r
-uint32_t byteCount;\r
-uint8_t keyBuffer[BLOCK_LENGTH];\r
-uint8_t innerHash[HASH_LENGTH];\r
-\r
void init(void);\r
void initHmac(const uint8_t* secret, uint8_t secretLength);\r
uint8_t* result(void);\r
uint8_t* resultHmac(void);\r
void write(uint8_t);\r
void writeArray(uint8_t *buffer, uint8_t size);\r
+\r
+#endif // SHA1_H\r