Moved build instructions to separate doc, updated README.

This commit is contained in:
Dain Nilsson 2022-11-10 10:05:00 +01:00
parent 9a042a8cff
commit 88c80635c5
No known key found for this signature in database
GPG Key ID: F04367096FBA95E8
2 changed files with 107 additions and 33 deletions

View File

@ -1,43 +1,49 @@
== Yubico Authenticator for Desktop
== Yubico Authenticator for Desktop and Android
=== Requirements
You will need the Flutter SDK with enabled desktop support, see:
https://flutter.dev/desktop
image:screenshot.png[]
Development has been done using the "Install from git" method of installing the
SDK, from the "beta" channel.
Store your unique credential on a hardware-backed security key and take it
wherever you go from mobile to desktop. No more storing sensitive secrets on
your mobile phone, leaving your account vulnerable to takeovers. With the
Yubico Authenticator you can raise the bar for security.
You will also need to provide a compiled version of the Helper, as described in
the next section.
* The Yubico Authenticator will work with any USB or NFC-enabled YubiKeys
The Yubico Authenticator securely generates a code used to verify your identity
as you are logging into various services. No connectivity needed!
=== Building the Yubico Authenticator Helper
Requirements: Python >= 3.8 and Poetry.
=== Features include
* Secure - Hardware-backed strong two-factor authentication with secret stored
on the YubiKey, not on your phone or computer
* Portable - Get the same set of codes across our other Yubico Authenticator
apps for desktops as well as for all leading mobile platforms
* Flexible - Support for time-based and counter-based code generation
* USB or NFC usage - Insert the YubiKey into the USB port, or use the YubiKey
with NFC with a mobile phone that is NFC-enabled or a desktop NFC reader to
store your credential on the YubiKey
* Easy Setup - QR codes available from the services you wish to protect with
strong authentication
* User Presence - Require a touch on the YubiKey sensor to generate new codes
for sensitive accounts
* Compatible - Secure all the services currently compatible with other
Authenticator apps
* Versatile - Support for multiple work and personal accounts
The GUI requires a compiled version of Helper to run, which is built from the
sources in helper/ in this repository. This needs to be build prior to running
`flutter build` or `flutter run`, by running `build-helper.sh` (or
`build-helper.bat` on Windows).
Experience security the modern way with the Yubico Authenticator.
Visit https://yubico.com to learn more.
NOTE: You will need to re-run `ykman-helper.sh` if changes have been made to
Helper's code, or if `flutter clean` has been run.
=== Installation
Downloads for all supported operating systems are available
https://www.yubico.com/products/yubico-authenticator/[here].
=== Command line interface
Looking for a command line option? Try our
https://github.com/Yubico/yubikey-manager/[YubiKey Manager CLI] tool.
=== Running the app
To start the app, run:
=== iOS
The iOS version of this app is available
https://github.com/Yubico/yubioath-ios[here].
flutter run -d <os>
where <os> is "windows", "macos", or "linux". You can add the `--release` flag
to run a release build instead of debug. Builds of the app will be create under
`build/<os>/`.
=== Running tests
Tests can be run with the command:
flutter test
=== Packaging for MacOS
See link:doc/MacOS_Packaging.adoc[MacOS Packaging].
=== Build instructions (for developers)
Instructions on building and packaging the app is available
link:doc/Development.adoc[here].

68
doc/Development.adoc Normal file
View File

@ -0,0 +1,68 @@
== Building and developing Yubico Authenticator
This document describes how to build and package Yubico Authenticator from
source.
=== Requirements
You will need the Flutter SDK with enabled desktop support, see:
https://flutter.dev/desktop
Development has been done using the "Install from git" method of installing the
SDK, from the "stable" channel.
=== Dependencies
This project uses several dependencies specified in the pubspec.yaml file, as
well as in the helper/pyproject.toml file. These files specify version ranges
which should be compatible. The corresponding pubspec.lock and
helper/poetry.lock files contain the exact versions which are currently being
used when building the app.
==== Versioning (important for package maintainers!)
We recommend that this application be bundled with all its dependencies, using
the exact versions specified in the lock files. If this approach isn't viable,
we strongly urge that upper bounds be set on the dependencies in accordance
with the pubspec and pyproject files. For example, the current version depends
on `yubikey-manager >=5, <6`. It will likely not work with versions outside
this range!
=== Building the Yubico Authenticator Helper
Requirements: Python >= 3.8 and Poetry.
The GUI requires a compiled version of Helper to run, which is built from the
sources in helper/ in this repository. This needs to be build prior to running
`flutter build` or `flutter run`, by running `build-helper.sh` (or
`build-helper.bat` on Windows).
NOTE: You will need to re-run the build script if changes have been made to
Helper's code, or if `flutter clean` has been run.
=== Running the app
Before you can build or run the app using the flutter command you need to build
the helper, as described in the previous section!
To start the app, run:
flutter run -d <os>
where <os> is "windows", "macos", "linux", or an attached Android device name.
use `flutter devices` to list available devices.
You can add the `--release` flag to run a release build instead of debug.
Builds of the app will be create under `build/<os>/`.
=== Running tests
This project uses both unit tests and integration tests.
The unit tests can be run with the command:
flutter test
These do not require a YubiKey, and are relatively quick to run.
The integration tests are slower but cover more end-to-end functionality. The
require an attached YubiKey to run, and will make modifications to the data
stored on that YubiKey. For instructions on running these tests, see
link:../integration_tests/README.adoc[these instructions].
=== Packaging for MacOS
See link:MacOS_Packaging.adoc[MacOS Packaging].