├── 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 
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 | }
--------------------------------------------------------------------------------