diff --git a/sign.snk b/sign.snk new file mode 100644 index 00000000..029ae872 Binary files /dev/null and b/sign.snk differ diff --git a/src/Tmds.DBus.Tool/Tmds.DBus.Tool.csproj b/src/Tmds.DBus.Tool/Tmds.DBus.Tool.csproj index 200cc4f9..16c9718b 100644 --- a/src/Tmds.DBus.Tool/Tmds.DBus.Tool.csproj +++ b/src/Tmds.DBus.Tool/Tmds.DBus.Tool.csproj @@ -15,6 +15,9 @@ MIT Tom Deseyn Tmds.DBus CLI Tool + true + ..\..\sign.snk + true diff --git a/src/Tmds.DBus/CodeGen/DynamicAssembly.cs b/src/Tmds.DBus/CodeGen/DynamicAssembly.cs index 516b4da3..8081977c 100644 --- a/src/Tmds.DBus/CodeGen/DynamicAssembly.cs +++ b/src/Tmds.DBus/CodeGen/DynamicAssembly.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using System.IO; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; @@ -24,8 +25,24 @@ internal class DynamicAssembly private DynamicAssembly() { - _assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(Tmds.DBus.Connection.DynamicAssemblyName), AssemblyBuilderAccess.Run); - _moduleBuilder = _assemblyBuilder.DefineDynamicModule(Tmds.DBus.Connection.DynamicAssemblyName); + byte[] keyBuffer; + using (Stream keyStream = typeof(DynamicAssembly).GetTypeInfo().Assembly.GetManifestResourceStream("Tmds.DBus.sign.snk")) + { + if (keyStream == null) + { + throw new InvalidOperationException("'Tmds.DBus.sign.snk' not found in resources"); + } + keyBuffer = new byte[keyStream.Length]; + keyStream.Read(keyBuffer, 0, keyBuffer.Length); + } + + var dynamicAssemblyName = "Tmds.DBus.Emit"; + var assemblyName = new AssemblyName(dynamicAssemblyName); + assemblyName.Version = new Version(1, 0, 0); + assemblyName.Flags = AssemblyNameFlags.PublicKey; + assemblyName.SetPublicKey(keyBuffer); + _assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run); + _moduleBuilder = _assemblyBuilder.DefineDynamicModule(dynamicAssemblyName); _proxyTypeMap = new Dictionary(); _adapterTypeMap = new Dictionary(); } diff --git a/src/Tmds.DBus/Connection.cs b/src/Tmds.DBus/Connection.cs index 96259b6e..ed68ee96 100644 --- a/src/Tmds.DBus/Connection.cs +++ b/src/Tmds.DBus/Connection.cs @@ -30,7 +30,7 @@ private enum ConnectionType /// /// Assembly name where the dynamically generated code resides. /// - public const string DynamicAssemblyName = "Tmds.DBus.Emit"; + public const string DynamicAssemblyName = "Tmds.DBus.Emit, PublicKey=002400000480000094000000060200000024000052534131000400000100010071a8770f460cce31df0feb6f94b328aebd55bffeb5c69504593df097fdd9b29586dbd155419031834411c8919516cc565dee6b813c033676218496edcbe7939c0dd1f919f3d1a228ebe83b05a3bbdbae53ce11bcf4c04a42d8df1a83c2d06cb4ebb0b447e3963f48a1ca968996f3f0db8ab0e840a89d0a5d5a237e2f09189ed3"; private static Connection s_systemConnection; private static Connection s_sessionConnection; diff --git a/src/Tmds.DBus/Properties/AssemblyInfo.cs b/src/Tmds.DBus/Properties/AssemblyInfo.cs index ff695171..2820adfe 100644 --- a/src/Tmds.DBus/Properties/AssemblyInfo.cs +++ b/src/Tmds.DBus/Properties/AssemblyInfo.cs @@ -2,4 +2,4 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -[assembly: InternalsVisibleTo("Tmds.DBus.Tests")] +[assembly: InternalsVisibleTo("Tmds.DBus.Tests, PublicKey=002400000480000094000000060200000024000052534131000400000100010071a8770f460cce31df0feb6f94b328aebd55bffeb5c69504593df097fdd9b29586dbd155419031834411c8919516cc565dee6b813c033676218496edcbe7939c0dd1f919f3d1a228ebe83b05a3bbdbae53ce11bcf4c04a42d8df1a83c2d06cb4ebb0b447e3963f48a1ca968996f3f0db8ab0e840a89d0a5d5a237e2f09189ed3")] diff --git a/src/Tmds.DBus/Tmds.DBus.csproj b/src/Tmds.DBus/Tmds.DBus.csproj index 5d33ffc7..861bc2e2 100644 --- a/src/Tmds.DBus/Tmds.DBus.csproj +++ b/src/Tmds.DBus/Tmds.DBus.csproj @@ -12,6 +12,9 @@ https://github.com/tmds/Tmds.DBus MIT Tom Deseyn;Alp Toker + true + ..\..\sign.snk + true @@ -24,4 +27,7 @@ + + + diff --git a/test/Tmds.DBus.Tests/Tmds.DBus.Tests.csproj b/test/Tmds.DBus.Tests/Tmds.DBus.Tests.csproj index 6bf8f404..98db80c3 100644 --- a/test/Tmds.DBus.Tests/Tmds.DBus.Tests.csproj +++ b/test/Tmds.DBus.Tests/Tmds.DBus.Tests.csproj @@ -2,6 +2,9 @@ netcoreapp3.0 + true + ..\..\sign.snk + true @@ -9,9 +12,9 @@ - - - + + + PreserveNewest