Fork of the Tray TOTP Plugin for KeePass2.
C#
Clone or download
robinvanpoppel Fixes #22
* Typo in optional
* Set a default TOTP Format.
Latest commit ffcce34 Jun 18, 2018
Permalink
Failed to load latest commit information.
Libraries First Working Beta Jan 30, 2016
Properties Bump version to 0.9.4 Jun 16, 2018
Resources Initial Commit Sep 8, 2015
.gitignore Initial commit Sep 8, 2015
FormAbout.Designer.cs Initial Commit Sep 8, 2015
FormAbout.cs Initial Commit Sep 8, 2015
FormAbout.resx Initial Commit Sep 8, 2015
FormAbout_Localization.Designer.cs Initial Commit Sep 8, 2015
FormAbout_Localization.resx Initial Commit Sep 8, 2015
FormHelp.Designer.cs Initial Commit Sep 8, 2015
FormHelp.cs Initial Commit Sep 8, 2015
FormHelp.resx Initial Commit Sep 8, 2015
FormHelp_Localization.Designer.cs Initial Commit Sep 8, 2015
FormHelp_Localization.resx Initial Commit Sep 8, 2015
FormSettings.Designer.cs Initial Commit Sep 8, 2015
FormSettings.cs Refactor needed after spliting Totp_Client.cs Sep 15, 2015
FormSettings.resx Initial Commit Sep 8, 2015
FormSettings_Localization.Designer.cs Initial Commit Sep 8, 2015
FormSettings_Localization.resx Initial Commit Sep 8, 2015
FormTimeCorrection.Designer.cs Initial Commit Sep 8, 2015
FormTimeCorrection.cs Refactor needed after spliting Totp_Client.cs Sep 15, 2015
FormTimeCorrection.resx Initial Commit Sep 8, 2015
FormTimeCorrection_Localization.Designer.cs Initial Commit Sep 8, 2015
FormTimeCorrection_Localization.resx Initial Commit Sep 8, 2015
KeeTrayTOTP.csproj Display QR code in a separate window Jun 14, 2018
KeeTrayTOTP.sln Refactor needed after spliting Totp_Client.cs Sep 15, 2015
LICENSE Initial commit Sep 8, 2015
QRCode.cs Add MIT license to files taken from QRCoder Jun 14, 2018
QRCodeData.cs Add MIT license to files taken from QRCoder Jun 14, 2018
QRCodeGenerator.cs Add MIT license to files taken from QRCoder Jun 14, 2018
README.md minor spelling tweaks Aug 2, 2017
Setup.Designer.cs First Working Beta Jan 30, 2016
Setup.cs First Working Beta Jan 30, 2016
SetupTOTP.Designer.cs Fixes #22 Jun 18, 2018
SetupTOTP.cs First Working Beta Jan 30, 2016
SetupTOTP.resx First Working Beta Jan 30, 2016
SetupTOTP_Localization.Designer.cs First Working Beta Jan 30, 2016
SetupTOTP_Localization.resx First Working Beta Jan 30, 2016
ShowQR.Designer.cs Display QR code in a separate window Jun 14, 2018
ShowQR.cs Display QR code in a separate window Jun 14, 2018
ShowQR.resx Display QR code in a separate window Jun 14, 2018
Stream4Methods.cs Add MIT license to files taken from QRCoder Jun 14, 2018
TOTP.ico Initial Commit Sep 8, 2015
TrayTOTP_CustomColumn.cs [Fix] TOTP Column display Jan 30, 2016
TrayTOTP_CustomColumn_Localization.Designer.cs Initial Commit Sep 8, 2015
TrayTOTP_CustomColumn_Localization.resx Initial Commit Sep 8, 2015
TrayTOTP_Extensions.cs Initial Commit Sep 8, 2015
TrayTOTP_Extensions_Localization.Designer.cs Initial Commit Sep 8, 2015
TrayTOTP_Extensions_Localization.resx Initial Commit Sep 8, 2015
TrayTOTP_Plugin.cs Use localizable resources for menu text Jun 14, 2018
TrayTOTP_Plugin_Localization.Designer.cs Use localizable resources for menu text Jun 14, 2018
TrayTOTP_Plugin_Localization.resx Use localizable resources for menu text Jun 14, 2018
TrayTOTP_TimeCorrectionCollection.cs First Working Beta Jan 30, 2016
TrayTOTP_TimeCorrectionCollection_Localization.Designer.cs Initial Commit Sep 8, 2015
TrayTOTP_TimeCorrectionCollection_Localization.resx Initial Commit Sep 8, 2015
version_manifest.txt Bump version to 0.9.4 Jun 16, 2018

README.md

KeeTrayTOTP

Fork of the Tray TOTP Plugin for KeePass2.

Original work developed by the Morphlin the source code and plugin can be found at http://sourceforge.net/projects/traytotp-kp2/

Most of consumer TOTPs use the RFC6238 output style, sadly some companies (eg.: Valve) decided not to adhere to the standard and instead build their own format.

In the case of Steam Mobile Authenticator the new output format was reverse engineered by various developers, and alternatives to it started popping up, most do pretty good job and can by themselves recover the TOTP secret (which is no easy task given Valve's implementation).

This plugin is for those who already use Tray TOTP Plugin, but also want to use with Valve's Steam.

Dependencies

So, why do this?

Variou reasons, first and most important: I don't want to use another application only for steam! KeePass and Tray TOTP (with some modifications) are more than capable enough to handle this task.

Second: for education, working with another developer's code , specially in a language you're not familiar with, its a difficult task but not uncommon situation.

Third: I wanted only to make a slightly modification, then I needed to make a new setting options, change the way plugin generate in order ta add another step, some rewriting later, too much was changed for simply patch, so I decided to create my own fork and made more changes

Steam TOTP Secret?!

There is no easy way to get it, there are various complications. Since Steam doesn't setup like most services (using QR Codes), the easiest way is to have through a rooted android phone.

Another way would be using totp generators that support Steam like Windows Authenticator and Steam Desktop Authenticator, as far as I know, they emulate the mobile app API calls in order to generate a new TOTP Secret, one could use them to obtain the secret (never tried though), also this have the drawback of disabling the mobile app.

Obtaining TOTP secret from a rooted Android phone (by DarkDaskin)

You need a rooted Android phone with a file manager application and Steam installed. Follow this instruction to set up Steam Guard if you did not do this before.

Then open the file manager and navigate to the /data/data/com.valvesoftware.android.steam.community/files/ directory (requires root access). You will find a file named Steamguard-[your Steam ID] there, open it as a text file. Inside the file look for the following text: otpauth:\/\/totp\/Steam:[your Steam login]?secret=[TOTP secret]&issuer=Steam. Copy the value of [TOTP secret] info the TOTP Seed field of the TOTP Setup Wizard.

TODO: Tutorial how to get Steam TOTP secret other ways

What's next?

My first objective is complete: I made a working prototype. But I'm not happy with the code, I want to rebuild this thing from the ground if needed, I'm by no means criticizing the original work, but it's little complex for me and rebuilding it may help to better understanding it. Also I'm open to suggestion, issues, new features, etc.

Thanks to Dominik Reichl for KeePass software and to Morphlin for the original plugin

English isn't my native language, so please excuse any mistakes.