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