Skip to content

About

Authenticator App for eduMFA Authentication Server

Resources

Stars

5 stars

Watchers

1 watching

Forks

Repository files navigation

edumfa-authenticator

Authenticator App for eduMFA Authentication Server

The edumfa-authenticator is the official eduMFA's PUSH authentication companion.

The App is to be used with eduMFA, and runs on both Android and iOS. The edumfa-authenticator can also be configured to support PUSH authentication without Firebase.

The App is a fork of pi-authenticator with most features removed to ease usability.

Development

Use Flutter 3.47.7 (bundled Dart 3.13.5). The Flutter version in pubspec.yaml also selects the SDK used by CI. Run flutter pub get after installing this version.

We use the Flutter framework for developing our application. This enables us to use a single code base for both Android and iOS, for development itself we use Android Studio with the official Flutter plugin.

The app can be build for android by running flutter build apk [--release | --debug] at the root of the project, for building the iOS version the command is flutter build ipa. Building for iOS requires to run this on an Apple device. For testing purposes the application can be run in release mode by running flutter run --release.

For serializing the model of this application (i.e., the tokens) we use generated files. If the model was changed, run the script update_serialization.sh to update the generated files.

Secure storage upgrades

The app uses flutter_secure_storage 11 with the existing default storage namespace and encryption algorithms. Android API 24 or newer is required, which is already the minimum for the configured Flutter SDK.

Before releasing this version to Android users on flutter_secure_storage 9 or earlier, release an intermediate app version using 10.x and have users open it to migrate their stored tokens. Installing a v10-based app without opening it does not migrate data. Version 11 removed the legacy ciphers and EncryptedSharedPreferences backend, so users who skip the migration cannot have their old tokens decrypted by v11. See the upstream migration notes.

The repository checks upgrade status before loading tokens and shows the existing decryption recovery dialog when legacy data is unreadable. Automatic deletion on Android storage errors is disabled; deletion requires the user's confirmation in that dialog. Native upgrade preservation still needs testing with a v10 installation containing tokens before publishing.

Tests

Tests are located under test. These can be run from within Android Studio, if the necessary plugins are installed or directly by running flutter test at the root of the project. For additional information please view the official Flutter documentation.

Unit and widget tests

Contribution

If you want to contribute to this repository you can view the current todos under the issues tab. Ideas and pull requests are much welcome.

For setting up the development environment please visit the official get started guide.

Translations

If you want to help making this app more accessible for others you can translate this app into your native language.

Two files must be translated for this:

The first one is lib/l10n/app_en.arb that contains the (default) english translation. For translating the file to french for example, this file must be copied and the suffix must be changed accordingly:app_fr.arb. The file contains translations in the form:

{
  "otpValueCopiedMessage": "Password \"{otpValue}\" copied to clipboard.",
  "@otpValueCopiedMessage": {
    "description": "Tells the user that the otp value was copied to the clipboard.",
    "type": "text",
    "placeholders": {
      "otpValue": {
        "example": "055374"
      }
    }
  }
}

where the part Password \"{otpValue}\" copied to clipboard. must be translated. Special signs such as \" and parameters such as {otpValue} must not be changed but can be rearranged to fit the translation.

About

Authenticator App for eduMFA Authentication Server

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages