From a7715632e7958910ca14ce6a2ac602e6f4422267 Mon Sep 17 00:00:00 2001 From: Conner Turnbull Date: Thu, 5 Jun 2025 15:25:33 -0400 Subject: [PATCH] Removed SignatureBytes since it had only one usage --- src/Core/Models/Business/BaseLicense.cs | 7 +------ src/Core/Models/Business/ILicense.cs | 1 - .../CloudGetOrganizationLicenseQueryTests.cs | 4 ++-- .../UpdateOrganizationLicenseCommandTests.cs | 5 +++-- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/Core/Models/Business/BaseLicense.cs b/src/Core/Models/Business/BaseLicense.cs index d2b6509444..e1e62a17f2 100644 --- a/src/Core/Models/Business/BaseLicense.cs +++ b/src/Core/Models/Business/BaseLicense.cs @@ -1,6 +1,5 @@ using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; -using System.Text.Json.Serialization; using Bit.Core.Billing.Licenses.Attributes; using Bit.Core.Enums; @@ -48,10 +47,6 @@ public abstract class BaseLicense : ILicense [LicenseIgnore] public string Token { get; set; } - [JsonIgnore] - [LicenseIgnore] - public byte[] SignatureBytes => Convert.FromBase64String(Signature); - public abstract byte[] GetDataBytes(bool forHash = false); public byte[] ComputeHash() @@ -66,7 +61,7 @@ public abstract class BaseLicense : ILicense { using (var rsa = certificate.GetRSAPublicKey()) { - return rsa.VerifyData(GetDataBytes(), SignatureBytes, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); + return rsa.VerifyData(GetDataBytes(), Convert.FromBase64String(Signature), HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); } } diff --git a/src/Core/Models/Business/ILicense.cs b/src/Core/Models/Business/ILicense.cs index d3b72601ec..8d968bee15 100644 --- a/src/Core/Models/Business/ILicense.cs +++ b/src/Core/Models/Business/ILicense.cs @@ -15,7 +15,6 @@ public interface ILicense string Hash { get; set; } string Signature { get; set; } string Token { get; set; } - byte[] SignatureBytes { get; } byte[] GetDataBytes(bool forHash = false); byte[] ComputeHash(); bool VerifySignature(X509Certificate2 certificate); diff --git a/test/Core.Test/OrganizationFeatures/OrganizationLicenses/CloudGetOrganizationLicenseQueryTests.cs b/test/Core.Test/OrganizationFeatures/OrganizationLicenses/CloudGetOrganizationLicenseQueryTests.cs index cc8ab956ca..d416f41883 100644 --- a/test/Core.Test/OrganizationFeatures/OrganizationLicenses/CloudGetOrganizationLicenseQueryTests.cs +++ b/test/Core.Test/OrganizationFeatures/OrganizationLicenses/CloudGetOrganizationLicenseQueryTests.cs @@ -62,7 +62,7 @@ public class CloudGetOrganizationLicenseQueryTests Assert.Equal(LicenseType.Organization, result.LicenseType); Assert.Equal(organization.Id, result.Id); Assert.Equal(installationId, result.InstallationId); - Assert.Equal(licenseSignature, result.SignatureBytes); + Assert.Equal(licenseSignature, Convert.FromBase64String(result.Signature)); Assert.Equal(string.Empty, result.Token); } @@ -111,7 +111,7 @@ public class CloudGetOrganizationLicenseQueryTests Assert.Equal(LicenseType.Organization, result.LicenseType); Assert.Equal(organization.Id, result.Id); Assert.Equal(installationId, result.InstallationId); - Assert.Equal(licenseSignature, result.SignatureBytes); + Assert.Equal(licenseSignature, Convert.FromBase64String(result.Signature)); Assert.Equal(DateTime.UtcNow.AddYears(1).Date, result.Expires!.Value.Date); } } diff --git a/test/Core.Test/OrganizationFeatures/OrganizationLicenses/UpdateOrganizationLicenseCommandTests.cs b/test/Core.Test/OrganizationFeatures/OrganizationLicenses/UpdateOrganizationLicenseCommandTests.cs index 5ad6abd26a..854dd16440 100644 --- a/test/Core.Test/OrganizationFeatures/OrganizationLicenses/UpdateOrganizationLicenseCommandTests.cs +++ b/test/Core.Test/OrganizationFeatures/OrganizationLicenses/UpdateOrganizationLicenseCommandTests.cs @@ -48,6 +48,7 @@ public class UpdateOrganizationLicenseCommandTests license.Version = OrganizationLicense.CurrentLicenseFileVersion; license.InstallationId = globalSettings.Installation.Id; license.LicenseType = LicenseType.Organization; + license.SelfHost = true; sutProvider.GetDependency().VerifyLicense(license).Returns(true); sutProvider.GetDependency() .GetClaimsPrincipalFromLicense(license) @@ -74,7 +75,7 @@ public class UpdateOrganizationLicenseCommandTests await using var fs = File.OpenRead(filePath); var licenseFromFile = await JsonSerializer.DeserializeAsync(fs); - AssertHelper.AssertPropertyEqual(license, licenseFromFile, "SignatureBytes"); + AssertHelper.AssertPropertyEqual(license, licenseFromFile, ""); // Assertion: should have updated and saved the organization // Properties excluded from the comparison below are exceptions to the rule that the Organization mirrors @@ -84,7 +85,7 @@ public class UpdateOrganizationLicenseCommandTests .ReplaceAndUpdateCacheAsync(Arg.Is( org => AssertPropertyEqual(license, org, "Id", "MaxStorageGb", "Issued", "Refresh", "Version", "Trial", "LicenseType", - "Hash", "Signature", "SignatureBytes", "InstallationId", "Expires", + "Hash", "Signature", "InstallationId", "Expires", "ExpirationWithoutGracePeriod", "Token", "LimitCollectionCreationDeletion", "LimitCollectionCreation", "LimitCollectionDeletion", "AllowAdminAccessToAllCollectionItems", "UseOrganizationDomains", "UseAdminSponsoredFamilies") &&