├── Assets └── Integrative.png ├── CrossProtectedTesting ├── CrossProtectTests.cs └── CrossProtectedTesting.csproj ├── .vs └── CrossProtectedData │ └── DesignTimeBuild │ └── .dtbcache.v2 ├── CrossProtectedExample ├── bin │ └── Debug │ │ └── netcoreapp3.1 │ │ ├── CrossProtectedExample.exe │ │ ├── CrossProtectedExample.runtimeconfig.json │ │ ├── CrossProtectedExample.runtimeconfig.dev.json │ │ └── CrossProtectedExample.deps.json ├── CrossProtectedExample.csproj └── Program.cs ├── .gitignore ├── CrossProtectedData ├── DpapiWrapper.cs ├── CrossProtectedData.csproj ├── CrossProtect.cs ├── AspNetWrapper.cs └── bin │ └── Debug │ └── netstandard2.0 │ └── Integrative.CrossProtectedData.deps.json ├── LICENSE ├── README.md └── CrossProtectedData.sln /Assets/Integrative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/integrativesoft/CrossProtectedData/HEAD/Assets/Integrative.png -------------------------------------------------------------------------------- /CrossProtectedTesting/CrossProtectTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/integrativesoft/CrossProtectedData/HEAD/CrossProtectedTesting/CrossProtectTests.cs -------------------------------------------------------------------------------- /.vs/CrossProtectedData/DesignTimeBuild/.dtbcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/integrativesoft/CrossProtectedData/HEAD/.vs/CrossProtectedData/DesignTimeBuild/.dtbcache.v2 -------------------------------------------------------------------------------- /CrossProtectedExample/bin/Debug/netcoreapp3.1/CrossProtectedExample.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/integrativesoft/CrossProtectedData/HEAD/CrossProtectedExample/bin/Debug/netcoreapp3.1/CrossProtectedExample.exe -------------------------------------------------------------------------------- /CrossProtectedExample/bin/Debug/netcoreapp3.1/CrossProtectedExample.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "netcoreapp3.1", 4 | "framework": { 5 | "name": "Microsoft.NETCore.App", 6 | "version": "3.1.0" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /CrossProtectedExample/bin/Debug/netcoreapp3.1/CrossProtectedExample.runtimeconfig.dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "additionalProbingPaths": [ 4 | "C:\\Users\\pablo\\.dotnet\\store\\|arch|\\|tfm|", 5 | "C:\\Users\\pablo\\.nuget\\packages", 6 | "C:\\Microsoft\\Xamarin\\NuGet" 7 | ] 8 | } 9 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.vs/CrossProtectedData/DesignTimeBuild/*.dtbcache 2 | /.vs/CrossProtectedData/v16/*.suo 3 | /.vs/CrossProtectedData/v16/Server/sqlite3/*.lock 4 | sqlite3 5 | /.vs/CrossProtectedData/v16/TestStore/0/*.testlog 6 | /.vs/CrossProtectedData/v16/TestStore/0/testlog.manifest 7 | /.vs/CrossProtectedData/v16/TestStore/1 8 | obj 9 | *.dll 10 | *.pdb 11 | /CrossProtectedTesting/bin/Debug/netcoreapp3.1 12 | /CrossProtectedData/bin/Release 13 | /CrossProtectedExample/bin/Release/netcoreapp3.1 14 | /CrossProtectedTesting/bin/Release/netcoreapp3.1 15 | *.nupkg 16 | *.snupkg 17 | -------------------------------------------------------------------------------- /CrossProtectedExample/CrossProtectedExample.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | true 7 | true 8 | snupkg 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /CrossProtectedData/DpapiWrapper.cs: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2020 Integrative Software LLC 3 | Created: 1/2020 4 | MIT License 5 | Author: Pablo Carbonell 6 | */ 7 | 8 | using System.Security.Cryptography; 9 | 10 | namespace Integrative.Encryption 11 | { 12 | sealed class DpapiWrapper : IProtector 13 | { 14 | public byte[] Protect(byte[] userData, byte[] optionalEntropy, CrossProtectionScope scope) 15 | { 16 | return ProtectedData.Protect(userData, optionalEntropy, (DataProtectionScope)scope); 17 | } 18 | 19 | public byte[] Unprotect(byte[] encryptedData, byte[] optionalEntropy, CrossProtectionScope scope) 20 | { 21 | return ProtectedData.Unprotect(encryptedData, optionalEntropy, (DataProtectionScope)scope); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /CrossProtectedTesting/CrossProtectedTesting.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | all 14 | runtime; build; native; contentfiles; analyzers; buildtransitive 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Integrative Software LLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /CrossProtectedExample/Program.cs: -------------------------------------------------------------------------------- 1 | using Integrative.Encryption; 2 | using System; 3 | using System.Security.Cryptography; 4 | using System.Text; 5 | 6 | namespace CrossProtectedExample 7 | { 8 | class Program 9 | { 10 | static void Main(string[] args) 11 | { 12 | // our text to protect 13 | var text = "Hello!"; 14 | 15 | // get bytes from text 16 | var bytes = Encoding.UTF8.GetBytes(text); 17 | 18 | // optional entropy 19 | var entropy = new byte[] { 100, 25, 31, 213 }; 20 | 21 | // protect (encrypt) 22 | var protectedBytes = CrossProtect.Protect(bytes, entropy, 23 | DataProtectionScope.CurrentUser); 24 | 25 | // unprotect (decrypt) 26 | var unprotected = CrossProtect.Unprotect(protectedBytes, entropy, 27 | DataProtectionScope.CurrentUser); 28 | 29 | // convert bytes back to text 30 | var result = Encoding.UTF8.GetString(unprotected); 31 | 32 | // print result 33 | Console.WriteLine(result); 34 | Console.ReadKey(); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CrossProtectedData ![Download count](https://img.shields.io/nuget/dt/Integrative.CrossProtect.svg) 2 | 3 | A replacement for the `ProtectedData` class in NET Standard that works not only in Windows but also Linux/MacOS/others. 4 | 5 | This library is a wrapper of `ProtectedData` and exposes the same interface. The difference is the following: 6 | - When running in Windows, it calls directly the original ProtectedData class supported in Windows. 7 | - When running in non-Windows, it implements those calls using instead the AspNetCore.DataProtection library. 8 | 9 | There is no need to download this repository. This library is available as a [NuGet package](https://www.nuget.org/packages/Integrative.CrossProtect/). 10 | # Example 11 | 12 | ```csharp 13 | using Integrative.Encryption; 14 | using System; 15 | using System.Security.Cryptography; 16 | using System.Text; 17 | 18 | namespace CrossProtectedExample 19 | { 20 | class Program 21 | { 22 | static void Main(string[] args) 23 | { 24 | // our text to protect 25 | var text = "Hello!"; 26 | 27 | // get bytes from text 28 | var bytes = Encoding.UTF8.GetBytes(text); 29 | 30 | // optional entropy 31 | var entropy = new byte[] { 100, 25, 31, 213 }; 32 | 33 | // protect (encrypt) 34 | var protectedBytes = CrossProtect.Protect(bytes, entropy, 35 | DataProtectionScope.CurrentUser); 36 | 37 | // unprotect (decrypt) 38 | var unprotected = CrossProtect.Unprotect(protectedBytes, entropy, 39 | DataProtectionScope.CurrentUser); 40 | 41 | // convert bytes back to text 42 | var result = Encoding.UTF8.GetString(unprotected); 43 | 44 | // print result 45 | Console.WriteLine(result); 46 | Console.ReadKey(); 47 | } 48 | } 49 | } 50 | ``` 51 | -------------------------------------------------------------------------------- /CrossProtectedData/CrossProtectedData.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Integrative.CrossProtectedData 6 | Integrative.CrossProtectedData 7 | Integrative.CrossProtect 8 | 0.1.3 9 | Integrative Software LLC 10 | Integrative Software LLC 11 | CrossProtectedData 12 | A ProtectedData wrapper that uses DPAPI in Windows and AspNetCore.DataProtection in other platforms. 13 | MIT 14 | https://github.com/integrativesoft/CrossProtectedData 15 | Integrative.png 16 | 17 | https://github.com/integrativesoft/CrossProtectedData 18 | - allow null byte array parameter in AspNetWrapper 19 | git 20 | cryptography crypto protected-data DPAPI encryption 21 | true 22 | false 23 | true 24 | true 25 | snupkg 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | True 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /CrossProtectedData/CrossProtect.cs: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2020 Integrative Software LLC 3 | Created: 1/2020 4 | MIT License 5 | Author: Pablo Carbonell 6 | */ 7 | 8 | using System.Runtime.InteropServices; 9 | 10 | namespace Integrative.Encryption 11 | { 12 | public enum CrossProtectionScope 13 | { 14 | // 15 | // Summary: 16 | // The protected data is associated with the current user. Only threads running 17 | // under the current user context can unprotect the data. 18 | CurrentUser = 0, 19 | // 20 | // Summary: 21 | // The protected data is associated with the machine context. Any process running 22 | // on the computer can unprotect data. This enumeration value is usually used in 23 | // server-specific applications that run on a server where untrusted users are not 24 | // allowed access. 25 | LocalMachine = 1 26 | } 27 | 28 | interface IProtector 29 | { 30 | byte[] Protect(byte[] userData, byte[] optionalEntrypy, CrossProtectionScope scope); 31 | byte[] Unprotect(byte[] encryptedData, byte[] optionalEntropy, CrossProtectionScope scope); 32 | } 33 | 34 | public static class CrossProtect 35 | { 36 | readonly static IProtector _protector = CreateProtector(); 37 | 38 | private static IProtector CreateProtector() 39 | { 40 | if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) 41 | { 42 | return new DpapiWrapper(); 43 | } 44 | else 45 | { 46 | return new AspNetWrapper(); 47 | } 48 | } 49 | 50 | public static byte[] Protect(byte[] userData, byte[] optionalEntropy, CrossProtectionScope scope) 51 | { 52 | return _protector.Protect(userData, optionalEntropy, scope); 53 | } 54 | 55 | public static byte[] Unprotect(byte[] encryptedData, byte[] optionalEntropy, CrossProtectionScope scope) 56 | { 57 | return _protector.Unprotect(encryptedData, optionalEntropy, scope); 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /CrossProtectedData.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29613.14 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CrossProtectedData", "CrossProtectedData\CrossProtectedData.csproj", "{4A7D6194-B02A-439E-9ACE-9D9B476271D6}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossProtectedTesting", "CrossProtectedTesting\CrossProtectedTesting.csproj", "{9D05A3B8-1BF0-4574-9CAE-2726CA1F4FA7}" 9 | EndProject 10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossProtectedExample", "CrossProtectedExample\CrossProtectedExample.csproj", "{DAF57489-C0D1-450E-8701-3A40A09C8A9E}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|Any CPU = Debug|Any CPU 15 | Release|Any CPU = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {4A7D6194-B02A-439E-9ACE-9D9B476271D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {4A7D6194-B02A-439E-9ACE-9D9B476271D6}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {4A7D6194-B02A-439E-9ACE-9D9B476271D6}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {4A7D6194-B02A-439E-9ACE-9D9B476271D6}.Release|Any CPU.Build.0 = Release|Any CPU 22 | {9D05A3B8-1BF0-4574-9CAE-2726CA1F4FA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 23 | {9D05A3B8-1BF0-4574-9CAE-2726CA1F4FA7}.Debug|Any CPU.Build.0 = Debug|Any CPU 24 | {9D05A3B8-1BF0-4574-9CAE-2726CA1F4FA7}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {9D05A3B8-1BF0-4574-9CAE-2726CA1F4FA7}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {DAF57489-C0D1-450E-8701-3A40A09C8A9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 27 | {DAF57489-C0D1-450E-8701-3A40A09C8A9E}.Debug|Any CPU.Build.0 = Debug|Any CPU 28 | {DAF57489-C0D1-450E-8701-3A40A09C8A9E}.Release|Any CPU.ActiveCfg = Release|Any CPU 29 | {DAF57489-C0D1-450E-8701-3A40A09C8A9E}.Release|Any CPU.Build.0 = Release|Any CPU 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {DE945A67-63E7-42E8-9AFE-ACD637EEC577} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /CrossProtectedData/AspNetWrapper.cs: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2020 Integrative Software LLC 3 | Created: 1/2020 4 | MIT License 5 | Author: Pablo Carbonell 6 | */ 7 | 8 | using Microsoft.AspNetCore.DataProtection; 9 | using System; 10 | using System.IO; 11 | using System.Runtime.CompilerServices; 12 | using System.Security.Cryptography; 13 | 14 | [assembly: InternalsVisibleTo("CrossProtectedTesting")] 15 | namespace Integrative.Encryption 16 | { 17 | class AspNetWrapper : IProtector 18 | { 19 | private const string AppName = "CrossProtect"; 20 | private const string BaseName = "CrossProtected_"; 21 | 22 | private static readonly byte[] _emptyBytes = new byte[0]; 23 | 24 | public byte[] Protect(byte[] userData, byte[] optionalEntropy, CrossProtectionScope scope) 25 | { 26 | optionalEntropy = optionalEntropy ?? _emptyBytes; 27 | var protector = GetProtector(scope, optionalEntropy); 28 | return protector.Protect(userData); 29 | } 30 | 31 | public byte[] Unprotect(byte[] encryptedData, byte[] optionalEntropy, CrossProtectionScope scope) 32 | { 33 | optionalEntropy = optionalEntropy ?? _emptyBytes; 34 | var protector = GetProtector(scope, optionalEntropy); 35 | return protector.Unprotect(encryptedData); 36 | } 37 | 38 | private IDataProtector GetProtector(CrossProtectionScope scope, byte[] optionalEntropy) 39 | { 40 | if (scope == CrossProtectionScope.CurrentUser) 41 | { 42 | return GetUserProtector(optionalEntropy); 43 | } 44 | else 45 | { 46 | return GetMachineProtector(optionalEntropy); 47 | } 48 | } 49 | 50 | private IDataProtector GetUserProtector(byte[] optionalEntropy) 51 | { 52 | var appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 53 | var path = Path.Combine(appData, AppName); 54 | var info = new DirectoryInfo(path); 55 | var provider = DataProtectionProvider.Create(info); 56 | var purpose = CreatePurpose(optionalEntropy); 57 | return provider.CreateProtector(purpose); 58 | } 59 | 60 | private IDataProtector GetMachineProtector(byte[] optionalEntropy) 61 | { 62 | var provider = DataProtectionProvider.Create(AppName); 63 | var purpose = CreatePurpose(optionalEntropy); 64 | return provider.CreateProtector(purpose); 65 | } 66 | 67 | private string CreatePurpose(byte[] optionalEntropy) 68 | { 69 | var result = BaseName + Convert.ToBase64String(optionalEntropy); 70 | return Uri.EscapeDataString(result); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /CrossProtectedExample/bin/Debug/netcoreapp3.1/CrossProtectedExample.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v3.1", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v3.1": { 9 | "CrossProtectedExample/1.0.0": { 10 | "dependencies": { 11 | "Integrative.CrossProtect": "0.1.1", 12 | "Microsoft.SourceLink.GitHub": "1.0.0" 13 | }, 14 | "runtime": { 15 | "CrossProtectedExample.dll": {} 16 | } 17 | }, 18 | "Microsoft.AspNetCore.Cryptography.Internal/3.1.0": { 19 | "runtime": { 20 | "lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": { 21 | "assemblyVersion": "3.1.0.0", 22 | "fileVersion": "3.100.19.56601" 23 | } 24 | } 25 | }, 26 | "Microsoft.AspNetCore.DataProtection/3.1.0": { 27 | "dependencies": { 28 | "Microsoft.AspNetCore.Cryptography.Internal": "3.1.0", 29 | "Microsoft.AspNetCore.DataProtection.Abstractions": "3.1.0", 30 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", 31 | "Microsoft.Extensions.Hosting.Abstractions": "3.1.0", 32 | "Microsoft.Extensions.Logging.Abstractions": "3.1.0", 33 | "Microsoft.Extensions.Options": "3.1.0", 34 | "Microsoft.Win32.Registry": "4.7.0", 35 | "System.Security.Cryptography.Xml": "4.7.0" 36 | }, 37 | "runtime": { 38 | "lib/netcoreapp3.1/Microsoft.AspNetCore.DataProtection.dll": { 39 | "assemblyVersion": "3.1.0.0", 40 | "fileVersion": "3.100.19.56601" 41 | } 42 | } 43 | }, 44 | "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0": { 45 | "runtime": { 46 | "lib/netstandard2.0/Microsoft.AspNetCore.DataProtection.Abstractions.dll": { 47 | "assemblyVersion": "3.1.0.0", 48 | "fileVersion": "3.100.19.56601" 49 | } 50 | } 51 | }, 52 | "Microsoft.AspNetCore.DataProtection.Extensions/3.1.0": { 53 | "dependencies": { 54 | "Microsoft.AspNetCore.DataProtection": "3.1.0", 55 | "Microsoft.Extensions.DependencyInjection": "3.1.0" 56 | }, 57 | "runtime": { 58 | "lib/netcoreapp3.1/Microsoft.AspNetCore.DataProtection.Extensions.dll": { 59 | "assemblyVersion": "3.1.0.0", 60 | "fileVersion": "3.100.19.56601" 61 | } 62 | } 63 | }, 64 | "Microsoft.Build.Tasks.Git/1.0.0": {}, 65 | "Microsoft.Extensions.Configuration.Abstractions/3.1.0": { 66 | "dependencies": { 67 | "Microsoft.Extensions.Primitives": "3.1.0" 68 | }, 69 | "runtime": { 70 | "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": { 71 | "assemblyVersion": "3.1.0.0", 72 | "fileVersion": "3.100.19.56504" 73 | } 74 | } 75 | }, 76 | "Microsoft.Extensions.DependencyInjection/3.1.0": { 77 | "dependencies": { 78 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" 79 | }, 80 | "runtime": { 81 | "lib/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.dll": { 82 | "assemblyVersion": "3.1.0.0", 83 | "fileVersion": "3.100.19.56504" 84 | } 85 | } 86 | }, 87 | "Microsoft.Extensions.DependencyInjection.Abstractions/3.1.0": { 88 | "runtime": { 89 | "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { 90 | "assemblyVersion": "3.1.0.0", 91 | "fileVersion": "3.100.19.56504" 92 | } 93 | } 94 | }, 95 | "Microsoft.Extensions.FileProviders.Abstractions/3.1.0": { 96 | "dependencies": { 97 | "Microsoft.Extensions.Primitives": "3.1.0" 98 | }, 99 | "runtime": { 100 | "lib/netcoreapp3.1/Microsoft.Extensions.FileProviders.Abstractions.dll": { 101 | "assemblyVersion": "3.1.0.0", 102 | "fileVersion": "3.100.19.56504" 103 | } 104 | } 105 | }, 106 | "Microsoft.Extensions.Hosting.Abstractions/3.1.0": { 107 | "dependencies": { 108 | "Microsoft.Extensions.Configuration.Abstractions": "3.1.0", 109 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", 110 | "Microsoft.Extensions.FileProviders.Abstractions": "3.1.0", 111 | "Microsoft.Extensions.Logging.Abstractions": "3.1.0" 112 | }, 113 | "runtime": { 114 | "lib/netcoreapp3.1/Microsoft.Extensions.Hosting.Abstractions.dll": { 115 | "assemblyVersion": "3.1.0.0", 116 | "fileVersion": "3.100.19.56504" 117 | } 118 | } 119 | }, 120 | "Microsoft.Extensions.Logging.Abstractions/3.1.0": { 121 | "runtime": { 122 | "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": { 123 | "assemblyVersion": "3.1.0.0", 124 | "fileVersion": "3.100.19.56504" 125 | } 126 | } 127 | }, 128 | "Microsoft.Extensions.Options/3.1.0": { 129 | "dependencies": { 130 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", 131 | "Microsoft.Extensions.Primitives": "3.1.0" 132 | }, 133 | "runtime": { 134 | "lib/netcoreapp3.1/Microsoft.Extensions.Options.dll": { 135 | "assemblyVersion": "3.1.0.0", 136 | "fileVersion": "3.100.19.56504" 137 | } 138 | } 139 | }, 140 | "Microsoft.Extensions.Primitives/3.1.0": { 141 | "runtime": { 142 | "lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": { 143 | "assemblyVersion": "3.1.0.0", 144 | "fileVersion": "3.100.19.56504" 145 | } 146 | } 147 | }, 148 | "Microsoft.NETCore.Platforms/3.1.0": {}, 149 | "Microsoft.SourceLink.Common/1.0.0": {}, 150 | "Microsoft.SourceLink.GitHub/1.0.0": { 151 | "dependencies": { 152 | "Microsoft.Build.Tasks.Git": "1.0.0", 153 | "Microsoft.SourceLink.Common": "1.0.0" 154 | } 155 | }, 156 | "Microsoft.Win32.Registry/4.7.0": { 157 | "dependencies": { 158 | "System.Security.AccessControl": "4.7.0", 159 | "System.Security.Principal.Windows": "4.7.0" 160 | } 161 | }, 162 | "Microsoft.Win32.SystemEvents/4.7.0": { 163 | "dependencies": { 164 | "Microsoft.NETCore.Platforms": "3.1.0" 165 | }, 166 | "runtime": { 167 | "lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": { 168 | "assemblyVersion": "4.0.2.0", 169 | "fileVersion": "4.700.19.56404" 170 | } 171 | }, 172 | "runtimeTargets": { 173 | "runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": { 174 | "rid": "win", 175 | "assetType": "runtime", 176 | "assemblyVersion": "4.0.2.0", 177 | "fileVersion": "4.700.19.56404" 178 | } 179 | } 180 | }, 181 | "System.Drawing.Common/4.7.0": { 182 | "dependencies": { 183 | "Microsoft.NETCore.Platforms": "3.1.0", 184 | "Microsoft.Win32.SystemEvents": "4.7.0" 185 | }, 186 | "runtime": { 187 | "lib/netstandard2.0/System.Drawing.Common.dll": { 188 | "assemblyVersion": "4.0.0.1", 189 | "fileVersion": "4.6.26919.2" 190 | } 191 | }, 192 | "runtimeTargets": { 193 | "runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": { 194 | "rid": "unix", 195 | "assetType": "runtime", 196 | "assemblyVersion": "4.0.2.0", 197 | "fileVersion": "4.700.19.56404" 198 | }, 199 | "runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": { 200 | "rid": "win", 201 | "assetType": "runtime", 202 | "assemblyVersion": "4.0.2.0", 203 | "fileVersion": "4.700.19.56404" 204 | } 205 | } 206 | }, 207 | "System.Security.AccessControl/4.7.0": { 208 | "dependencies": { 209 | "Microsoft.NETCore.Platforms": "3.1.0", 210 | "System.Security.Principal.Windows": "4.7.0" 211 | } 212 | }, 213 | "System.Security.Cryptography.Cng/4.7.0": {}, 214 | "System.Security.Cryptography.Pkcs/4.7.0": { 215 | "dependencies": { 216 | "System.Security.Cryptography.Cng": "4.7.0" 217 | }, 218 | "runtime": { 219 | "lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll": { 220 | "assemblyVersion": "4.1.1.0", 221 | "fileVersion": "4.700.19.56404" 222 | } 223 | }, 224 | "runtimeTargets": { 225 | "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll": { 226 | "rid": "win", 227 | "assetType": "runtime", 228 | "assemblyVersion": "4.1.1.0", 229 | "fileVersion": "4.700.19.56404" 230 | } 231 | } 232 | }, 233 | "System.Security.Cryptography.ProtectedData/4.7.0": { 234 | "runtime": { 235 | "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { 236 | "assemblyVersion": "4.0.5.0", 237 | "fileVersion": "4.700.19.56404" 238 | } 239 | }, 240 | "runtimeTargets": { 241 | "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { 242 | "rid": "win", 243 | "assetType": "runtime", 244 | "assemblyVersion": "4.0.5.0", 245 | "fileVersion": "4.700.19.56404" 246 | } 247 | } 248 | }, 249 | "System.Security.Cryptography.Xml/4.7.0": { 250 | "dependencies": { 251 | "System.Security.Cryptography.Pkcs": "4.7.0", 252 | "System.Security.Permissions": "4.7.0" 253 | }, 254 | "runtime": { 255 | "lib/netstandard2.0/System.Security.Cryptography.Xml.dll": { 256 | "assemblyVersion": "4.0.3.0", 257 | "fileVersion": "4.700.19.56404" 258 | } 259 | } 260 | }, 261 | "System.Security.Permissions/4.7.0": { 262 | "dependencies": { 263 | "System.Security.AccessControl": "4.7.0", 264 | "System.Windows.Extensions": "4.7.0" 265 | }, 266 | "runtime": { 267 | "lib/netcoreapp3.0/System.Security.Permissions.dll": { 268 | "assemblyVersion": "4.0.3.0", 269 | "fileVersion": "4.700.19.56404" 270 | } 271 | } 272 | }, 273 | "System.Security.Principal.Windows/4.7.0": {}, 274 | "System.Windows.Extensions/4.7.0": { 275 | "dependencies": { 276 | "System.Drawing.Common": "4.7.0" 277 | }, 278 | "runtime": { 279 | "lib/netcoreapp3.0/System.Windows.Extensions.dll": { 280 | "assemblyVersion": "4.0.1.0", 281 | "fileVersion": "4.700.19.56404" 282 | } 283 | }, 284 | "runtimeTargets": { 285 | "runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll": { 286 | "rid": "win", 287 | "assetType": "runtime", 288 | "assemblyVersion": "4.0.1.0", 289 | "fileVersion": "4.700.19.56404" 290 | } 291 | } 292 | }, 293 | "Integrative.CrossProtect/0.1.1": { 294 | "dependencies": { 295 | "Microsoft.AspNetCore.DataProtection.Extensions": "3.1.0", 296 | "System.Security.Cryptography.ProtectedData": "4.7.0" 297 | }, 298 | "runtime": { 299 | "Integrative.CrossProtectedData.dll": {} 300 | } 301 | } 302 | } 303 | }, 304 | "libraries": { 305 | "CrossProtectedExample/1.0.0": { 306 | "type": "project", 307 | "serviceable": false, 308 | "sha512": "" 309 | }, 310 | "Microsoft.AspNetCore.Cryptography.Internal/3.1.0": { 311 | "type": "package", 312 | "serviceable": true, 313 | "sha512": "sha512-bsnhHHiWb0s8fcLDOfTXAb0VoTT1cCRjvxo6kwi7RItOQxv/PjMx5s6BEhnAcm/+ZkrN4+2TFXhCZDuiPBfB0Q==", 314 | "path": "microsoft.aspnetcore.cryptography.internal/3.1.0", 315 | "hashPath": "microsoft.aspnetcore.cryptography.internal.3.1.0.nupkg.sha512" 316 | }, 317 | "Microsoft.AspNetCore.DataProtection/3.1.0": { 318 | "type": "package", 319 | "serviceable": true, 320 | "sha512": "sha512-Gq6QkmczZpr4I182r2XSp8XxEkdgml28VNPwtVoMcpW77kVRNPvpGx8ldn/uTiX0epk58Z4i7J2CVazOTqocJQ==", 321 | "path": "microsoft.aspnetcore.dataprotection/3.1.0", 322 | "hashPath": "microsoft.aspnetcore.dataprotection.3.1.0.nupkg.sha512" 323 | }, 324 | "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0": { 325 | "type": "package", 326 | "serviceable": true, 327 | "sha512": "sha512-b1QVtK4C2/Uq/5mr0bAz0zWICTWXbFGRtptvpBx8s8MgQ/Y3Vc0WIZslKp8gT9ptC9XkFAl6FAP/gzbQSzBcCQ==", 328 | "path": "microsoft.aspnetcore.dataprotection.abstractions/3.1.0", 329 | "hashPath": "microsoft.aspnetcore.dataprotection.abstractions.3.1.0.nupkg.sha512" 330 | }, 331 | "Microsoft.AspNetCore.DataProtection.Extensions/3.1.0": { 332 | "type": "package", 333 | "serviceable": true, 334 | "sha512": "sha512-br1yGiEu2gJrlfAEnjQ7hg9AUY4X6SYePZmQ5idEZefEquAssYse7djE6lItomI3vqHWJ/Hzn0x3XiG4F/jgAA==", 335 | "path": "microsoft.aspnetcore.dataprotection.extensions/3.1.0", 336 | "hashPath": "microsoft.aspnetcore.dataprotection.extensions.3.1.0.nupkg.sha512" 337 | }, 338 | "Microsoft.Build.Tasks.Git/1.0.0": { 339 | "type": "package", 340 | "serviceable": true, 341 | "sha512": "sha512-z2fpmmt+1Jfl+ZnBki9nSP08S1/tbEOxFdsK1rSR+LBehIJz1Xv9/6qOOoGNqlwnAGGVGis1Oj6S8Kt9COEYlQ==", 342 | "path": "microsoft.build.tasks.git/1.0.0", 343 | "hashPath": "microsoft.build.tasks.git.1.0.0.nupkg.sha512" 344 | }, 345 | "Microsoft.Extensions.Configuration.Abstractions/3.1.0": { 346 | "type": "package", 347 | "serviceable": true, 348 | "sha512": "sha512-ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", 349 | "path": "microsoft.extensions.configuration.abstractions/3.1.0", 350 | "hashPath": "microsoft.extensions.configuration.abstractions.3.1.0.nupkg.sha512" 351 | }, 352 | "Microsoft.Extensions.DependencyInjection/3.1.0": { 353 | "type": "package", 354 | "serviceable": true, 355 | "sha512": "sha512-KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", 356 | "path": "microsoft.extensions.dependencyinjection/3.1.0", 357 | "hashPath": "microsoft.extensions.dependencyinjection.3.1.0.nupkg.sha512" 358 | }, 359 | "Microsoft.Extensions.DependencyInjection.Abstractions/3.1.0": { 360 | "type": "package", 361 | "serviceable": true, 362 | "sha512": "sha512-44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==", 363 | "path": "microsoft.extensions.dependencyinjection.abstractions/3.1.0", 364 | "hashPath": "microsoft.extensions.dependencyinjection.abstractions.3.1.0.nupkg.sha512" 365 | }, 366 | "Microsoft.Extensions.FileProviders.Abstractions/3.1.0": { 367 | "type": "package", 368 | "serviceable": true, 369 | "sha512": "sha512-G3iBMOnn3tETEUvkE9J3a23wQpRkiXZp73zR0XNlicjLFhkeWW1FCaC2bTjrgHhPi2KO6x0BXnHvVuJPIlygBQ==", 370 | "path": "microsoft.extensions.fileproviders.abstractions/3.1.0", 371 | "hashPath": "microsoft.extensions.fileproviders.abstractions.3.1.0.nupkg.sha512" 372 | }, 373 | "Microsoft.Extensions.Hosting.Abstractions/3.1.0": { 374 | "type": "package", 375 | "serviceable": true, 376 | "sha512": "sha512-LiOP1ceFaPBxaE28SOjtORzOVCJk33TT5VQ/Cg5EoatZh1dxpPAgAV/0ruzWKQE7WAHU3F1H9Z6rFgsQwIb9uQ==", 377 | "path": "microsoft.extensions.hosting.abstractions/3.1.0", 378 | "hashPath": "microsoft.extensions.hosting.abstractions.3.1.0.nupkg.sha512" 379 | }, 380 | "Microsoft.Extensions.Logging.Abstractions/3.1.0": { 381 | "type": "package", 382 | "serviceable": true, 383 | "sha512": "sha512-jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==", 384 | "path": "microsoft.extensions.logging.abstractions/3.1.0", 385 | "hashPath": "microsoft.extensions.logging.abstractions.3.1.0.nupkg.sha512" 386 | }, 387 | "Microsoft.Extensions.Options/3.1.0": { 388 | "type": "package", 389 | "serviceable": true, 390 | "sha512": "sha512-9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", 391 | "path": "microsoft.extensions.options/3.1.0", 392 | "hashPath": "microsoft.extensions.options.3.1.0.nupkg.sha512" 393 | }, 394 | "Microsoft.Extensions.Primitives/3.1.0": { 395 | "type": "package", 396 | "serviceable": true, 397 | "sha512": "sha512-LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", 398 | "path": "microsoft.extensions.primitives/3.1.0", 399 | "hashPath": "microsoft.extensions.primitives.3.1.0.nupkg.sha512" 400 | }, 401 | "Microsoft.NETCore.Platforms/3.1.0": { 402 | "type": "package", 403 | "serviceable": true, 404 | "sha512": "sha512-z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==", 405 | "path": "microsoft.netcore.platforms/3.1.0", 406 | "hashPath": "microsoft.netcore.platforms.3.1.0.nupkg.sha512" 407 | }, 408 | "Microsoft.SourceLink.Common/1.0.0": { 409 | "type": "package", 410 | "serviceable": true, 411 | "sha512": "sha512-G8DuQY8/DK5NN+3jm5wcMcd9QYD90UV7MiLmdljSJixi3U/vNaeBKmmXUqI4DJCOeWizIUEh4ALhSt58mR+5eg==", 412 | "path": "microsoft.sourcelink.common/1.0.0", 413 | "hashPath": "microsoft.sourcelink.common.1.0.0.nupkg.sha512" 414 | }, 415 | "Microsoft.SourceLink.GitHub/1.0.0": { 416 | "type": "package", 417 | "serviceable": true, 418 | "sha512": "sha512-aZyGyGg2nFSxix+xMkPmlmZSsnGQ3w+mIG23LTxJZHN+GPwTQ5FpPgDo7RMOq+Kcf5D4hFWfXkGhoGstawX13Q==", 419 | "path": "microsoft.sourcelink.github/1.0.0", 420 | "hashPath": "microsoft.sourcelink.github.1.0.0.nupkg.sha512" 421 | }, 422 | "Microsoft.Win32.Registry/4.7.0": { 423 | "type": "package", 424 | "serviceable": true, 425 | "sha512": "sha512-KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", 426 | "path": "microsoft.win32.registry/4.7.0", 427 | "hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512" 428 | }, 429 | "Microsoft.Win32.SystemEvents/4.7.0": { 430 | "type": "package", 431 | "serviceable": true, 432 | "sha512": "sha512-mtVirZr++rq+XCDITMUdnETD59XoeMxSpLRIII7JRI6Yj0LEDiO1pPn0ktlnIj12Ix8bfvQqQDMMIF9wC98oCA==", 433 | "path": "microsoft.win32.systemevents/4.7.0", 434 | "hashPath": "microsoft.win32.systemevents.4.7.0.nupkg.sha512" 435 | }, 436 | "System.Drawing.Common/4.7.0": { 437 | "type": "package", 438 | "serviceable": true, 439 | "sha512": "sha512-v+XbyYHaZjDfn0ENmJEV1VYLgGgCTx1gnfOBcppowbpOAriglYgGCvFCPr2EEZyBvXlpxbEsTwkOlInl107ahA==", 440 | "path": "system.drawing.common/4.7.0", 441 | "hashPath": "system.drawing.common.4.7.0.nupkg.sha512" 442 | }, 443 | "System.Security.AccessControl/4.7.0": { 444 | "type": "package", 445 | "serviceable": true, 446 | "sha512": "sha512-JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", 447 | "path": "system.security.accesscontrol/4.7.0", 448 | "hashPath": "system.security.accesscontrol.4.7.0.nupkg.sha512" 449 | }, 450 | "System.Security.Cryptography.Cng/4.7.0": { 451 | "type": "package", 452 | "serviceable": true, 453 | "sha512": "sha512-4WQjFuypWtxb/bl/YwEE7LYGn4fgpsikFfBU6xwEm4YBYiRAhXAEJ62lILBu2JJSFbClIAntFTGfDZafn8yZTg==", 454 | "path": "system.security.cryptography.cng/4.7.0", 455 | "hashPath": "system.security.cryptography.cng.4.7.0.nupkg.sha512" 456 | }, 457 | "System.Security.Cryptography.Pkcs/4.7.0": { 458 | "type": "package", 459 | "serviceable": true, 460 | "sha512": "sha512-0Srzh6YlhjuMxaqMyeCCdZs22cucaUAG6SKDd3gNHBJmre0VZ71ekzWu9rvLD4YXPetyNdPvV6Qst+8C++9v3Q==", 461 | "path": "system.security.cryptography.pkcs/4.7.0", 462 | "hashPath": "system.security.cryptography.pkcs.4.7.0.nupkg.sha512" 463 | }, 464 | "System.Security.Cryptography.ProtectedData/4.7.0": { 465 | "type": "package", 466 | "serviceable": true, 467 | "sha512": "sha512-ehYW0m9ptxpGWvE4zgqongBVWpSDU/JCFD4K7krxkQwSz/sFQjEXCUqpvencjy6DYDbn7Ig09R8GFffu8TtneQ==", 468 | "path": "system.security.cryptography.protecteddata/4.7.0", 469 | "hashPath": "system.security.cryptography.protecteddata.4.7.0.nupkg.sha512" 470 | }, 471 | "System.Security.Cryptography.Xml/4.7.0": { 472 | "type": "package", 473 | "serviceable": true, 474 | "sha512": "sha512-B6pAyxMvXGbZemb+ER877KSr6OKis+qAdxhhKKK36I6sgj2js8mbcEVviZEHYV8XRTWjbKsAq8Z/zoaegA30dA==", 475 | "path": "system.security.cryptography.xml/4.7.0", 476 | "hashPath": "system.security.cryptography.xml.4.7.0.nupkg.sha512" 477 | }, 478 | "System.Security.Permissions/4.7.0": { 479 | "type": "package", 480 | "serviceable": true, 481 | "sha512": "sha512-dkOV6YYVBnYRa15/yv004eCGRBVADXw8qRbbNiCn/XpdJSUXkkUeIvdvFHkvnko4CdKMqG8yRHC4ox83LSlMsQ==", 482 | "path": "system.security.permissions/4.7.0", 483 | "hashPath": "system.security.permissions.4.7.0.nupkg.sha512" 484 | }, 485 | "System.Security.Principal.Windows/4.7.0": { 486 | "type": "package", 487 | "serviceable": true, 488 | "sha512": "sha512-ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==", 489 | "path": "system.security.principal.windows/4.7.0", 490 | "hashPath": "system.security.principal.windows.4.7.0.nupkg.sha512" 491 | }, 492 | "System.Windows.Extensions/4.7.0": { 493 | "type": "package", 494 | "serviceable": true, 495 | "sha512": "sha512-CeWTdRNfRaSh0pm2gDTJFwVaXfTq6Xwv/sA887iwPTneW7oMtMlpvDIO+U60+3GWTB7Aom6oQwv5VZVUhQRdPQ==", 496 | "path": "system.windows.extensions/4.7.0", 497 | "hashPath": "system.windows.extensions.4.7.0.nupkg.sha512" 498 | }, 499 | "Integrative.CrossProtect/0.1.1": { 500 | "type": "project", 501 | "serviceable": false, 502 | "sha512": "" 503 | } 504 | } 505 | } -------------------------------------------------------------------------------- /CrossProtectedData/bin/Debug/netstandard2.0/Integrative.CrossProtectedData.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETStandard,Version=v2.0/", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETStandard,Version=v2.0": {}, 9 | ".NETStandard,Version=v2.0/": { 10 | "Integrative.CrossProtectedData/0.1.1": { 11 | "dependencies": { 12 | "Microsoft.AspNetCore.DataProtection.Extensions": "3.1.0", 13 | "Microsoft.SourceLink.GitHub": "1.0.0", 14 | "NETStandard.Library": "2.0.3", 15 | "System.Security.Cryptography.ProtectedData": "4.7.0" 16 | }, 17 | "runtime": { 18 | "Integrative.CrossProtectedData.dll": {} 19 | } 20 | }, 21 | "Microsoft.AspNetCore.Cryptography.Internal/3.1.0": { 22 | "runtime": { 23 | "lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": { 24 | "assemblyVersion": "3.1.0.0", 25 | "fileVersion": "3.100.19.56601" 26 | } 27 | } 28 | }, 29 | "Microsoft.AspNetCore.DataProtection/3.1.0": { 30 | "dependencies": { 31 | "Microsoft.AspNetCore.Cryptography.Internal": "3.1.0", 32 | "Microsoft.AspNetCore.DataProtection.Abstractions": "3.1.0", 33 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", 34 | "Microsoft.Extensions.Hosting.Abstractions": "3.1.0", 35 | "Microsoft.Extensions.Logging.Abstractions": "3.1.0", 36 | "Microsoft.Extensions.Options": "3.1.0", 37 | "Microsoft.Win32.Registry": "4.7.0", 38 | "System.Security.Cryptography.Xml": "4.7.0", 39 | "System.Security.Principal.Windows": "4.7.0" 40 | }, 41 | "runtime": { 42 | "lib/netstandard2.0/Microsoft.AspNetCore.DataProtection.dll": { 43 | "assemblyVersion": "3.1.0.0", 44 | "fileVersion": "3.100.19.56601" 45 | } 46 | } 47 | }, 48 | "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0": { 49 | "runtime": { 50 | "lib/netstandard2.0/Microsoft.AspNetCore.DataProtection.Abstractions.dll": { 51 | "assemblyVersion": "3.1.0.0", 52 | "fileVersion": "3.100.19.56601" 53 | } 54 | } 55 | }, 56 | "Microsoft.AspNetCore.DataProtection.Extensions/3.1.0": { 57 | "dependencies": { 58 | "Microsoft.AspNetCore.DataProtection": "3.1.0", 59 | "Microsoft.Extensions.DependencyInjection": "3.1.0" 60 | }, 61 | "runtime": { 62 | "lib/netstandard2.0/Microsoft.AspNetCore.DataProtection.Extensions.dll": { 63 | "assemblyVersion": "3.1.0.0", 64 | "fileVersion": "3.100.19.56601" 65 | } 66 | } 67 | }, 68 | "Microsoft.Bcl.AsyncInterfaces/1.1.0": { 69 | "dependencies": { 70 | "System.Threading.Tasks.Extensions": "4.5.2" 71 | }, 72 | "runtime": { 73 | "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { 74 | "assemblyVersion": "1.0.0.0", 75 | "fileVersion": "4.700.19.56404" 76 | } 77 | } 78 | }, 79 | "Microsoft.Build.Tasks.Git/1.0.0": {}, 80 | "Microsoft.Extensions.Configuration.Abstractions/3.1.0": { 81 | "dependencies": { 82 | "Microsoft.Extensions.Primitives": "3.1.0" 83 | }, 84 | "runtime": { 85 | "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": { 86 | "assemblyVersion": "3.1.0.0", 87 | "fileVersion": "3.100.19.56504" 88 | } 89 | } 90 | }, 91 | "Microsoft.Extensions.DependencyInjection/3.1.0": { 92 | "dependencies": { 93 | "Microsoft.Bcl.AsyncInterfaces": "1.1.0", 94 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" 95 | }, 96 | "runtime": { 97 | "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll": { 98 | "assemblyVersion": "3.1.0.0", 99 | "fileVersion": "3.100.19.56504" 100 | } 101 | } 102 | }, 103 | "Microsoft.Extensions.DependencyInjection.Abstractions/3.1.0": { 104 | "runtime": { 105 | "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { 106 | "assemblyVersion": "3.1.0.0", 107 | "fileVersion": "3.100.19.56504" 108 | } 109 | } 110 | }, 111 | "Microsoft.Extensions.FileProviders.Abstractions/3.1.0": { 112 | "dependencies": { 113 | "Microsoft.Extensions.Primitives": "3.1.0" 114 | }, 115 | "runtime": { 116 | "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { 117 | "assemblyVersion": "3.1.0.0", 118 | "fileVersion": "3.100.19.56504" 119 | } 120 | } 121 | }, 122 | "Microsoft.Extensions.Hosting.Abstractions/3.1.0": { 123 | "dependencies": { 124 | "Microsoft.Bcl.AsyncInterfaces": "1.1.0", 125 | "Microsoft.Extensions.Configuration.Abstractions": "3.1.0", 126 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", 127 | "Microsoft.Extensions.FileProviders.Abstractions": "3.1.0", 128 | "Microsoft.Extensions.Logging.Abstractions": "3.1.0" 129 | }, 130 | "runtime": { 131 | "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll": { 132 | "assemblyVersion": "3.1.0.0", 133 | "fileVersion": "3.100.19.56504" 134 | } 135 | } 136 | }, 137 | "Microsoft.Extensions.Logging.Abstractions/3.1.0": { 138 | "runtime": { 139 | "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": { 140 | "assemblyVersion": "3.1.0.0", 141 | "fileVersion": "3.100.19.56504" 142 | } 143 | } 144 | }, 145 | "Microsoft.Extensions.Options/3.1.0": { 146 | "dependencies": { 147 | "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", 148 | "Microsoft.Extensions.Primitives": "3.1.0", 149 | "System.ComponentModel.Annotations": "4.7.0" 150 | }, 151 | "runtime": { 152 | "lib/netstandard2.0/Microsoft.Extensions.Options.dll": { 153 | "assemblyVersion": "3.1.0.0", 154 | "fileVersion": "3.100.19.56504" 155 | } 156 | } 157 | }, 158 | "Microsoft.Extensions.Primitives/3.1.0": { 159 | "dependencies": { 160 | "System.Memory": "4.5.3", 161 | "System.Runtime.CompilerServices.Unsafe": "4.7.0" 162 | }, 163 | "runtime": { 164 | "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": { 165 | "assemblyVersion": "3.1.0.0", 166 | "fileVersion": "3.100.19.56504" 167 | } 168 | } 169 | }, 170 | "Microsoft.NETCore.Platforms/1.1.0": {}, 171 | "Microsoft.SourceLink.Common/1.0.0": {}, 172 | "Microsoft.SourceLink.GitHub/1.0.0": { 173 | "dependencies": { 174 | "Microsoft.Build.Tasks.Git": "1.0.0", 175 | "Microsoft.SourceLink.Common": "1.0.0" 176 | } 177 | }, 178 | "Microsoft.Win32.Registry/4.7.0": { 179 | "dependencies": { 180 | "System.Buffers": "4.5.0", 181 | "System.Memory": "4.5.3", 182 | "System.Security.AccessControl": "4.7.0", 183 | "System.Security.Principal.Windows": "4.7.0" 184 | }, 185 | "runtime": { 186 | "lib/netstandard2.0/Microsoft.Win32.Registry.dll": { 187 | "assemblyVersion": "4.1.3.0", 188 | "fileVersion": "4.700.19.56404" 189 | } 190 | } 191 | }, 192 | "NETStandard.Library/2.0.3": { 193 | "dependencies": { 194 | "Microsoft.NETCore.Platforms": "1.1.0" 195 | } 196 | }, 197 | "System.Buffers/4.5.0": { 198 | "runtime": { 199 | "lib/netstandard2.0/System.Buffers.dll": { 200 | "assemblyVersion": "4.0.3.0", 201 | "fileVersion": "4.6.26515.6" 202 | } 203 | } 204 | }, 205 | "System.ComponentModel.Annotations/4.7.0": { 206 | "runtime": { 207 | "lib/netstandard2.0/System.ComponentModel.Annotations.dll": { 208 | "assemblyVersion": "4.2.1.0", 209 | "fileVersion": "4.6.26515.6" 210 | } 211 | } 212 | }, 213 | "System.Memory/4.5.3": { 214 | "dependencies": { 215 | "System.Buffers": "4.5.0", 216 | "System.Numerics.Vectors": "4.4.0", 217 | "System.Runtime.CompilerServices.Unsafe": "4.7.0" 218 | }, 219 | "runtime": { 220 | "lib/netstandard2.0/System.Memory.dll": { 221 | "assemblyVersion": "4.0.1.1", 222 | "fileVersion": "4.6.27617.2" 223 | } 224 | } 225 | }, 226 | "System.Numerics.Vectors/4.4.0": { 227 | "runtime": { 228 | "lib/netstandard2.0/System.Numerics.Vectors.dll": { 229 | "assemblyVersion": "4.1.3.0", 230 | "fileVersion": "4.6.25519.3" 231 | } 232 | } 233 | }, 234 | "System.Runtime.CompilerServices.Unsafe/4.7.0": { 235 | "runtime": { 236 | "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { 237 | "assemblyVersion": "4.0.6.0", 238 | "fileVersion": "4.700.19.56404" 239 | } 240 | } 241 | }, 242 | "System.Security.AccessControl/4.7.0": { 243 | "dependencies": { 244 | "System.Security.Principal.Windows": "4.7.0" 245 | }, 246 | "runtime": { 247 | "lib/netstandard2.0/System.Security.AccessControl.dll": { 248 | "assemblyVersion": "4.1.3.0", 249 | "fileVersion": "4.700.19.56404" 250 | } 251 | } 252 | }, 253 | "System.Security.Cryptography.Cng/4.7.0": { 254 | "runtime": { 255 | "lib/netstandard2.0/System.Security.Cryptography.Cng.dll": { 256 | "assemblyVersion": "4.3.0.0", 257 | "fileVersion": "4.700.19.56404" 258 | } 259 | } 260 | }, 261 | "System.Security.Cryptography.Pkcs/4.7.0": { 262 | "dependencies": { 263 | "System.Buffers": "4.5.0", 264 | "System.Memory": "4.5.3", 265 | "System.Security.Cryptography.Cng": "4.7.0" 266 | }, 267 | "runtime": { 268 | "lib/netstandard2.0/System.Security.Cryptography.Pkcs.dll": { 269 | "assemblyVersion": "4.0.4.0", 270 | "fileVersion": "4.700.19.56404" 271 | } 272 | } 273 | }, 274 | "System.Security.Cryptography.ProtectedData/4.7.0": { 275 | "dependencies": { 276 | "System.Memory": "4.5.3" 277 | }, 278 | "runtime": { 279 | "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { 280 | "assemblyVersion": "4.0.5.0", 281 | "fileVersion": "4.700.19.56404" 282 | } 283 | } 284 | }, 285 | "System.Security.Cryptography.Xml/4.7.0": { 286 | "dependencies": { 287 | "System.Security.Cryptography.Pkcs": "4.7.0", 288 | "System.Security.Permissions": "4.7.0" 289 | }, 290 | "runtime": { 291 | "lib/netstandard2.0/System.Security.Cryptography.Xml.dll": { 292 | "assemblyVersion": "4.0.3.0", 293 | "fileVersion": "4.700.19.56404" 294 | } 295 | } 296 | }, 297 | "System.Security.Permissions/4.7.0": { 298 | "dependencies": { 299 | "System.Security.AccessControl": "4.7.0" 300 | }, 301 | "runtime": { 302 | "lib/netstandard2.0/System.Security.Permissions.dll": { 303 | "assemblyVersion": "4.0.3.0", 304 | "fileVersion": "4.700.19.56404" 305 | } 306 | } 307 | }, 308 | "System.Security.Principal.Windows/4.7.0": { 309 | "runtime": { 310 | "lib/netstandard2.0/System.Security.Principal.Windows.dll": { 311 | "assemblyVersion": "4.1.3.0", 312 | "fileVersion": "4.700.19.56404" 313 | } 314 | } 315 | }, 316 | "System.Threading.Tasks.Extensions/4.5.2": { 317 | "dependencies": { 318 | "System.Runtime.CompilerServices.Unsafe": "4.7.0" 319 | }, 320 | "runtime": { 321 | "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { 322 | "assemblyVersion": "4.2.0.0", 323 | "fileVersion": "4.6.27129.4" 324 | } 325 | } 326 | } 327 | } 328 | }, 329 | "libraries": { 330 | "Integrative.CrossProtectedData/0.1.1": { 331 | "type": "project", 332 | "serviceable": false, 333 | "sha512": "" 334 | }, 335 | "Microsoft.AspNetCore.Cryptography.Internal/3.1.0": { 336 | "type": "package", 337 | "serviceable": true, 338 | "sha512": "sha512-bsnhHHiWb0s8fcLDOfTXAb0VoTT1cCRjvxo6kwi7RItOQxv/PjMx5s6BEhnAcm/+ZkrN4+2TFXhCZDuiPBfB0Q==", 339 | "path": "microsoft.aspnetcore.cryptography.internal/3.1.0", 340 | "hashPath": "microsoft.aspnetcore.cryptography.internal.3.1.0.nupkg.sha512" 341 | }, 342 | "Microsoft.AspNetCore.DataProtection/3.1.0": { 343 | "type": "package", 344 | "serviceable": true, 345 | "sha512": "sha512-Gq6QkmczZpr4I182r2XSp8XxEkdgml28VNPwtVoMcpW77kVRNPvpGx8ldn/uTiX0epk58Z4i7J2CVazOTqocJQ==", 346 | "path": "microsoft.aspnetcore.dataprotection/3.1.0", 347 | "hashPath": "microsoft.aspnetcore.dataprotection.3.1.0.nupkg.sha512" 348 | }, 349 | "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0": { 350 | "type": "package", 351 | "serviceable": true, 352 | "sha512": "sha512-b1QVtK4C2/Uq/5mr0bAz0zWICTWXbFGRtptvpBx8s8MgQ/Y3Vc0WIZslKp8gT9ptC9XkFAl6FAP/gzbQSzBcCQ==", 353 | "path": "microsoft.aspnetcore.dataprotection.abstractions/3.1.0", 354 | "hashPath": "microsoft.aspnetcore.dataprotection.abstractions.3.1.0.nupkg.sha512" 355 | }, 356 | "Microsoft.AspNetCore.DataProtection.Extensions/3.1.0": { 357 | "type": "package", 358 | "serviceable": true, 359 | "sha512": "sha512-br1yGiEu2gJrlfAEnjQ7hg9AUY4X6SYePZmQ5idEZefEquAssYse7djE6lItomI3vqHWJ/Hzn0x3XiG4F/jgAA==", 360 | "path": "microsoft.aspnetcore.dataprotection.extensions/3.1.0", 361 | "hashPath": "microsoft.aspnetcore.dataprotection.extensions.3.1.0.nupkg.sha512" 362 | }, 363 | "Microsoft.Bcl.AsyncInterfaces/1.1.0": { 364 | "type": "package", 365 | "serviceable": true, 366 | "sha512": "sha512-1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==", 367 | "path": "microsoft.bcl.asyncinterfaces/1.1.0", 368 | "hashPath": "microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512" 369 | }, 370 | "Microsoft.Build.Tasks.Git/1.0.0": { 371 | "type": "package", 372 | "serviceable": true, 373 | "sha512": "sha512-z2fpmmt+1Jfl+ZnBki9nSP08S1/tbEOxFdsK1rSR+LBehIJz1Xv9/6qOOoGNqlwnAGGVGis1Oj6S8Kt9COEYlQ==", 374 | "path": "microsoft.build.tasks.git/1.0.0", 375 | "hashPath": "microsoft.build.tasks.git.1.0.0.nupkg.sha512" 376 | }, 377 | "Microsoft.Extensions.Configuration.Abstractions/3.1.0": { 378 | "type": "package", 379 | "serviceable": true, 380 | "sha512": "sha512-ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==", 381 | "path": "microsoft.extensions.configuration.abstractions/3.1.0", 382 | "hashPath": "microsoft.extensions.configuration.abstractions.3.1.0.nupkg.sha512" 383 | }, 384 | "Microsoft.Extensions.DependencyInjection/3.1.0": { 385 | "type": "package", 386 | "serviceable": true, 387 | "sha512": "sha512-KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", 388 | "path": "microsoft.extensions.dependencyinjection/3.1.0", 389 | "hashPath": "microsoft.extensions.dependencyinjection.3.1.0.nupkg.sha512" 390 | }, 391 | "Microsoft.Extensions.DependencyInjection.Abstractions/3.1.0": { 392 | "type": "package", 393 | "serviceable": true, 394 | "sha512": "sha512-44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA==", 395 | "path": "microsoft.extensions.dependencyinjection.abstractions/3.1.0", 396 | "hashPath": "microsoft.extensions.dependencyinjection.abstractions.3.1.0.nupkg.sha512" 397 | }, 398 | "Microsoft.Extensions.FileProviders.Abstractions/3.1.0": { 399 | "type": "package", 400 | "serviceable": true, 401 | "sha512": "sha512-G3iBMOnn3tETEUvkE9J3a23wQpRkiXZp73zR0XNlicjLFhkeWW1FCaC2bTjrgHhPi2KO6x0BXnHvVuJPIlygBQ==", 402 | "path": "microsoft.extensions.fileproviders.abstractions/3.1.0", 403 | "hashPath": "microsoft.extensions.fileproviders.abstractions.3.1.0.nupkg.sha512" 404 | }, 405 | "Microsoft.Extensions.Hosting.Abstractions/3.1.0": { 406 | "type": "package", 407 | "serviceable": true, 408 | "sha512": "sha512-LiOP1ceFaPBxaE28SOjtORzOVCJk33TT5VQ/Cg5EoatZh1dxpPAgAV/0ruzWKQE7WAHU3F1H9Z6rFgsQwIb9uQ==", 409 | "path": "microsoft.extensions.hosting.abstractions/3.1.0", 410 | "hashPath": "microsoft.extensions.hosting.abstractions.3.1.0.nupkg.sha512" 411 | }, 412 | "Microsoft.Extensions.Logging.Abstractions/3.1.0": { 413 | "type": "package", 414 | "serviceable": true, 415 | "sha512": "sha512-jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==", 416 | "path": "microsoft.extensions.logging.abstractions/3.1.0", 417 | "hashPath": "microsoft.extensions.logging.abstractions.3.1.0.nupkg.sha512" 418 | }, 419 | "Microsoft.Extensions.Options/3.1.0": { 420 | "type": "package", 421 | "serviceable": true, 422 | "sha512": "sha512-9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==", 423 | "path": "microsoft.extensions.options/3.1.0", 424 | "hashPath": "microsoft.extensions.options.3.1.0.nupkg.sha512" 425 | }, 426 | "Microsoft.Extensions.Primitives/3.1.0": { 427 | "type": "package", 428 | "serviceable": true, 429 | "sha512": "sha512-LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==", 430 | "path": "microsoft.extensions.primitives/3.1.0", 431 | "hashPath": "microsoft.extensions.primitives.3.1.0.nupkg.sha512" 432 | }, 433 | "Microsoft.NETCore.Platforms/1.1.0": { 434 | "type": "package", 435 | "serviceable": true, 436 | "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", 437 | "path": "microsoft.netcore.platforms/1.1.0", 438 | "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" 439 | }, 440 | "Microsoft.SourceLink.Common/1.0.0": { 441 | "type": "package", 442 | "serviceable": true, 443 | "sha512": "sha512-G8DuQY8/DK5NN+3jm5wcMcd9QYD90UV7MiLmdljSJixi3U/vNaeBKmmXUqI4DJCOeWizIUEh4ALhSt58mR+5eg==", 444 | "path": "microsoft.sourcelink.common/1.0.0", 445 | "hashPath": "microsoft.sourcelink.common.1.0.0.nupkg.sha512" 446 | }, 447 | "Microsoft.SourceLink.GitHub/1.0.0": { 448 | "type": "package", 449 | "serviceable": true, 450 | "sha512": "sha512-aZyGyGg2nFSxix+xMkPmlmZSsnGQ3w+mIG23LTxJZHN+GPwTQ5FpPgDo7RMOq+Kcf5D4hFWfXkGhoGstawX13Q==", 451 | "path": "microsoft.sourcelink.github/1.0.0", 452 | "hashPath": "microsoft.sourcelink.github.1.0.0.nupkg.sha512" 453 | }, 454 | "Microsoft.Win32.Registry/4.7.0": { 455 | "type": "package", 456 | "serviceable": true, 457 | "sha512": "sha512-KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", 458 | "path": "microsoft.win32.registry/4.7.0", 459 | "hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512" 460 | }, 461 | "NETStandard.Library/2.0.3": { 462 | "type": "package", 463 | "serviceable": true, 464 | "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", 465 | "path": "netstandard.library/2.0.3", 466 | "hashPath": "netstandard.library.2.0.3.nupkg.sha512" 467 | }, 468 | "System.Buffers/4.5.0": { 469 | "type": "package", 470 | "serviceable": true, 471 | "sha512": "sha512-pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==", 472 | "path": "system.buffers/4.5.0", 473 | "hashPath": "system.buffers.4.5.0.nupkg.sha512" 474 | }, 475 | "System.ComponentModel.Annotations/4.7.0": { 476 | "type": "package", 477 | "serviceable": true, 478 | "sha512": "sha512-0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==", 479 | "path": "system.componentmodel.annotations/4.7.0", 480 | "hashPath": "system.componentmodel.annotations.4.7.0.nupkg.sha512" 481 | }, 482 | "System.Memory/4.5.3": { 483 | "type": "package", 484 | "serviceable": true, 485 | "sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", 486 | "path": "system.memory/4.5.3", 487 | "hashPath": "system.memory.4.5.3.nupkg.sha512" 488 | }, 489 | "System.Numerics.Vectors/4.4.0": { 490 | "type": "package", 491 | "serviceable": true, 492 | "sha512": "sha512-UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==", 493 | "path": "system.numerics.vectors/4.4.0", 494 | "hashPath": "system.numerics.vectors.4.4.0.nupkg.sha512" 495 | }, 496 | "System.Runtime.CompilerServices.Unsafe/4.7.0": { 497 | "type": "package", 498 | "serviceable": true, 499 | "sha512": "sha512-IpU1lcHz8/09yDr9N+Juc7SCgNUz+RohkCQI+KsWKR67XxpFr8Z6c8t1iENCXZuRuNCc4HBwme/MDHNVCwyAKg==", 500 | "path": "system.runtime.compilerservices.unsafe/4.7.0", 501 | "hashPath": "system.runtime.compilerservices.unsafe.4.7.0.nupkg.sha512" 502 | }, 503 | "System.Security.AccessControl/4.7.0": { 504 | "type": "package", 505 | "serviceable": true, 506 | "sha512": "sha512-JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", 507 | "path": "system.security.accesscontrol/4.7.0", 508 | "hashPath": "system.security.accesscontrol.4.7.0.nupkg.sha512" 509 | }, 510 | "System.Security.Cryptography.Cng/4.7.0": { 511 | "type": "package", 512 | "serviceable": true, 513 | "sha512": "sha512-4WQjFuypWtxb/bl/YwEE7LYGn4fgpsikFfBU6xwEm4YBYiRAhXAEJ62lILBu2JJSFbClIAntFTGfDZafn8yZTg==", 514 | "path": "system.security.cryptography.cng/4.7.0", 515 | "hashPath": "system.security.cryptography.cng.4.7.0.nupkg.sha512" 516 | }, 517 | "System.Security.Cryptography.Pkcs/4.7.0": { 518 | "type": "package", 519 | "serviceable": true, 520 | "sha512": "sha512-0Srzh6YlhjuMxaqMyeCCdZs22cucaUAG6SKDd3gNHBJmre0VZ71ekzWu9rvLD4YXPetyNdPvV6Qst+8C++9v3Q==", 521 | "path": "system.security.cryptography.pkcs/4.7.0", 522 | "hashPath": "system.security.cryptography.pkcs.4.7.0.nupkg.sha512" 523 | }, 524 | "System.Security.Cryptography.ProtectedData/4.7.0": { 525 | "type": "package", 526 | "serviceable": true, 527 | "sha512": "sha512-ehYW0m9ptxpGWvE4zgqongBVWpSDU/JCFD4K7krxkQwSz/sFQjEXCUqpvencjy6DYDbn7Ig09R8GFffu8TtneQ==", 528 | "path": "system.security.cryptography.protecteddata/4.7.0", 529 | "hashPath": "system.security.cryptography.protecteddata.4.7.0.nupkg.sha512" 530 | }, 531 | "System.Security.Cryptography.Xml/4.7.0": { 532 | "type": "package", 533 | "serviceable": true, 534 | "sha512": "sha512-B6pAyxMvXGbZemb+ER877KSr6OKis+qAdxhhKKK36I6sgj2js8mbcEVviZEHYV8XRTWjbKsAq8Z/zoaegA30dA==", 535 | "path": "system.security.cryptography.xml/4.7.0", 536 | "hashPath": "system.security.cryptography.xml.4.7.0.nupkg.sha512" 537 | }, 538 | "System.Security.Permissions/4.7.0": { 539 | "type": "package", 540 | "serviceable": true, 541 | "sha512": "sha512-dkOV6YYVBnYRa15/yv004eCGRBVADXw8qRbbNiCn/XpdJSUXkkUeIvdvFHkvnko4CdKMqG8yRHC4ox83LSlMsQ==", 542 | "path": "system.security.permissions/4.7.0", 543 | "hashPath": "system.security.permissions.4.7.0.nupkg.sha512" 544 | }, 545 | "System.Security.Principal.Windows/4.7.0": { 546 | "type": "package", 547 | "serviceable": true, 548 | "sha512": "sha512-ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==", 549 | "path": "system.security.principal.windows/4.7.0", 550 | "hashPath": "system.security.principal.windows.4.7.0.nupkg.sha512" 551 | }, 552 | "System.Threading.Tasks.Extensions/4.5.2": { 553 | "type": "package", 554 | "serviceable": true, 555 | "sha512": "sha512-BG/TNxDFv0svAzx8OiMXDlsHfGw623BZ8tCXw4YLhDFDvDhNUEV58jKYMGRnkbJNm7c3JNNJDiN7JBMzxRBR2w==", 556 | "path": "system.threading.tasks.extensions/4.5.2", 557 | "hashPath": "system.threading.tasks.extensions.4.5.2.nupkg.sha512" 558 | } 559 | } 560 | } --------------------------------------------------------------------------------