Skip to content

Commit a1a956c

Browse files
author
Roman Golovanov
committed
add .net 8.0 and 10.0 support
1 parent 04530f3 commit a1a956c

3 files changed

Lines changed: 31 additions & 6 deletions

File tree

.github/workflows/build-and-publish.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ jobs:
3434
- name: Setup .NET
3535
uses: actions/setup-dotnet@v5
3636
with:
37-
dotnet-version: 9.0.x
37+
dotnet-version: |
38+
8.0.x
39+
9.0.x
40+
10.0.x
3841
3942
- name: Read package version
4043
id: package_version
@@ -93,6 +96,11 @@ jobs:
9396
name: nuget-packages
9497
path: artifacts/packages
9598

99+
- name: Setup .NET
100+
uses: actions/setup-dotnet@v5
101+
with:
102+
dotnet-version: 10.0.x
103+
96104
- name: NuGet login
97105
id: login
98106
uses: NuGet/login@v1

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# EfCore.EncryptedProperties
22

3-
Property-level encryption for Entity Framework Core 9. Mark the properties that should be protected, configure where keys live, and keep using your entities in a normal EF workflow.
3+
Property-level encryption for Entity Framework Core 8, 9, and 10. Mark the properties that should be protected, configure where keys live, and keep using your entities in a normal EF workflow.
44

55
`EfCore.EncryptedProperties` is aimed at applications that need more than a value converter wrapped around a single AES key. It encrypts individual EF properties before they reach database storage, uses authenticated encryption for the stored payload, and includes a key-chain layer for creating, wrapping, storing, rotating, caching, and preloading data keys.
66

7-
- **Targets:** .NET 9, EF Core 9
7+
- **Targets:** .NET 8/9/10 with matching EF Core 8/9/10 dependency groups
88
- **Use it for:** PII, notes, tokens, small secrets, and values the database should never see in plaintext
99
- **Entity experience:** normal CLR properties for transparent reads, or `EncryptedValue<T>` when you want explicit async decryption
1010
- **Crypto shape:** AES-256-GCM payload encryption, a fresh content-encryption key per encrypted value, AES-GCM key wrapping, and RSA-wrapped key-encryption keys

src/EfCore.EncryptedProperties/EfCore.EncryptedProperties.csproj

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4+
<TargetFramework />
5+
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
46
<RootNamespace>EfCore.EncryptedProperties</RootNamespace>
57
<PackageId>EfCore.EncryptedProperties</PackageId>
68
<Title>EF Core Encrypted Properties</Title>
7-
<Version>1.0.1</Version>
9+
<Version>1.0.2</Version>
810
<Authors>RomanGolovanov</Authors>
911
<Description>Property-level encryption for Entity Framework Core using AES-GCM data encryption keys and RSA-wrapped key encryption keys.</Description>
1012
<PackageTags>entity-framework-core;ef-core;encryption;aes-gcm;key-vault;privacy</PackageTags>
@@ -13,7 +15,7 @@
1315
<RepositoryType>git</RepositoryType>
1416
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
1517
<PackageReadmeFile>README.md</PackageReadmeFile>
16-
<PackageReleaseNotes>Initial public release with transparent encrypted properties, explicit async encrypted values, file/in-memory/Azure Key Vault RSA providers, database/in-memory key chains, and key rotation support.</PackageReleaseNotes>
18+
<PackageReleaseNotes>Add multi-targeted package assets for .NET 8, .NET 9, and .NET 10 with matching EF Core dependency groups.</PackageReleaseNotes>
1719
<PackageOutputPath>$(MSBuildProjectDirectory)/../../artifacts/packages</PackageOutputPath>
1820
<IncludeSymbols>true</IncludeSymbols>
1921
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
@@ -30,10 +32,25 @@
3032
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" />
3133
</ItemGroup>
3234

33-
<ItemGroup>
35+
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
36+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.27" />
37+
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
38+
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.1" />
39+
</ItemGroup>
40+
41+
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
3442
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.16" />
3543
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.16" />
3644
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.16" />
45+
</ItemGroup>
46+
47+
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
48+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.8" />
49+
<PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.8" />
50+
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.8" />
51+
</ItemGroup>
52+
53+
<ItemGroup>
3754
<PackageReference Include="Azure.Security.KeyVault.Keys" Version="4.8.0" />
3855
<PackageReference Include="Azure.Identity" Version="1.17.1" />
3956
</ItemGroup>

0 commit comments

Comments
 (0)