Example #1
0
        public void Can_sign_using_keycontainer()
        {
            // ARRANGE
            var keyContainerName = Guid.NewGuid().ToString();

            _keyContainerNameList.Add(keyContainerName);

            CspContainerUtils.ImportBlob(true, keyContainerName, KeyNumber.Signature, File.ReadAllBytes(TestSnk));

            var outputFile = Path.Combine(TestContext.DeploymentDirectory,
                                          Path.ChangeExtension(Path.GetRandomFileName(), Extension));

            var ilMerge = new ILMerge
            {
                KeyContainer = keyContainerName,
                OutputFile   = outputFile
            };

            ilMerge.SetUpInputAssemblyForTest(Assembly.GetExecutingAssembly());

            // ACT
            ilMerge.Merge();

            // ASSERT
            var expectedKeyBytes   = new StrongNameKeyPair(File.ReadAllBytes(TestSnk)).PublicKey;
            var outputFileKeyBytes = AssemblyName.GetAssemblyName(outputFile).GetPublicKey();

            CollectionAssert.AreEqual(expectedKeyBytes, outputFileKeyBytes, "Expected PublicKey bytes do not match-up to the generated assembly PublicKey bytes");
        }
Example #2
0
        public void Can_sign_using_keycontainer()
        {
            var keyContainerName = Guid.NewGuid().ToString();

            CspContainerUtils.ImportBlob(true, keyContainerName, KeyNumber.Signature, File.ReadAllBytes(TestFiles.TestSnk));
            try
            {
                using (var outputFile = TempFile.WithExtension(".dll"))
                {
                    var ilMerge = new ILMerge
                    {
                        KeyContainer = keyContainerName,
                        OutputFile   = outputFile
                    };
                    ilMerge.SetUpInputAssemblyForTest(Assembly.GetExecutingAssembly());
                    ilMerge.Merge();

                    Assert.That(
                        AssemblyName.GetAssemblyName(outputFile).GetPublicKey(),
                        Is.EqualTo(new StrongNameKeyPair(File.ReadAllBytes(TestFiles.TestSnk)).PublicKey));
                }
            }
            finally
            {
                CspContainerUtils.Delete(true, keyContainerName, KeyNumber.Signature);
            }
        }
Example #3
0
 public static void ClassCleanup()
 {
     _keyContainerNameList.ForEach(containerName => CspContainerUtils.Delete(true, containerName, KeyNumber.Signature));
 }