Skip to content

Commit

Permalink
Fix issue with SHA256 instantiation (#9429)
Browse files Browse the repository at this point in the history
  • Loading branch information
YuliiaKovalova committed Nov 28, 2023
1 parent b9d3539 commit f7f0b19
Show file tree
Hide file tree
Showing 5 changed files with 104 additions and 2 deletions.
6 changes: 6 additions & 0 deletions src/Tasks.UnitTests/Microsoft.Build.Tasks.UnitTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,14 @@
<None Update="TestResources\Projects\Custom_COM\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestResources\ClickOnceProfile.pubxml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestResources\lorem.bin">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestResources\mycert.pfx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
81 changes: 81 additions & 0 deletions src/Tasks.UnitTests/SecurityUtil_Tests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.ConstrainedExecution;
using System.Runtime.Versioning;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Build.Tasks.Deployment.ManifestUtilities;
using Shouldly;
using Xunit;

namespace Microsoft.Build.Tasks.UnitTests
{
public class SecurityUtil_Tests
{
private static string TestAssembliesPaths { get; } = Path.Combine(AppContext.BaseDirectory, "TestResources");

[WindowsOnlyTheory]
[InlineData("v4.5", Constants.DotNetFrameworkIdentifier)]
[InlineData("v4.5", Constants.DotNetCoreAppIdentifier)]
[SupportedOSPlatform("windows")]
public void SignFile_Success(string tfVersion, string tfIdentifier)
{
Uri timestampUrl = new("http://timestamp.comodoca.com/rfc3161");
string clickOnceManifest = Path.Combine(TestAssembliesPaths, "ClickOnceProfile.pubxml");
string targetFrameworkVersion = tfVersion;
string targetFrameworkIdentifier = tfIdentifier;
bool disallowMansignTimestampFallback = false;

// the certificate was generated locally and does not contain any sensitive information
string pathToCertificate = Path.Combine(TestAssembliesPaths, "mycert.pfx");
X509Certificate2 certificate = TestCertHelper.MockCertificate(pathToCertificate);

void SignAction() => SecurityUtilities.SignFile(
certificate?.Thumbprint,
timestampUrl,
clickOnceManifest,
targetFrameworkVersion,
targetFrameworkIdentifier,
disallowMansignTimestampFallback);

Should.NotThrow(SignAction);

TestCertHelper.RemoveCertificate(certificate);
}

internal static class TestCertHelper
{
private static readonly X509Store s_personalStore = new(StoreName.My, StoreLocation.CurrentUser);

internal static X509Certificate2 MockCertificate(string pathToCertificate)
{
var certificate = new X509Certificate2(pathToCertificate);
UpdateCertificateState(certificate, s_personalStore.Add);

return certificate;
}

internal static void RemoveCertificate(X509Certificate2 certificate) => UpdateCertificateState(certificate, s_personalStore.Remove);

private static void UpdateCertificateState(X509Certificate2 certificate, Action<X509Certificate2> updateAction)
{
try
{
s_personalStore.Open(OpenFlags.ReadWrite);
updateAction(certificate);
}
finally
{
s_personalStore.Close();
}
}
}
}
}
11 changes: 11 additions & 0 deletions src/Tasks.UnitTests/TestResources/ClickOnceProfile.pubxml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
<asmv1:assemblyIdentity version="1.0.0.0" name="Test.exe" publicKeyToken="17076c97a9b91555" language="neutral" processorArchitecture="x86" type="win32" />
<description asmv2:iconFile="osd.ico" xmlns="urn:schemas-microsoft-com:asm.v1" />
<application />
<entryPoint>
<assemblyIdentity name="Test" version="2.4.1.6" publicKeyToken="02E7DCADB6D14547" language="neutral" processorArchitecture="x86" />
<commandLine file="Test.exe" parameters="" />
</entryPoint>

<publisherIdentity name="CN=YourCertificateName" issuerKeyHash="56226b54236ba71b5f6a9719277818a8cce711cf" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>GFyhRWlbyN1COOyGVz+n59ISTl8HTCRRaL7OE/wqoqc=</DigestValue></Reference></SignedInfo><SignatureValue>fzzu/EybaQbpsDnYtyMLpWpaihS9qwnFwsp+01OrSOv9FD6scw5hDE6Y7f0vfpCq7oTCrlFpGBA2MtPOUfsC3/YOUSI0rzFgZ4zKvYp13cqtpdLEBKrhxmtNWIxZfZr8ByCkxTMjQWUD8LV9/oB561ofOPSkVmrgVrPi6ciUbac9njyaxNXY1EWjplXAHF0Mf8hhsAmM8lZypRJBfZ4tjSmN1nBXkHzKX3X2BrkUTcFxoBiyEE/P6cVPdqAA/fAGtBm4rn8Kpm/ivMXZevR/Y1DkPrnOyHs0VjJacc/G66oTG8BrN7YKj9R/eAtxVQyMQNzpNVb9RxlfL6OIY6lLmQ==</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>6tvmrtrrG1VZfNmU2Bl3UNKJA5MYqNwsb/AgeqqIywgsJAep3pu5D5hA2dFFiMLIC+d+K0PxNgUQpVxkTIX+4aYn6uo+alTek/i1EM0AMZm1pFxmN4WSbSTSrwduuXQLX4hDMP0Sl3TVJL8truWBvGHrtU8/I6dLYrqemEMyOh8C7v802VDLWZW5yq6MSt+KqtnHfILMZzitv7fh2qo+RJ4zvGL+4ZI+S7lwl2ltt9p8nvHDiFSodVwQHEXkPULx7IZfDVNXs6MzgN5NwFGaZtCyktzrcecLRh3UujeViikMZTSQq/DurOuUyzy89QfBPWg+d56EaI4pt/DX5zJ0KQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="a7a22afc13cebe6851244c075f4e12d2e7a73f5786ec3842ddc85b6945a15c18" Description="" Url=""><as:assemblyIdentity version="1.0.0.0" name="OSD_Config.exe" publicKeyToken="17076c97a9b91555" language="neutral" processorArchitecture="x86" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=YourCertificateName</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>7L0K32UM0IBLmCQiodjr1C77qlV0vD3GTM34xo5nm94=</DigestValue></Reference></SignedInfo><SignatureValue>oRPs44JALU/JhGZasau4cn17arKsvShbmTPfkk9NWJV3YEdcvuzzO7l0yaXt29INLFVh9dc7n5mpJhuk4GaydFGY2xQAR/CIHSF7S79iPxKUxtWvYws4Bp7q7kSFDrloW4s3RwWIVksgWWnvhlk21AVDTXhAYEU8IfQX9jmafB0SejBxD9KkQOiAwtV/OWWSWNpGcI84AITMiFvDZDQDER566tGqNHZLeEYunmUqcoQry7X/BFsl2jvzIkAdSAnXJWx3dsYYTl9bngazfrDbZR8f40VicEGvUY9HzL0Ei8IalP6Vwqx9G91m+hH8oVcKSEbi+cRKm6NWLVe5Tgql7w==</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>6tvmrtrrG1VZfNmU2Bl3UNKJA5MYqNwsb/AgeqqIywgsJAep3pu5D5hA2dFFiMLIC+d+K0PxNgUQpVxkTIX+4aYn6uo+alTek/i1EM0AMZm1pFxmN4WSbSTSrwduuXQLX4hDMP0Sl3TVJL8truWBvGHrtU8/I6dLYrqemEMyOh8C7v802VDLWZW5yq6MSt+KqtnHfILMZzitv7fh2qo+RJ4zvGL+4ZI+S7lwl2ltt9p8nvHDiFSodVwQHEXkPULx7IZfDVNXs6MzgN5NwFGaZtCyktzrcecLRh3UujeViikMZTSQq/DurOuUyzy89QfBPWg+d56EaI4pt/DX5zJ0KQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIDGTCCAgGgAwIBAgIQ4HSIXz7yH49M25eRQpRFGjANBgkqhkiG9w0BAQsFADAeMRwwGgYDVQQDExNZb3VyQ2VydGlmaWNhdGVOYW1lMB4XDTIzMTExNjEzNTQyMVoXDTM5MTIzMTIzNTk1OVowHjEcMBoGA1UEAxMTWW91ckNlcnRpZmljYXRlTmFtZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOrb5q7a6xtVWXzZlNgZd1DSiQOTGKjcLG/wIHqqiMsILCQHqd6buQ+YQNnRRYjCyAvnfitD8TYFEKVcZEyF/uGmJ+rqPmpU3pP4tRDNADGZtaRcZjeFkm0k0q8Hbrl0C1+IQzD9Epd01SS/La7lgbxh67VPPyOnS2K6nphDMjofAu7/NNlQy1mVucqujErfiqrZx3yCzGc4rb+34dqqPkSeM7xi/uGSPku5cJdpbbfafJ7xw4hUqHVcEBxF5D1C8eyGXw1TV7OjM4DeTcBRmmbQspLc63HnC0Yd1Lo3lYopDGU0kKvw7qzrlMs8vPUHwT1oPneehGiOKbfw1+cydCkCAwEAAaNTMFEwTwYDVR0BBEgwRoAQKuOh/UZkiI1MMUdwVlT6KaEgMB4xHDAaBgNVBAMTE1lvdXJDZXJ0aWZpY2F0ZU5hbWWCEOB0iF8+8h+PTNuXkUKURRowDQYJKoZIhvcNAQELBQADggEBAAybLoyi46eGUAwqJOORCgbkJMrQQOE/C8reSrBByJbL7g1QLPkaEULfGf8oex8cRYI2/uToZMf+uoyGqu+aGquoYSCBviRXerSnjHvpW1PB8RnpyMN/346F4dVtPWWMVHMKD4Pl0rlFRBVl/trbE9fUP15eE1hySsQxoGzazhrptvogUyjjz+7boh+W1knjwfvLt+aPN/x3o6JNGMa0gmmqICAbOHFKstTSa2DAucrUVbm9oWhTK/27AmTq++GFEdr/YpQU4RY5XRLviT3dAW0LamAFSrrInXX0RBea6/E9pIWxfdcnMt5yZ2FnnrDEVFLiXYI3ZSCjRurZfsROU1M=</X509Certificate></X509Data></KeyInfo><Object><as:Timestamp>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</as:Timestamp></Object></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
Binary file added src/Tasks.UnitTests/TestResources/mycert.pfx
Binary file not shown.
8 changes: 6 additions & 2 deletions src/Tasks/ManifestUtil/mansign2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -270,10 +270,14 @@ private void init()
Sha256SignatureMethodUri);

#if RUNTIME_TYPE_NETCORE
CryptoConfig.AddAlgorithm(typeof(SHA256),
#pragma warning disable SYSLIB0021 // Type or member is obsolete
// SHA256 can not be used since it is an abstract class.
// CalculateHashValue internally calls CryptoConfig.CreateFromName and it causes instantiation problems.
CryptoConfig.AddAlgorithm(typeof(SHA256Managed),
Sha256DigestMethod);
#pragma warning restore SYSLIB0021 // Type or member is obsolete
#else
CryptoConfig.AddAlgorithm(typeof(System.Security.Cryptography.SHA256Cng),
CryptoConfig.AddAlgorithm(typeof(SHA256Cng),
Sha256DigestMethod);
#endif
}
Expand Down

0 comments on commit f7f0b19

Please sign in to comment.