URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10514
[ Назад ]

Исходное сообщение
"Oathtool  и liboath - отличаются результаты генерации кодов."

Отправлено Anonymus , 15-Ноя-25 19:41 
Написал небольшую программу для генерации и проверки одноразовых OTP кодов через библиотеку liboath.
При проверке выяснилось, что выдаваемые коды отличаются от сгенерированных программой oathtool. Секрет одинаковый, текущее время и время отсчёта одинаковые. Куда копать?

Код генерации:
oath_totp_generate("5cab4473de7fb810516f42ea0c666fb6", 32, rawtime, 30, 0, 8, otp_gen)

Результат "oathtool --totp -d 8 -v 5cab4473de7fb810516f42ea0c666fb6":

Hex secret: 5cab4473de7fb810516f42ea0c666fb6
Base32 secret: LSVUI466P64BAULPILVAYZTPWY======
Digits: 8
Window size: 0
Step size (seconds): 30
Start time: 1970-01-01 00:00:00 UTC (0)
Current time: 2025-11-15 16:37:49 UTC (1763224669)
Counter: 0x380D28B (58774155)

03164240


Результат моего кода (с liboath.h):

Raw time: 1763224669
Time:21:37:49

11521549


Содержание

Сообщения в этом обсуждении
"Oathtool  и liboath - отличаются результаты генерации кодов."
Отправлено Аноним , 17-Ноя-25 13:57 
все молчат, так что не глядя обозначу очевидное:

1. точно ли в обоих случаях секреты отдаются в алгоритм в виде бинари? может один из них передается строкой "5cab..."?
2. скорее всего разница именно во времени, в часовых поясах. Один мог бы быть UTC, а другой -- в системном поясе (МСК например).

а вообще, ты не показал свой код полностью, может поэтому все молчали.


"Oathtool  и liboath - отличаются результаты генерации кодов."
Отправлено Anonymus , 17-Ноя-25 21:17 
> все молчат, так что не глядя обозначу очевидное:
> 1. точно ли в обоих случаях секреты отдаются в алгоритм в виде
> бинари? может один из них передается строкой "5cab..."?

Точно. Не обратил внимание на функцию oath_hex2bin - думал, она для других целей требуется. После преобразования hex-строки в двоичные данные всё получилось, результаты совпадают.

Спасибо!