Added password and session creation functions.

This commit is contained in:
2021-01-01 13:29:10 -08:00
parent 26c59555ab
commit 5621418bd7
26 changed files with 232 additions and 56 deletions
+2 -1
View File
@@ -1 +1,2 @@
SecireCore/bin SecureCore/bin
SecureCore/obj
Binary file not shown.
+57 -1
View File
@@ -3,8 +3,10 @@ using Microsoft.AspNetCore.Mvc;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Text;
using SecureCore.Services; using SecureCore.Services;
using System.Security.Cryptography;
using Microsoft.AspNetCore.Cryptography.KeyDerivation;
namespace SecureCore.Controllers namespace SecureCore.Controllers
{ {
@@ -31,5 +33,59 @@ namespace SecureCore.Controllers
{ {
return Ok(DataService.GetById(id)); return Ok(DataService.GetById(id));
} }
[HttpPost("login")]
[AcceptVerbs("POST")]
public IActionResult Login(LoginInfo info)
{
var hash = Auth.HashPassword(info.Password, out string salt);
return Ok($"Session Key: {Auth.CreateSessionId()}{Environment.NewLine}Password Hash: {hash}{Environment.NewLine}Salt: {salt}{Environment.NewLine}");
}
}
public class LoginInfo
{
public string UserName { get; set; }
public string Password { get; set; }
}
public static class Auth
{
public static string CreateSessionId()
{
var sessionId = new byte[32];
GetRandomBytes(ref sessionId);
return ConvertToHex(sessionId);
}
public static string HashPassword(string password, out string saltString)
{
//Generate a 128 bit salt
var salt = new byte[128 / 8];
GetRandomBytes(ref salt);
saltString = ConvertToHex(salt);
return Convert.ToBase64String(KeyDerivation.Pbkdf2(password, salt, KeyDerivationPrf.HMACSHA512, 50000, 512 / 8));
}
private static string ConvertToHex(byte[] bytes)
{
var stringBuilder = new StringBuilder();
foreach (var b in bytes)
stringBuilder.AppendFormat("{0:x2}", b);
return stringBuilder.ToString();
}
private static void GetRandomBytes(ref byte[] bytes)
{
using(var rng = RandomNumberGenerator.Create())
rng.GetBytes(bytes);
}
} }
} }
+4
View File
@@ -5,5 +5,9 @@
<UserSecretsId>e3dff1d0-8e29-4bc2-8020-8999a38530f3</UserSecretsId> <UserSecretsId>e3dff1d0-8e29-4bc2-8020-8999a38530f3</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="5.0.1" />
</ItemGroup>
</Project> </Project>
Binary file not shown.
Binary file not shown.
@@ -24,6 +24,7 @@
".NETCoreApp,Version=v3.1": { ".NETCoreApp,Version=v3.1": {
"SecureCore/1.0.0": { "SecureCore/1.0.0": {
"dependencies": { "dependencies": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "5.0.1",
"Microsoft.AspNetCore.Antiforgery": "3.1.0.0", "Microsoft.AspNetCore.Antiforgery": "3.1.0.0",
"Microsoft.AspNetCore.Authentication.Abstractions": "3.1.0.0", "Microsoft.AspNetCore.Authentication.Abstractions": "3.1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "3.1.0.0", "Microsoft.AspNetCore.Authentication.Cookies": "3.1.0.0",
@@ -40,8 +41,6 @@
"Microsoft.AspNetCore.Connections.Abstractions": "3.1.0.0", "Microsoft.AspNetCore.Connections.Abstractions": "3.1.0.0",
"Microsoft.AspNetCore.CookiePolicy": "3.1.0.0", "Microsoft.AspNetCore.CookiePolicy": "3.1.0.0",
"Microsoft.AspNetCore.Cors": "3.1.0.0", "Microsoft.AspNetCore.Cors": "3.1.0.0",
"Microsoft.AspNetCore.Cryptography.Internal": "3.1.0.0",
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "3.1.0.0",
"Microsoft.AspNetCore.DataProtection.Abstractions": "3.1.0.0", "Microsoft.AspNetCore.DataProtection.Abstractions": "3.1.0.0",
"Microsoft.AspNetCore.DataProtection": "3.1.0.0", "Microsoft.AspNetCore.DataProtection": "3.1.0.0",
"Microsoft.AspNetCore.DataProtection.Extensions": "3.1.0.0", "Microsoft.AspNetCore.DataProtection.Extensions": "3.1.0.0",
@@ -314,6 +313,31 @@
"SecureCore.dll": {} "SecureCore.dll": {}
} }
}, },
"Microsoft.AspNetCore.Cryptography.Internal/5.0.1": {
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.120.60107"
}
},
"compile": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {}
}
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.1": {
"dependencies": {
"Microsoft.AspNetCore.Cryptography.Internal": "5.0.1"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.120.60107"
}
},
"compile": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {}
}
},
"Microsoft.AspNetCore.Antiforgery/3.1.0.0": { "Microsoft.AspNetCore.Antiforgery/3.1.0.0": {
"compile": { "compile": {
"Microsoft.AspNetCore.Antiforgery.dll": {} "Microsoft.AspNetCore.Antiforgery.dll": {}
@@ -410,18 +434,6 @@
}, },
"compileOnly": true "compileOnly": true
}, },
"Microsoft.AspNetCore.Cryptography.Internal/3.1.0.0": {
"compile": {
"Microsoft.AspNetCore.Cryptography.Internal.dll": {}
},
"compileOnly": true
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/3.1.0.0": {
"compile": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {}
},
"compileOnly": true
},
"Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": { "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": {
"compile": { "compile": {
"Microsoft.AspNetCore.DataProtection.Abstractions.dll": {} "Microsoft.AspNetCore.DataProtection.Abstractions.dll": {}
@@ -2014,6 +2026,20 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Microsoft.AspNetCore.Cryptography.Internal/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VGfj77RBkyWpPxvX6oSghE3DPObvg171HRdwr/t3aJQ9Y5cgaZE8BUNLhHZ0yBFa218r7e9Qou+DLGfRtve4CQ==",
"path": "microsoft.aspnetcore.cryptography.internal/5.0.1",
"hashPath": "microsoft.aspnetcore.cryptography.internal.5.0.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYiQ5AZMKVIB+28+ImC6GihJTSh2Sr6iofiYtsOOnCbgCmNBljH4n+r8Qfocxv78xeeby5lwZorq05OvriDbOQ==",
"path": "microsoft.aspnetcore.cryptography.keyderivation/5.0.1",
"hashPath": "microsoft.aspnetcore.cryptography.keyderivation.5.0.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Antiforgery/3.1.0.0": { "Microsoft.AspNetCore.Antiforgery/3.1.0.0": {
"type": "referenceassembly", "type": "referenceassembly",
"serviceable": false, "serviceable": false,
@@ -2094,16 +2120,6 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Microsoft.AspNetCore.Cryptography.Internal/3.1.0.0": {
"type": "referenceassembly",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/3.1.0.0": {
"type": "referenceassembly",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": { "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": {
"type": "referenceassembly", "type": "referenceassembly",
"serviceable": false, "serviceable": false,
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -24,6 +24,7 @@
".NETCoreApp,Version=v3.1": { ".NETCoreApp,Version=v3.1": {
"SecureCore/1.0.0": { "SecureCore/1.0.0": {
"dependencies": { "dependencies": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "5.0.1",
"Microsoft.AspNetCore.Antiforgery": "3.1.0.0", "Microsoft.AspNetCore.Antiforgery": "3.1.0.0",
"Microsoft.AspNetCore.Authentication.Abstractions": "3.1.0.0", "Microsoft.AspNetCore.Authentication.Abstractions": "3.1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "3.1.0.0", "Microsoft.AspNetCore.Authentication.Cookies": "3.1.0.0",
@@ -40,8 +41,6 @@
"Microsoft.AspNetCore.Connections.Abstractions": "3.1.0.0", "Microsoft.AspNetCore.Connections.Abstractions": "3.1.0.0",
"Microsoft.AspNetCore.CookiePolicy": "3.1.0.0", "Microsoft.AspNetCore.CookiePolicy": "3.1.0.0",
"Microsoft.AspNetCore.Cors": "3.1.0.0", "Microsoft.AspNetCore.Cors": "3.1.0.0",
"Microsoft.AspNetCore.Cryptography.Internal": "3.1.0.0",
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "3.1.0.0",
"Microsoft.AspNetCore.DataProtection.Abstractions": "3.1.0.0", "Microsoft.AspNetCore.DataProtection.Abstractions": "3.1.0.0",
"Microsoft.AspNetCore.DataProtection": "3.1.0.0", "Microsoft.AspNetCore.DataProtection": "3.1.0.0",
"Microsoft.AspNetCore.DataProtection.Extensions": "3.1.0.0", "Microsoft.AspNetCore.DataProtection.Extensions": "3.1.0.0",
@@ -314,6 +313,31 @@
"SecureCore.dll": {} "SecureCore.dll": {}
} }
}, },
"Microsoft.AspNetCore.Cryptography.Internal/5.0.1": {
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.120.60107"
}
},
"compile": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {}
}
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.1": {
"dependencies": {
"Microsoft.AspNetCore.Cryptography.Internal": "5.0.1"
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.120.60107"
}
},
"compile": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {}
}
},
"Microsoft.AspNetCore.Antiforgery/3.1.0.0": { "Microsoft.AspNetCore.Antiforgery/3.1.0.0": {
"compile": { "compile": {
"Microsoft.AspNetCore.Antiforgery.dll": {} "Microsoft.AspNetCore.Antiforgery.dll": {}
@@ -410,18 +434,6 @@
}, },
"compileOnly": true "compileOnly": true
}, },
"Microsoft.AspNetCore.Cryptography.Internal/3.1.0.0": {
"compile": {
"Microsoft.AspNetCore.Cryptography.Internal.dll": {}
},
"compileOnly": true
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/3.1.0.0": {
"compile": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {}
},
"compileOnly": true
},
"Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": { "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": {
"compile": { "compile": {
"Microsoft.AspNetCore.DataProtection.Abstractions.dll": {} "Microsoft.AspNetCore.DataProtection.Abstractions.dll": {}
@@ -2014,6 +2026,20 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Microsoft.AspNetCore.Cryptography.Internal/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VGfj77RBkyWpPxvX6oSghE3DPObvg171HRdwr/t3aJQ9Y5cgaZE8BUNLhHZ0yBFa218r7e9Qou+DLGfRtve4CQ==",
"path": "microsoft.aspnetcore.cryptography.internal/5.0.1",
"hashPath": "microsoft.aspnetcore.cryptography.internal.5.0.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYiQ5AZMKVIB+28+ImC6GihJTSh2Sr6iofiYtsOOnCbgCmNBljH4n+r8Qfocxv78xeeby5lwZorq05OvriDbOQ==",
"path": "microsoft.aspnetcore.cryptography.keyderivation/5.0.1",
"hashPath": "microsoft.aspnetcore.cryptography.keyderivation.5.0.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Antiforgery/3.1.0.0": { "Microsoft.AspNetCore.Antiforgery/3.1.0.0": {
"type": "referenceassembly", "type": "referenceassembly",
"serviceable": false, "serviceable": false,
@@ -2094,16 +2120,6 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Microsoft.AspNetCore.Cryptography.Internal/3.1.0.0": {
"type": "referenceassembly",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/3.1.0.0": {
"type": "referenceassembly",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": { "Microsoft.AspNetCore.DataProtection.Abstractions/3.1.0.0": {
"type": "referenceassembly", "type": "referenceassembly",
"serviceable": false, "serviceable": false,
@@ -5,3 +5,5 @@ C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubT
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\SecureCore.deps.json C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\SecureCore.deps.json
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\SecureCore.runtimeconfig.json C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\SecureCore.runtimeconfig.json
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\SecureCore.pdb C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\SecureCore.pdb
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\Microsoft.AspNetCore.Cryptography.Internal.dll
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\PubTmp\Out\Microsoft.AspNetCore.Cryptography.KeyDerivation.dll
@@ -1 +1 @@
707cc6b556c13148aa191cb544faa8d46927ce06 bcb5d7715e4b62750b8707cb5830a8376ef8a29b
@@ -18,3 +18,6 @@ C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\Secu
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\SecureCore.dll C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\SecureCore.dll
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\SecureCore.pdb C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\SecureCore.pdb
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\SecureCore.genruntimeconfig.cache C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\SecureCore.genruntimeconfig.cache
C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Release\netcoreapp3.1\Microsoft.AspNetCore.Cryptography.Internal.dll
C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Release\netcoreapp3.1\Microsoft.AspNetCore.Cryptography.KeyDerivation.dll
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Release\netcoreapp3.1\SecureCore.csproj.CopyComplete
Binary file not shown.
Binary file not shown.
@@ -39,6 +39,12 @@
"frameworks": { "frameworks": {
"netcoreapp3.1": { "netcoreapp3.1": {
"targetAlias": "netcoreapp3.1", "targetAlias": "netcoreapp3.1",
"dependencies": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation": {
"target": "Package",
"version": "[5.0.1, )"
}
},
"imports": [ "imports": [
"net461", "net461",
"net462", "net462",
+72 -3
View File
@@ -1,11 +1,74 @@
{ {
"version": 3, "version": 3,
"targets": { "targets": {
".NETCoreApp,Version=v3.1": {} ".NETCoreApp,Version=v3.1": {
"Microsoft.AspNetCore.Cryptography.Internal/5.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {}
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {}
}
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.1": {
"type": "package",
"dependencies": {
"Microsoft.AspNetCore.Cryptography.Internal": "5.0.1"
},
"compile": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {}
},
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {}
}
}
}
},
"libraries": {
"Microsoft.AspNetCore.Cryptography.Internal/5.0.1": {
"sha512": "VGfj77RBkyWpPxvX6oSghE3DPObvg171HRdwr/t3aJQ9Y5cgaZE8BUNLhHZ0yBFa218r7e9Qou+DLGfRtve4CQ==",
"type": "package",
"path": "microsoft.aspnetcore.cryptography.internal/5.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/Microsoft.AspNetCore.Cryptography.Internal.dll",
"lib/net461/Microsoft.AspNetCore.Cryptography.Internal.xml",
"lib/net5.0/Microsoft.AspNetCore.Cryptography.Internal.dll",
"lib/net5.0/Microsoft.AspNetCore.Cryptography.Internal.xml",
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.dll",
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.Internal.xml",
"microsoft.aspnetcore.cryptography.internal.5.0.1.nupkg.sha512",
"microsoft.aspnetcore.cryptography.internal.nuspec"
]
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.1": {
"sha512": "kYiQ5AZMKVIB+28+ImC6GihJTSh2Sr6iofiYtsOOnCbgCmNBljH4n+r8Qfocxv78xeeby5lwZorq05OvriDbOQ==",
"type": "package",
"path": "microsoft.aspnetcore.cryptography.keyderivation/5.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll",
"lib/net461/Microsoft.AspNetCore.Cryptography.KeyDerivation.xml",
"lib/net5.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll",
"lib/net5.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.xml",
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll",
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.xml",
"microsoft.aspnetcore.cryptography.keyderivation.5.0.1.nupkg.sha512",
"microsoft.aspnetcore.cryptography.keyderivation.nuspec"
]
}
}, },
"libraries": {},
"projectFileDependencyGroups": { "projectFileDependencyGroups": {
".NETCoreApp,Version=v3.1": [] ".NETCoreApp,Version=v3.1": [
"Microsoft.AspNetCore.Cryptography.KeyDerivation >= 5.0.1"
]
}, },
"packageFolders": { "packageFolders": {
"C:\\Users\\admin\\.nuget\\packages\\": {} "C:\\Users\\admin\\.nuget\\packages\\": {}
@@ -45,6 +108,12 @@
"frameworks": { "frameworks": {
"netcoreapp3.1": { "netcoreapp3.1": {
"targetAlias": "netcoreapp3.1", "targetAlias": "netcoreapp3.1",
"dependencies": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation": {
"target": "Package",
"version": "[5.0.1, )"
}
},
"imports": [ "imports": [
"net461", "net461",
"net462", "net462",
+5 -2
View File
@@ -1,8 +1,11 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "9FQAdWJG89/k6D0GaFBO0LTdH1bJLNLf/t03TJ8KG7JJrHo16V/4RK3ghJk2Sms/7C9fpATlx8iJQ/EL/gOZrA==", "dgSpecHash": "kVPmXtAIxW3sLl1aKG4wTc94WxVgDpVrh3dL9khCp0uQd+jCawAmhvkjc5Cx7PmrwWNEqF+HMEi9ePYVrb9lfA==",
"success": true, "success": true,
"projectFilePath": "C:\\Users\\admin\\source\\repos\\SecureCore\\SecureCore\\SecureCore.csproj", "projectFilePath": "C:\\Users\\admin\\source\\repos\\SecureCore\\SecureCore\\SecureCore.csproj",
"expectedPackageFiles": [], "expectedPackageFiles": [
"C:\\Users\\admin\\.nuget\\packages\\microsoft.aspnetcore.cryptography.internal\\5.0.1\\microsoft.aspnetcore.cryptography.internal.5.0.1.nupkg.sha512",
"C:\\Users\\admin\\.nuget\\packages\\microsoft.aspnetcore.cryptography.keyderivation\\5.0.1\\microsoft.aspnetcore.cryptography.keyderivation.5.0.1.nupkg.sha512"
],
"logs": [] "logs": []
} }