tadfisher / pass-otp

A pass extension for managing one-time-password (OTP) tokens
GNU General Public License v3.0
1.26k stars 86 forks source link

Steam Authenticator Not Supported #197

Open CodeBreton opened 4 months ago

CodeBreton commented 4 months ago

I was able to extract the double authentication information from my steam account using the https://github.com/Jessecar96/SteamDesktopAuthenticator software.

I used to be able to put the link otpauth:// on Keepass, which worked fine and generated a Steam-specific authentication code (with 5 symbols like 4H3F9). Now, I've tried to put it back on pass-otp but it generates a basic code (6 digits, like 123456).

I've seen that there are projects to recreate the Steam code generation algorithm that work for me (see https://github.com/geekdada/steam-otp) but is there another way to do it on Pass?

0xphk commented 1 month ago

There was this discussion related to this topic.

Someone implemented a Perl replacement for oathtool, which itself isn't compatible with the steam 'digits=5' option in the URI. The tool Perl otptool instead, understands this URI parameter.

There was a commit in the develop branch which added the new method, though it was quite a ride to get it to work.

First, backup and replace the otp.bash in /usr/lib/password-store/extensions/ with the new v1.1.2 file from commit 0aadd4c

Install the Perl Pass::OTP tool.

For Debian install libpass-otp-perl (I did not test this) For Arch install perl-pass-otp from AUR (tested, works)

Check if installed correctly and which otptool returns the correct path.

Now add your otpauth:// URI to pass BUT replace steam to totp otpauth://steam/... -> otpauth://totp/...

Finally the creation of Steam TOTP secrets works with pass-otp.