Skip to content

Commit 0a1b1d8

Browse files
authored
Support CSFLE with .NET Framework 4.6.2+ (#2506)
* Support CSFLE with .NET Framework 4.6.2 * Add hcvault * Add netstandard2.1 for CSFLE
1 parent 3a75aa2 commit 0a1b1d8

File tree

11 files changed

+31
-16
lines changed

11 files changed

+31
-16
lines changed

src/Confluent.SchemaRegistry.Encryption.Aws/Confluent.SchemaRegistry.Encryption.Aws.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Title>Confluent.SchemaRegistry.Encryption.Aws</Title>
1717
<AssemblyName>Confluent.SchemaRegistry.Encryption.Aws</AssemblyName>
1818
<VersionPrefix>2.11.0</VersionPrefix>
19-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
19+
<TargetFrameworks>netstandard2.1;net462;net6.0;net8.0</TargetFrameworks>
2020
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2222
<SignAssembly>true</SignAssembly>

src/Confluent.SchemaRegistry.Encryption.Azure/Confluent.SchemaRegistry.Encryption.Azure.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Title>Confluent.SchemaRegistry.Encryption.Azure</Title>
1717
<AssemblyName>Confluent.SchemaRegistry.Encryption.Azure</AssemblyName>
1818
<VersionPrefix>2.11.0</VersionPrefix>
19-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
19+
<TargetFrameworks>netstandard2.1;net462;net6.0;net8.0</TargetFrameworks>
2020
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2222
<SignAssembly>true</SignAssembly>

src/Confluent.SchemaRegistry.Encryption.Gcp/Confluent.SchemaRegistry.Encryption.Gcp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Title>Confluent.SchemaRegistry.Encryption.Gcp</Title>
1717
<AssemblyName>Confluent.SchemaRegistry.Encryption.Gcp</AssemblyName>
1818
<VersionPrefix>2.11.0</VersionPrefix>
19-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
19+
<TargetFrameworks>netstandard2.1;net462;net6.0;net8.0</TargetFrameworks>
2020
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2222
<SignAssembly>true</SignAssembly>

src/Confluent.SchemaRegistry.Encryption.HcVault/Confluent.SchemaRegistry.Encryption.HcVault.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Title>Confluent.SchemaRegistry.Encryption.HcVault</Title>
1717
<AssemblyName>Confluent.SchemaRegistry.Encryption.HcVault</AssemblyName>
1818
<VersionPrefix>2.11.0</VersionPrefix>
19-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
19+
<TargetFrameworks>netstandard2.1;net462;net6.0;net8.0</TargetFrameworks>
2020
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2222
<SignAssembly>true</SignAssembly>

src/Confluent.SchemaRegistry.Encryption.HcVault/HcVaultKmsClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ public HcVaultKmsClient(string kekId, string ns, string tokenId)
3636
{
3737
throw new ArgumentException(string.Format($"key URI must contain a key name"));
3838
}
39-
keyName = uri.Segments[^1];
40-
39+
keyName = uri.Segments[uri.Segments.Length - 1];
40+
4141
var vaultClientSettings = new VaultClientSettings(uri.Scheme + "://" + uri.Authority, authMethod);
4242
if (ns != null)
4343
{

src/Confluent.SchemaRegistry.Encryption/Confluent.SchemaRegistry.Encryption.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Title>Confluent.SchemaRegistry.Encryption</Title>
1717
<AssemblyName>Confluent.SchemaRegistry.Encryption</AssemblyName>
1818
<VersionPrefix>2.11.0</VersionPrefix>
19-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
19+
<TargetFrameworks>netstandard2.1;net462;net6.0;net8.0</TargetFrameworks>
2020
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2222
<SignAssembly>true</SignAssembly>
@@ -27,6 +27,10 @@
2727
<ProjectReference Include="..\Confluent.SchemaRegistry\Confluent.SchemaRegistry.csproj" />
2828
</ItemGroup>
2929

30+
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
31+
<PackageReference Include="Microsoft.Bcl.Cryptography" Version="10.0.0-preview.6.25358.103" />
32+
</ItemGroup>
33+
3034
<ItemGroup>
3135
<PackageReference Include="Google.Protobuf" Version="3.26.1" />
3236
<PackageReference Include="HKDF.Standard" Version="2.0.0" />

src/Confluent.SchemaRegistry.Encryption/Cryptor.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,17 @@ public byte[] DecryptWithAesSiv(byte[] key, byte[] ciphertext)
117117

118118
static byte[] EncryptWithAesGcm(byte[] key, byte[] plaintext)
119119
{
120+
#if NET462
121+
using (var aes = new AesGcm(key, AesGcm.TagByteSizes.MaxSize))
122+
#else
120123
using (var aes = new AesGcm(key))
124+
#endif
121125
{
122126
var nonce = new byte[AesGcm.NonceByteSizes.MaxSize];
123-
RandomNumberGenerator.Fill(nonce);
127+
using (var rng = RandomNumberGenerator.Create())
128+
{
129+
rng.GetBytes(nonce);
130+
}
124131

125132
var tag = new byte[AesGcm.TagByteSizes.MaxSize];
126133
var ciphertext = new byte[plaintext.Length];
@@ -156,7 +163,11 @@ static byte[] DecryptWithAesGcm(byte[] key, byte[] payload)
156163
}
157164
}
158165

166+
#if NET462
167+
using (var aes = new AesGcm(key, AesGcm.TagByteSizes.MaxSize))
168+
#else
159169
using (var aes = new AesGcm(key))
170+
#endif
160171
{
161172
var plaintextBytes = new byte[ciphertext.Length];
162173

src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Title>Confluent.SchemaRegistry.Serdes.Avro</Title>
1717
<AssemblyName>Confluent.SchemaRegistry.Serdes.Avro</AssemblyName>
1818
<VersionPrefix>2.11.0</VersionPrefix>
19-
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
19+
<TargetFrameworks>netstandard2.0;net462;net6.0;net8.0</TargetFrameworks>
2020
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2222
<SignAssembly>true</SignAssembly>
@@ -32,7 +32,7 @@
3232
<ProjectReference Include="..\Confluent.SchemaRegistry\Confluent.SchemaRegistry.csproj" />
3333
</ItemGroup>
3434

35-
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
35+
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'net462'">
3636
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
3737
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
3838
</ItemGroup>

src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Title>Confluent.SchemaRegistry.Serdes.Json</Title>
1717
<AssemblyName>Confluent.SchemaRegistry.Serdes.Json</AssemblyName>
1818
<VersionPrefix>2.11.0</VersionPrefix>
19-
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
19+
<TargetFrameworks>netstandard2.0;net462;net6.0;net8.0</TargetFrameworks>
2020
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2222
<SignAssembly>true</SignAssembly>
@@ -35,7 +35,7 @@
3535
<ProjectReference Include="..\Confluent.SchemaRegistry\Confluent.SchemaRegistry.csproj" />
3636
</ItemGroup>
3737

38-
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
38+
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'net462'">
3939
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
4040
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
4141
</ItemGroup>

src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<Title>Confluent.SchemaRegistry.Serdes.Protobuf</Title>
1818
<AssemblyName>Confluent.SchemaRegistry.Serdes.Protobuf</AssemblyName>
1919
<VersionPrefix>2.11.0</VersionPrefix>
20-
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
20+
<TargetFrameworks>netstandard2.0;net462;net6.0;net8.0</TargetFrameworks>
2121
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2222
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2323
<SignAssembly>true</SignAssembly>
@@ -41,7 +41,7 @@
4141
<ProjectReference Include="..\Confluent.SchemaRegistry\Confluent.SchemaRegistry.csproj" />
4242
</ItemGroup>
4343

44-
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
44+
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'net462'">
4545
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
4646
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
4747
</ItemGroup>

0 commit comments

Comments
 (0)