Skip to content
This repository has been archived by the owner on Oct 3, 2020. It is now read-only.
/ bbry-gauth Public archive

[droped] Google Authenticator for Blackberry 10

License

Notifications You must be signed in to change notification settings

aaal-dev/bbry-gauth

Repository files navigation

bbry-gauth

Image of icon

Мой домашний проект для самообучения C++ и QT, а так как я очень полюблю Blackberry 10, и до сих пор пользуюсь Blackberry Passport, то решил исправить ненависную мне проблему. Нативное приложение Google Authenticator для Blackberry 10. Они уже есть в Blackberry World, но работают странно.

За основу взят 2 Steps Authenticator. Мой проект не форк, но часть кода заимствуется до выяснения логики внутренних процессов. Сейчас используется только код алгоритмов генерации проверочных кодов.

Статус разработки

В разработке

❌ Прекращена ❌

(Сдох телефон, для которого шла разработка. Так как сама Blackberry, не смотря на заявления ее руководства, перестала поддерживать платформу и разработчиков Blackberry 10, в 2020 году полностью закроют все связанное с Blackberry 10. И потому для меня нет смысла покупать новый телефон на Blackberry 10, тем более, что новых уже и не производят (очень жаль 😞).)

Информация

https://github.com/google/google-authenticator/wiki/Key-Uri-Format

https://github.com/dafyddcrosby/gauth

Что работает сейчас

Заригистрированная дата
31.10.2107
  • Программа запускается;
  • Отображается Splashscreen;
  • Отображается основное лист (с тестовыми данными); (сделан класс работы с базой данных SQLite, но пока не использую) (тестовые данные при первом старте парсятся из XML фаила в SQLite базу)
  • На основе тестовых данных генерируется HMAC-SHA1 код для TOTP; (пока еще не разделил все остальные виды OTP алгоритмов, но уже кое-что работает, со временем будет сделано все остальное)
  • Работает таймер, который отсчитывает Время жизни пароля, после истичения генерируется новый пароль и перезапускается таймер;
  • Отображается страница настроек; (ничего в ней не работает, класс создан, но пока не использую)
  • Отображается страница информации (взята из примера, заполню позже);
  • Отображается страница сканера QR кода;
    • При положительном сканировании:
      • Закрывается страница сканера QR кода;
      • Строка полученная от сканера передается в парсер;
      • Открывается страница ручного ввода;
      • Страница ручного ввода заполняется на основе данных, полученных из парсера;
      • Недостоющие данные заполняются рекомендованными значениями по умолчанию (пока принято, что дается код HMAC-SHA1-6);
  • Отображается страница ручного ввода кода аутентификации с выбранными настройками по умолчанию;
  • Данные сохраняются в базу SQL (но пока не сделано автоматическое обновление отображеие списка);

Известные проблемы:

  • Программа продолжает есть ресурсы телефона, даже, если была закрыта (не знаю как это решить, возможно это системное, либо мой недостаток знаний и опыта);
  • Таймер «Время жизни пароля» не синхронизирован с внешним временем (думаю как это решить, вроде есть идея);
  • Страница ручного ввода не закрывается (так как вызываю динамически, пока не знаю как ее закрывать);

Идеи:

  • Оформление каждого отдельного аккаунта в зависимости от оформления сервиса, для которого он предназначен, что-то типа Authy;
  • Использование внутренних библиотек Blackberry 10 для работы с хешами (есть пример как это делается);