Fix sha tests
This commit is contained in:
parent
f8dea0e7f9
commit
a47139f033
|
|
@ -41,14 +41,16 @@ namespace Microsoft.AspNetCore.Identity.Test
|
||||||
[MemberData(nameof(ScriptWithIntegrityData))]
|
[MemberData(nameof(ScriptWithIntegrityData))]
|
||||||
public async Task IdentityUI_ScriptTags_SubresourceIntegrityCheck(ScriptTag scriptTag)
|
public async Task IdentityUI_ScriptTags_SubresourceIntegrityCheck(ScriptTag scriptTag)
|
||||||
{
|
{
|
||||||
var sha256Integrity = await GetShaIntegrity(scriptTag, SHA256.Create(), "sha256");
|
var integrity = await GetShaIntegrity(scriptTag);
|
||||||
Assert.Equal(scriptTag.Integrity, sha256Integrity);
|
Assert.Equal(scriptTag.Integrity, integrity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<string> GetShaIntegrity(ScriptTag scriptTag, HashAlgorithm algorithm, string prefix)
|
private async Task<string> GetShaIntegrity(ScriptTag scriptTag)
|
||||||
{
|
{
|
||||||
|
var isSha256 = scriptTag.Integrity.StartsWith("sha256");
|
||||||
|
var prefix = isSha256 ? "sha256" : "sha384";
|
||||||
using (var respStream = await _httpClient.GetStreamAsync(scriptTag.Src))
|
using (var respStream = await _httpClient.GetStreamAsync(scriptTag.Src))
|
||||||
using (var alg = SHA256.Create())
|
using (var alg = isSha256 ? SHA256.Create() : SHA384.Create())
|
||||||
{
|
{
|
||||||
var hash = alg.ComputeHash(respStream);
|
var hash = alg.ComputeHash(respStream);
|
||||||
return $"{prefix}-" + Convert.ToBase64String(hash);
|
return $"{prefix}-" + Convert.ToBase64String(hash);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue