f8eb583d40
* Update dependencies from https://github.com/dotnet/arcade build 20200924.4 Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk From Version 5.0.0-beta.20471.1 -> To Version 5.0.0-beta.20474.4 Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,Microsoft.WindowsDesktop.App,Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.TargetingPack.x64.5.0,dotnet-dev-certs,dotnet-user-secrets,dotnet-watch,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.FSharp.Compiler,Microsoft.NET.Test.Sdk,Microsoft.NET.ILLink.Tasks,Microsoft.Net.Compilers.Toolset,Microsoft.Build,NuGet.Build.Tasks From Version 5.0.0-rc.2.20474.5 -> To Version 5.0.0-rc.1.20417.4 (parent: Microsoft.NET.Sdk * Update dependencies from https://github.com/dotnet/arcade build 20200928.3 Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk From Version 5.0.0-beta.20471.1 -> To Version 5.0.0-beta.20478.3 Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,Microsoft.WindowsDesktop.App,Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.TargetingPack.x64.5.0,dotnet-dev-certs,dotnet-user-secrets,dotnet-watch,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.FSharp.Compiler,Microsoft.NET.Test.Sdk,Microsoft.NET.ILLink.Tasks,Microsoft.Net.Compilers.Toolset,Microsoft.Build,NuGet.Build.Tasks From Version 5.0.0-rc.2.20474.5 -> To Version 5.0.0-rc.1.20417.4 (parent: Microsoft.NET.Sdk * Update dependencies from https://github.com/dotnet/arcade build 20201006.7 Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk From Version 5.0.0-beta.20471.1 -> To Version 5.0.0-beta.20506.7 Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,Microsoft.WindowsDesktop.App,Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.TargetingPack.x64.5.0,dotnet-dev-certs,dotnet-user-secrets,dotnet-watch,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.FSharp.Compiler,Microsoft.NET.Test.Sdk,Microsoft.NET.ILLink.Tasks,Microsoft.Net.Compilers.Toolset,Microsoft.Build,NuGet.Build.Tasks,Microsoft.SourceLink.GitHub,XliffTasks From Version 5.0.0-rc.2.20474.5 -> To Version 5.0.0-rc.1.20417.4 (parent: Microsoft.NET.Sdk * Update dependencies from https://github.com/dotnet/arcade build 20201009.12 Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk From Version 5.0.0-beta.20471.1 -> To Version 6.0.0-beta.20509.12 Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,Microsoft.WindowsDesktop.App,Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.TargetingPack.x64.5.0,dotnet-dev-certs,dotnet-user-secrets,dotnet-watch,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.DotNet.Wpf.ProjectTemplates,Microsoft.FSharp.Compiler,Microsoft.NET.Test.Sdk,Microsoft.NET.ILLink.Tasks,Microsoft.Net.Compilers.Toolset,Microsoft.Build,NuGet.Build.Tasks,Microsoft.SourceLink.GitHub,XliffTasks From Version 5.0.0-rc.2.20474.5 -> To Version 5.0.0-rc.1.20417.4 (parent: Microsoft.NET.Sdk * Update dependencies from https://github.com/dotnet/arcade build 20201020.8 Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Arcade.Sdk From Version 5.0.0-beta.20471.1 -> To Version 6.0.0-beta.20520.8 Dependency coherency updates Microsoft.SourceLink.GitHub,XliffTasks From Version 1.1.0-beta-20464-02 -> To Version 1.1.0-beta-20519-02 (parent: Microsoft.DotNet.Arcade.Sdk * Update FileInfoAssertions.cs * Update FileInfoAssertions.cs * Use tasks provided by Microsoft.DotNet.Build.Tasks.Installers when provided. Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com> Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
63 lines
2 KiB
C#
63 lines
2 KiB
C#
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
|
|
using System;
|
|
using System.Security.Cryptography;
|
|
using Microsoft.Build.Framework;
|
|
using Microsoft.Build.Utilities;
|
|
|
|
namespace Microsoft.DotNet.Cli.Build
|
|
{
|
|
public class GenerateGuidFromName
|
|
{
|
|
// Generate a Version 5 (SHA1 Name Based) Guid from a name.
|
|
public static Guid GenerateGuid(string name)
|
|
{
|
|
// Any fixed GUID will do for a namespace.
|
|
Guid namespaceId = new Guid("28F1468D-672B-489A-8E0C-7C5B3030630C");
|
|
|
|
using (SHA1 hasher = SHA1.Create())
|
|
{
|
|
var nameBytes = System.Text.Encoding.UTF8.GetBytes(name ?? string.Empty);
|
|
var namespaceBytes = namespaceId.ToByteArray();
|
|
|
|
SwapGuidByteOrder(namespaceBytes);
|
|
|
|
var streamToHash = new byte[namespaceBytes.Length + nameBytes.Length];
|
|
|
|
Array.Copy(namespaceBytes, streamToHash, namespaceBytes.Length);
|
|
Array.Copy(nameBytes, 0, streamToHash, namespaceBytes.Length, nameBytes.Length);
|
|
|
|
var hashResult = hasher.ComputeHash(streamToHash);
|
|
|
|
var res = new byte[16];
|
|
|
|
Array.Copy(hashResult, res, res.Length);
|
|
|
|
unchecked { res[6] = (byte)(0x50 | (res[6] & 0x0F)); }
|
|
unchecked { res[8] = (byte)(0x40 | (res[8] & 0x3F)); }
|
|
|
|
SwapGuidByteOrder(res);
|
|
|
|
return new Guid(res);
|
|
}
|
|
}
|
|
|
|
// Do a byte order swap, .NET GUIDs store multi byte components in little
|
|
// endian.
|
|
private static void SwapGuidByteOrder(byte[] b)
|
|
{
|
|
Swap(b, 0, 3);
|
|
Swap(b, 1, 2);
|
|
Swap(b, 5, 6);
|
|
Swap(b, 7, 8);
|
|
}
|
|
|
|
private static void Swap(byte[] b, int x, int y)
|
|
{
|
|
byte t = b[x];
|
|
b[x] = b[y];
|
|
b[y] = t;
|
|
}
|
|
}
|
|
}
|