Skip to content

Commit 46c1a3c

Browse files
authored
[PM-38502] .NET 10 upgrade (#274)
* .NET 10 upgrade * migrated deprecated X509Certificate2
1 parent c0e0cc1 commit 46c1a3c

10 files changed

Lines changed: 20 additions & 20 deletions

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22

33
<PropertyGroup>
4-
<TargetFramework>net8.0</TargetFramework>
4+
<TargetFramework>net10.0</TargetFramework>
55

66
<Version>2025.11.0</Version>
77
</PropertyGroup>

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "8.0.100",
3+
"version": "10.0.100",
44
"rollForward": "latestFeature"
55
}
66
}

src/KeyConnector/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble
1+
FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble
22

33
LABEL com.bitwarden.product="bitwarden"
44

src/KeyConnector/KeyConnector.csproj

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@
1515
<PackageReference Include="Azure.Storage.Blobs" Version="[12.19.1]"/>
1616
<PackageReference Include="Google.Cloud.Kms.V1" Version="[3.7.0]"/>
1717
<PackageReference Include="JsonFlatFileDataStore" Version="[2.4.2]"/>
18-
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[8.0.27]"/>
19-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="[8.0.11]">
18+
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[10.0.8]"/>
19+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="[8.0.27]">
2020
<PrivateAssets>all</PrivateAssets>
2121
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2222
</PackageReference>
23-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[8.0.11]"/>
24-
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="[8.0.2]"/>
25-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="[8.0.2]"/>
23+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[8.0.27]"/>
24+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="[8.0.27]"/>
25+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="[8.0.27]"/>
2626
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="[8.0.11]"/>
2727
<PackageReference Include="Pkcs11Interop" Version="[5.1.2]"/>
28-
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="[8.0.1]"/>
29-
<PackageReference Include="Serilog.AspNetCore" Version="[8.0.1]"/>
30-
<PackageReference Include="Serilog.Settings.Configuration" Version="[8.0.0]"/>
31-
<PackageReference Include="Serilog.Sinks.Console" Version="[5.0.1]"/>
32-
<PackageReference Include="Serilog.Sinks.File" Version="[5.0.0]"/>
28+
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="[8.0.3]"/>
29+
<PackageReference Include="Serilog.AspNetCore" Version="[10.0.0]"/>
30+
<PackageReference Include="Serilog.Settings.Configuration" Version="[10.0.0]"/>
31+
<PackageReference Include="Serilog.Sinks.Console" Version="[6.1.1]"/>
32+
<PackageReference Include="Serilog.Sinks.File" Version="[7.0.0]"/>
3333
<PackageReference Include="VaultSharp" Version="[1.7.0]"/>
3434
</ItemGroup>
3535

src/KeyConnector/Services/CertificateProviders/AzureKeyVaultCertificateProviderService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public async Task<X509Certificate2> GetCertificateAsync()
3939
StringComparison.InvariantCultureIgnoreCase))
4040
{
4141
var pfxBytes = Convert.FromBase64String(secret.Value);
42-
return new X509Certificate2(pfxBytes);
42+
return X509CertificateLoader.LoadPkcs12(pfxBytes, null);
4343
}
4444
}
4545
return null;

src/KeyConnector/Services/CertificateProviders/AzureStorageCertificateProviderService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public async Task<X509Certificate2> GetCertificateAsync()
2929
{
3030
using var stream = new MemoryStream();
3131
await blobClient.DownloadToAsync(stream, CancellationToken.None);
32-
return new X509Certificate2(stream.ToArray(), _settings.Certificate.AzureStorageFilePassword);
32+
return X509CertificateLoader.LoadPkcs12(stream.ToArray(), _settings.Certificate.AzureStorageFilePassword);
3333
}
3434
return null;
3535
}

src/KeyConnector/Services/CertificateProviders/FilesystemCertificateProviderService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public FilesystemCertificateProviderService(KeyConnectorSettings settings)
1414

1515
public Task<X509Certificate2> GetCertificateAsync()
1616
{
17-
var cert = new X509Certificate2(_settings.Certificate.FilesystemPath,
17+
var cert = X509CertificateLoader.LoadPkcs12FromFile(_settings.Certificate.FilesystemPath,
1818
_settings.Certificate.FilesystemPassword);
1919
return Task.FromResult(cert);
2020
}

src/KeyConnector/Services/CertificateProviders/HashicorpVaultCertificateProviderService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public async Task<X509Certificate2> GetCertificateAsync()
3636
if (secret?.Data?.Data?.ContainsKey(_settings.Certificate.VaultSecretDataKey) ?? false)
3737
{
3838
var certData = secret.Data.Data[_settings.Certificate.VaultSecretDataKey] as string;
39-
return new X509Certificate2(Convert.FromBase64String(certData),
39+
return X509CertificateLoader.LoadPkcs12(Convert.FromBase64String(certData),
4040
_settings.Certificate.VaultSecretFilePassword);
4141
}
4242
else

test/KeyConnector.Tests/KeyConnector.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<PrivateAssets>all</PrivateAssets>
1414
</PackageReference>
1515
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="[18.6.0]" />
16-
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[8.0.27]" />
17-
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="[8.0.0]" />
16+
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[10.0.8]" />
17+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="[10.0.8]" />
1818
<PackageReference Include="NSubstitute" Version="[5.3.0]" />
1919
<PackageReference Include="Testcontainers.MariaDb" Version="[4.12.0]" />
2020
<PackageReference Include="Testcontainers.MsSql" Version="[4.12.0]" />

test/KeyConnector.Tests/Services/CertificateProviders/StoreCertificateProviderServiceTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class StoreCertificateProviderServiceTests
1616
[Fact]
1717
public async Task GetCertificateAsync_ReturnsCertificate_WhenThumbprintExists()
1818
{
19-
var cert = new X509Certificate2(TestCertificateData.PfxBytes, TestCertificateData.Password);
19+
var cert = X509CertificateLoader.LoadPkcs12(TestCertificateData.PfxBytes, TestCertificateData.Password);
2020
var collection = new X509Certificate2Collection(cert);
2121
_storeFactory.FindByThumbprint(cert.Thumbprint).Returns(collection);
2222
var sut = new StoreCertificateProviderService(

0 commit comments

Comments
 (0)