From 1b30a279903277ffcf8c3629b548d4e4c4bac9bc Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 13 Jan 2017 21:34:54 -0500 Subject: [PATCH] Replace OtpSharp with Otp.NET for net core support --- src/Core/Identity/AuthenticatorTokenProvider.cs | 5 ++--- src/Core/Services/Implementations/UserService.cs | 5 ++--- src/Core/project.json | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Core/Identity/AuthenticatorTokenProvider.cs b/src/Core/Identity/AuthenticatorTokenProvider.cs index dbbb1ce4ab..90102b813c 100644 --- a/src/Core/Identity/AuthenticatorTokenProvider.cs +++ b/src/Core/Identity/AuthenticatorTokenProvider.cs @@ -1,10 +1,9 @@ using System; using System.Threading.Tasks; -using Base32; using Microsoft.AspNetCore.Identity; using Bit.Core.Domains; using Bit.Core.Enums; -using OtpSharp; +using OtpNet; namespace Bit.Core.Identity { @@ -32,7 +31,7 @@ namespace Bit.Core.Identity public Task ValidateAsync(string purpose, string token, UserManager manager, User user) { - var otp = new Totp(Base32Encoder.Decode(user.AuthenticatorKey)); + var otp = new Totp(Base32Encoding.ToBytes(user.AuthenticatorKey)); long timeStepMatched; var valid = otp.VerifyTotp(token, out timeStepMatched, new VerificationWindow(2, 2)); diff --git a/src/Core/Services/Implementations/UserService.cs b/src/Core/Services/Implementations/UserService.cs index cf7857d06d..a20e2043de 100644 --- a/src/Core/Services/Implementations/UserService.cs +++ b/src/Core/Services/Implementations/UserService.cs @@ -6,11 +6,10 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Bit.Core.Domains; using Bit.Core.Repositories; -using OtpSharp; -using Base32; using System.Linq; using Microsoft.AspNetCore.Builder; using Bit.Core.Enums; +using OtpNet; namespace Bit.Core.Services { @@ -252,7 +251,7 @@ namespace Bit.Core.Services { case Enums.TwoFactorProviderType.Authenticator: var key = KeyGeneration.GenerateRandomKey(20); - user.AuthenticatorKey = Base32Encoder.Encode(key); + user.AuthenticatorKey = Base32Encoding.ToString(key); break; default: throw new ArgumentException(nameof(provider)); diff --git a/src/Core/project.json b/src/Core/project.json index 7d6c38e7e5..a2d761a7d6 100644 --- a/src/Core/project.json +++ b/src/Core/project.json @@ -2,7 +2,6 @@ "dependencies": { "Microsoft.AspNetCore.Identity": "1.1.0", "Microsoft.AspNetCore.Authentication.JwtBearer": "1.1.0", - "OtpSharp": "1.3.0.4", "Microsoft.AspNetCore.Mvc.Abstractions": "1.1.0", "Dapper": "1.50.2", "DataTableProxy": "1.2.0", @@ -10,7 +9,8 @@ "PushSharp": "4.0.10", "WindowsAzure.Storage": "8.0.0", "IdentityServer4": "1.0.1", - "IdentityServer4.AccessTokenValidation": "1.0.2" + "IdentityServer4.AccessTokenValidation": "1.0.2", + "Otp.NET": "1.0.0" }, "frameworks": {