faces/totp: improve TOTP initializer labeling

It now generates the string literal from the preprocessor token.
Even warns the user if the string is too long!
This commit is contained in:
Matheus Afonso Martins Moreira 2024-02-25 22:40:32 -03:00
parent d70511515e
commit 46a4076f9e

View File

@ -46,12 +46,12 @@ typedef struct {
unsigned char *key; unsigned char *key;
} totp_t; } totp_t;
#define TOTP_INITIALIZER(label_1, label_2, key_array, algo, timestep) \ #define TOTP_INITIALIZER(label, key_array, algo, timestep) \
(const totp_t) { \ (const totp_t) { \
.key = ((unsigned char *) key_array), \ .key = ((unsigned char *) key_array), \
.key_length = sizeof(key_array) - 1, \ .key_length = sizeof(key_array) - 1, \
.period = (timestep), \ .period = (timestep), \
.labels = { (label_1), (label_2) }, \ .labels = (#label), \
.algorithm = (algo), \ .algorithm = (algo), \
} }
@ -59,8 +59,8 @@ typedef struct {
// Enter your TOTP key data below // Enter your TOTP key data below
static totp_t credentials[] = { static totp_t credentials[] = {
TOTP_INITIALIZER('2', 'F', "JBSWY3DPEHPK3PXP", SHA1, 30), TOTP_INITIALIZER(2F, "JBSWY3DPEHPK3PXP", SHA1, 30),
TOTP_INITIALIZER('A', 'C', "JBSWY3DPEHPK3PXP", SHA1, 30), TOTP_INITIALIZER(AC, "JBSWY3DPEHPK3PXP", SHA1, 30),
}; };
// END OF KEY DATA. // END OF KEY DATA.