The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Oathtool  и liboath - отличаются результаты генерации кодов."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


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

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

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

Ответить | Правка | Наверх | Cообщить модератору

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

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

Спасибо!

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру