From c412242c677e814697f5265339ab3b70f52aa35c Mon Sep 17 00:00:00 2001 From: Jonas Nyrup Date: Sun, 7 Jun 2026 18:02:23 +0200 Subject: [PATCH 1/2] Improve `EnclaveDiffieHellmanInfo.Size` Parenthesize `??` as `+` binds stronger --- .../Data/SqlClient/AlwaysEncryptedEnclaveProviderUtils.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AlwaysEncryptedEnclaveProviderUtils.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AlwaysEncryptedEnclaveProviderUtils.cs index ff84ab3310..391dcdfd35 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AlwaysEncryptedEnclaveProviderUtils.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AlwaysEncryptedEnclaveProviderUtils.cs @@ -18,7 +18,7 @@ public EnclavePublicKey(byte[] payload) internal class EnclaveDiffieHellmanInfo { - public int Size => sizeof(int) + sizeof(int) + PublicKey?.Length ?? 0 + PublicKeySignature?.Length ?? 0; + public int Size => sizeof(int) + sizeof(int) + (PublicKey?.Length ?? 0) + (PublicKeySignature?.Length ?? 0); public byte[] PublicKey { get; private set; } From eceb1d326b685fcf3fafa912292883af50695184 Mon Sep 17 00:00:00 2001 From: Jonas Nyrup Date: Tue, 9 Jun 2026 21:24:47 +0200 Subject: [PATCH 2/2] Uncomment Debug.Asserts --- .../Data/SqlClient/AzureAttestationBasedEnclaveProvider.cs | 3 +-- .../Data/SqlClient/VirtualSecureModeEnclaveProvider.cs | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AzureAttestationBasedEnclaveProvider.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AzureAttestationBasedEnclaveProvider.cs index 880ab081f0..6d26429122 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AzureAttestationBasedEnclaveProvider.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/AzureAttestationBasedEnclaveProvider.cs @@ -208,8 +208,7 @@ public AzureAttestationInfo(byte[] attestationInfo) EnclaveDHInfo = new EnclaveDiffieHellmanInfo(attestationInfo, offset); offset += EnclaveDHInfo.Size; - // TODO(GH-3604): Fix this failing assertion. - // Debug.Assert(offset == attestationInfo.Length); + Debug.Assert(offset == attestationInfo.Length); } catch (Exception exception) { diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/VirtualSecureModeEnclaveProvider.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/VirtualSecureModeEnclaveProvider.cs index dfd5fc65a4..aa7e17be03 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/VirtualSecureModeEnclaveProvider.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/VirtualSecureModeEnclaveProvider.cs @@ -153,8 +153,7 @@ public AttestationInfo(byte[] attestationInfo) EnclaveDHInfo = new EnclaveDiffieHellmanInfo(attestationInfo, offset); offset += Convert.ToInt32(EnclaveDHInfo.Size); - // TODO(GH-3604): Fix this failing assertion. - // Debug.Assert(offset == attestationInfo.Length, $"{offset} == {attestationInfo.Length}"); + Debug.Assert(offset == attestationInfo.Length, $"{offset} == {attestationInfo.Length}"); } }