hyperhotp
—
program hyperFIDO USB security key HOTP feature
hyperhotp |
(check | help |
reset ) |
hyperhotp |
program [-6 |
-8 ] serial_number
hex_seed |
The hyperhotp
utility programs the HOTP
feature of hyperFIDO USB security keys. The following commands are
implemented:
check
- Check if the security key has already been programmed with a token. If
yes, print the serial number of the token.
help
- Print a short help text.
reset
- Clear the token programmed into the security key. To confirm the process,
press the button on the security key when it is flashing.
program
[-6
|
-8
]
serial_number hex_seed
- Program the security key with a token generated from the given
40 digit hexadecimal hex_seed. The token will
have the given 8 digit decimal serial_number.
To confirm the process, press the button on the security key when it is
flashing. The options
-6
and
-8
select 6-byte or 8-byte tokens respectively
with 6-byte tokens being the default.
The hyperhotp
utility exits 0 on
success, and >0 if an error occurs.
- Failed to reset device: Device reported failure
- In a
reset
or program
operation, you did not press the button to confirm the operation. Restart
the operation and press the button when it flashes.
- Failed to program device: Device is already programmed.
- The security key has already been programmed with a token. Erase the token
by issuing a
reset
command to reset the device,
then retry the program
command.
- Device could not be found, perhaps it's not plugged in?
- Failed to claim device from kernel
- Plug the device in. If it is already plugged in, try wiggling the device
or plug it into a different port. Make sure
hyperhotp
has permissions to access the device.
Elevate privileges or adjust
udev(7)
rules if necessary.
- Failed to send ping
- Failed to check whether key is programmed
- Failed to reset device: Device reported successful reset, but device is
not actually reset
- Either your security key or the
hyperhotp
program
is defective. Please report this error to the author.
This is an open re-implementation of the programming software for
the HOTP feature of the hyperFIDO security keys. It is based on
reverse-engineering the Windows-based programmer available on
Hypersecu's
website.
While I have tested this with my key, I do not know how well it
works for other models or even other devices of the same model.
Also, while this only issues FIDO commands to the device which
have no relation to managing U2F credentials, I cannot claim that this will
not accidentally wipe your keys or brick your device. As always, no
warranty.
Please reports bugs on
Github. If
possible, recompile with cmake
-DCMAKE_BUILD_TYPE=Debug
to have
hyperhotp
generate a full trace of the communication
with the security key.