From a713ba8040f30c1ea7615d54bc5b7023f691baed Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Wed, 12 Mar 2025 15:20:20 +0100 Subject: [PATCH] Make registration work --- .../Controllers/OpaqueKeyExchangeController.cs | 17 +++++++++++------ .../Request/Opaque/RegisterFinishRequest.cs | 2 +- .../Request/Opaque/RegisterStartRequest.cs | 5 ++++- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Api/Auth/Controllers/OpaqueKeyExchangeController.cs b/src/Api/Auth/Controllers/OpaqueKeyExchangeController.cs index 8c9697f04b..4466cf2968 100644 --- a/src/Api/Auth/Controllers/OpaqueKeyExchangeController.cs +++ b/src/Api/Auth/Controllers/OpaqueKeyExchangeController.cs @@ -2,11 +2,13 @@ using Bit.Api.Auth.Models.Response.Opaque; using Bit.Core.Services; using Bitwarden.OPAQUE; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Bit.Api.Auth.Controllers; [Route("opaque")] +[Authorize("Web")] public class OpaqueKeyExchangeController : Controller { private readonly IUserService _userService; @@ -25,8 +27,8 @@ public class OpaqueKeyExchangeController : Controller _cipherConfiguration.KSF = new Argon2id(3, 256 * 1024, 4); } - [HttpGet("~/opaque/start-registration")] - public async Task StartRegistration(RegisterStartRequest request) + [HttpPost("~/opaque/start-registration")] + public async Task StartRegistration([FromBody] RegisterStartRequest request) { var user = await _userService.GetUserByPrincipalAsync(User); var registrationRequest = _bitwardenOpaque.StartServerRegistration(_cipherConfiguration, System.Convert.FromBase64String(request.ClientRegistrationStartResult), user.Id.ToString()); @@ -39,11 +41,14 @@ public class OpaqueKeyExchangeController : Controller } - [HttpGet("~/opaque/finish-registration")] - public async Task FinishRegistration(RegisterFinishRequest request) + [HttpPost("~/opaque/finish-registration")] + public async Task FinishRegistration([FromBody] RegisterFinishRequest request) { - var registrationFinish = _bitwardenOpaque.FinishServerRegistration(_cipherConfiguration, System.Convert.FromBase64String(request.ClientRegisterFinishResult)); - Console.WriteLine("Registration Finish: " + registrationFinish); + await Task.Run(() => + { + var registrationFinish = _bitwardenOpaque.FinishServerRegistration(_cipherConfiguration, System.Convert.FromBase64String(request.ClientRegistrationFinishResult)); + Console.WriteLine("Registration Finish: " + registrationFinish); + }); return "Registration Finish"; } diff --git a/src/Api/Auth/Models/Request/Opaque/RegisterFinishRequest.cs b/src/Api/Auth/Models/Request/Opaque/RegisterFinishRequest.cs index b0933f5f20..def25c7fc0 100644 --- a/src/Api/Auth/Models/Request/Opaque/RegisterFinishRequest.cs +++ b/src/Api/Auth/Models/Request/Opaque/RegisterFinishRequest.cs @@ -2,7 +2,7 @@ public class RegisterFinishRequest { - public String ClientRegisterFinishResult { get; set; } + public String ClientRegistrationFinishResult { get; set; } public Guid SessionId { get; set; } } diff --git a/src/Api/Auth/Models/Request/Opaque/RegisterStartRequest.cs b/src/Api/Auth/Models/Request/Opaque/RegisterStartRequest.cs index 8115ee7eef..6b9da77220 100644 --- a/src/Api/Auth/Models/Request/Opaque/RegisterStartRequest.cs +++ b/src/Api/Auth/Models/Request/Opaque/RegisterStartRequest.cs @@ -1,9 +1,12 @@ -using Bitwarden.OPAQUE; +using System.ComponentModel.DataAnnotations; +using Bitwarden.OPAQUE; namespace Bit.Api.Auth.Models.Request.Opaque; public class RegisterStartRequest { + [Required] public String ClientRegistrationStartResult { get; set; } + [Required] public CipherConfiguration CipherConfiguration { get; set; } }