Command Line Configuration Utility for Molto2 - molto2-config.exe

This Windows command line utility allows you to configure and manage the Molto2 device, which is created using py2exe, a utility that packages your Python script molto2.py and its dependencies into a standalone Windows executable. This utility empowers you to customize your Molto2 setup to suit your specific needs. Do not forget that there is also a Windows app (with a GUI) available.


Command Line Configuration Utility for Molto2 - molto2-config.exe

Using the Configuration Utility

Explore the command line options available for the Molto2 Configuration Utility:

usage: molto2-config.exe [-h] [--key KEY] [--keyascii KEYASCII] [--profile PROFILE] [--title TITLE] [--seed SEED] [--seedbase32 SEEDBASE32] [--setkey SETKEY] [--setkeyascii SETKEYASCII] [--config]
                     [--display_timeout DISPLAY_TIMEOUT] [--algorithm ALGORITHM] [--timestep TIMESTEP] [--factoryreset]
    
optional arguments:
  -h, --help            show this help message and exit
  --key KEY             Customer key in hex format. Default will be used if not supplied.
  --keyascii KEYASCII   Customer key in ascii format. Default will be used if not supplied.
  --profile PROFILE     Profile number, from 0 to 49 (Molto2) or from 0 to 99 (Molto2 v2)
  --title TITLE         Profile title, 12 chars max
  --seed SEED           Seed to write, in hex format
  --seedbase32 SEEDBASE32
                        Seed to write, in base32 format
  --setkey SETKEY       Set the new customer key, providing the key in hex. Please note that setting a new key requires confirmation on the device (physical button press)
  --setkeyascii SETKEYASCII
                        Set the new customer key, providing the key in ASCII. Please note that setting a new key requires confirmation on the device (physical button press)
  --config              If the config parameter is set, the config parameters become required.
  --display_timeout DISPLAY_TIMEOUT
                        Mandatory if --config is set as 1. Possible values: 0=15s, 1=30s, 2=60s, 3=120s
  --algorithm ALGORITHM
                        Mandatory if --config is set as 1. Possible values: 1=SHA1 HMAC or 2=SHA256 HMAC hashing algorithm
  --timestep TIMESTEP   Mandatory if --config is set as 1. Possible values: 1=30 seconds or 2=60 seconds
  --factoryreset        Resets the device to factory settings and clears all data. Please note that this action requires confirmation on the device (physical button press)

  --synctime            Will update time on the given profile. Should be used together with --profile parameter
  --synctimeall         Will update time on all profiles.

  --lock                Lock device screen (only for v2.1 and higher)
  --unlock              Unlock device screen (only for v2.1 and higher)

    
The following example sets a new hex seed (`--seed DEADBEEFDEADBEEF`) and a configuration (`--config`) of TOTP step of 30 seconds (`--timestep 1`), the HMAC algorithm of SHA1 (`--algorithm 1`), title of 'Google' (`--title Google`) and a display sleep timeout of 30 seconds (`--display_timeout 2`) for profile №2 (`--profile 2`):
molto2-config.exe --config --profile 2 --seed DEADBEEFDEADBEEF --timestep 1 --algorithm 1 --display_timeout 2

Download the Configuration Utility

Get started by downloading the Molto2 Configuration Utility:




If you want to explore the source code behind Molto2, please refer to the Python script  molto2.py.


FAQ

Q: How can I remove a seed?

There is no API for removing a seed, but you can simply overwrite with an empty one (32 x "0" characters in hex): 
i.e. ./molto2-config.exe --profile 2 --seed 00000000000000000000000000000000 will overwrite the seed of profile #2 with an empty string. The device will show the profile #2 as "No Seed".


Q: Do I have to sync the time clock of each TOTP profile separately, or do they use the same hardware clock?
A: Each profile has its own independent clock, allowing you to set and adjust time settings individually for each one. For example, while most TOTP implementations use UTC timezone, there may be cases when a particular service has implemented a different time zone. For this reason, you can set the time of that particular profile differently from the rest.

However, if you want to synchronize the clocks for all TOTP profiles simultaneously, you can conveniently use the --synctimeall parameter. This parameter ensures that the time synchronization process is applied to all profiles at once, simplifying the management of time settings across your TOTP profiles.