From f15dcdba5e78fb0d75033dc4935394c0e7fae605 Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Tue, 17 Jun 2025 20:07:24 +0200 Subject: [PATCH] Apply fixes --- .../Models/Requests/SignatureKeyPairRequestModel.cs | 13 ++++++++++--- .../Response/SignatureKeyPairResponseModel.cs | 4 ++-- .../Repositories/UserSignatureKeyPairRepository.cs | 6 +++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Api/KeyManagement/Models/Requests/SignatureKeyPairRequestModel.cs b/src/Api/KeyManagement/Models/Requests/SignatureKeyPairRequestModel.cs index ce2d73624b..b13ec0356c 100644 --- a/src/Api/KeyManagement/Models/Requests/SignatureKeyPairRequestModel.cs +++ b/src/Api/KeyManagement/Models/Requests/SignatureKeyPairRequestModel.cs @@ -1,5 +1,4 @@ #nullable enable -using Bit.Core.KeyManagement.Enums; using Bit.Core.KeyManagement.Models.Data; using Bit.Core.Utilities; @@ -7,14 +6,22 @@ namespace Bit.Api.KeyManagement.Models.Requests; public class SignatureKeyPairRequestModel { - public required SignatureAlgorithm SignatureAlgorithm { get; set; } + public required string SignatureAlgorithm { get; set; } [EncryptedString] public required string WrappedSigningKey { get; set; } public required string VerifyingKey { get; set; } public SignatureKeyPairData ToSignatureKeyPairData() { + if (SignatureAlgorithm != "ed25519") + { + throw new ArgumentException( + $"Unsupported signature algorithm: {SignatureAlgorithm}" + ); + } + var algorithm = Core.KeyManagement.Enums.SignatureAlgorithm.Ed25519; + return new SignatureKeyPairData( - SignatureAlgorithm, + algorithm, WrappedSigningKey, VerifyingKey ); diff --git a/src/Api/KeyManagement/Models/Response/SignatureKeyPairResponseModel.cs b/src/Api/KeyManagement/Models/Response/SignatureKeyPairResponseModel.cs index 395f481abd..28c93398e9 100644 --- a/src/Api/KeyManagement/Models/Response/SignatureKeyPairResponseModel.cs +++ b/src/Api/KeyManagement/Models/Response/SignatureKeyPairResponseModel.cs @@ -8,8 +8,8 @@ namespace Bit.Api.KeyManagement.Models.Response; public class SignatureKeyPairResponseModel : ResponseModel { - public required string WrappedSigningKey; - public required string VerifyingKey; + public required string WrappedSigningKey { get; set; } + public required string VerifyingKey { get; set; } [System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute] public SignatureKeyPairResponseModel(SignatureKeyPairData signatureKeyPair) diff --git a/src/Infrastructure.Dapper/KeyManagement/Repositories/UserSignatureKeyPairRepository.cs b/src/Infrastructure.Dapper/KeyManagement/Repositories/UserSignatureKeyPairRepository.cs index 5e7353f526..fda64ed550 100644 --- a/src/Infrastructure.Dapper/KeyManagement/Repositories/UserSignatureKeyPairRepository.cs +++ b/src/Infrastructure.Dapper/KeyManagement/Repositories/UserSignatureKeyPairRepository.cs @@ -28,13 +28,13 @@ public class UserSignatureKeyPairRepository : Repository( + return (await connection.QuerySingleOrDefaultAsync( "[dbo].[UserSignatureKeyPair_ReadByUserId]", new { UserId = userId }, - commandType: CommandType.StoredProcedure); + commandType: CommandType.StoredProcedure))?.ToSignatureKeyPairData(); } } @@ -48,7 +48,7 @@ public class UserSignatureKeyPairRepository : Repository