Port of TwoStepsAuthenticator to .NET Standard 1.6 Profile

When working with multi-factor authentication, apps like Google Authenticator or Microsoft Authenticator are often used to generate an additional factor.  These generate (time-based) one-time passwords, using algorithms like those described in RFC 6238 and/or RFC 4226.  When you want to implement server-side verification, or you want to implement your own app that generates these OTPs,  you’ll thus have to implement these standards. 

There’s a very useful library by Guillaume Lacasa that does this: TwoStepsAuthenticator.  From the description:

.NET implementation of the TOTP: Time-Based One-Time Password Algorithm and HOTP: HMAC-Based One-Time Password Algorithm RFC 6238 & RFC 4226.  Compatible with Microsoft Authenticator for Windows Phone, and Google Authenticator for Android and iPhone.

You can use this library as well for a client application (if you want to create your own authenticator) or for a server application (add two-step authentication on your asp.net website)

Today I needed a port of this because of a need to target this across a Xamarin & .NET 4.5 project. I figured I wouldn’t be the only with this requirement, so I put it on GitHub.   I ported it to support the .NET Standard 1.6 profile as those libraries can be targeted by .NET Core, .NET, Xamarin, … so if you have a need for this, feel free to use it.   All coding credits go to Guillaume – I simply ported it –, so I’d like to explicitly thank him for his hard work on this!

Happy coding! :-)

 Tweet about this on TwitterShare on LinkedInShare on Facebook