private static IDownload CheckIntegrity(this CorsRequest cors, IDownload download) { var response = download.Task.Result; var value = cors.Request.Source?.GetAttribute(AttributeNames.Integrity); var integrity = cors.Integrity; if (!String.IsNullOrEmpty(value) && integrity != null && response != null) { var content = new MemoryStream(); response.Content.CopyTo(content); content.Position = 0; if (!integrity.IsSatisfied(content.ToArray(), value)) { response.Dispose(); throw new DomException(DomError.Security); } return(download.Wrap(new DefaultResponse { Address = response.Address, Content = content, Headers = response.Headers, StatusCode = response.StatusCode })); } return(download); }
private static IDownload CheckIntegrity(this CorsRequest cors, IDownload download) { var response = download.Task.Result; var value = cors.Request.Source?.GetAttribute(AttributeNames.Integrity); var integrity = cors.Integrity; if (!String.IsNullOrEmpty(value) && integrity != null && response != null) { var content = new MemoryStream(); response.Content.CopyTo(content); content.Position = 0; if (!integrity.IsSatisfied(content.ToArray(), value)) { response.Dispose(); throw new DomException(DomError.Security); } return download.Wrap(new Response { Address = response.Address, Content = content, Headers = response.Headers, StatusCode = response.StatusCode }); } return download; }