save progress
This commit is contained in:
@@ -136,9 +136,9 @@ public sealed class BackportProofService
|
||||
if (advisory == null) return null;
|
||||
|
||||
// Create evidence from advisory data
|
||||
var advisoryData = JsonDocument.Parse(JsonSerializer.Serialize(advisory));
|
||||
var advisoryData = SerializeToElement(advisory, out var advisoryBytes);
|
||||
var dataHash = StellaOps.Canonical.Json.CanonJson.Sha256Prefixed(
|
||||
StellaOps.Canonical.Json.CanonJson.Canonicalize(advisoryData));
|
||||
StellaOps.Canonical.Json.CanonJson.CanonicalizeParsedJson(advisoryBytes));
|
||||
|
||||
return new ProofEvidence
|
||||
{
|
||||
@@ -161,9 +161,9 @@ public sealed class BackportProofService
|
||||
|
||||
foreach (var changelog in changelogs)
|
||||
{
|
||||
var changelogData = JsonDocument.Parse(JsonSerializer.Serialize(changelog));
|
||||
var changelogData = SerializeToElement(changelog, out var changelogBytes);
|
||||
var dataHash = StellaOps.Canonical.Json.CanonJson.Sha256Prefixed(
|
||||
StellaOps.Canonical.Json.CanonJson.Canonicalize(changelogData));
|
||||
StellaOps.Canonical.Json.CanonJson.CanonicalizeParsedJson(changelogBytes));
|
||||
|
||||
evidences.Add(new ProofEvidence
|
||||
{
|
||||
@@ -190,9 +190,9 @@ public sealed class BackportProofService
|
||||
var patchHeaders = await _patchRepo.FindPatchHeadersByCveAsync(cveId, cancellationToken);
|
||||
foreach (var header in patchHeaders)
|
||||
{
|
||||
var headerData = JsonDocument.Parse(JsonSerializer.Serialize(header));
|
||||
var headerData = SerializeToElement(header, out var headerBytes);
|
||||
var dataHash = StellaOps.Canonical.Json.CanonJson.Sha256Prefixed(
|
||||
StellaOps.Canonical.Json.CanonJson.Canonicalize(headerData));
|
||||
StellaOps.Canonical.Json.CanonJson.CanonicalizeParsedJson(headerBytes));
|
||||
|
||||
evidences.Add(new ProofEvidence
|
||||
{
|
||||
@@ -209,9 +209,9 @@ public sealed class BackportProofService
|
||||
var patchSigs = await _patchRepo.FindPatchSignaturesByCveAsync(cveId, cancellationToken);
|
||||
foreach (var sig in patchSigs)
|
||||
{
|
||||
var sigData = JsonDocument.Parse(JsonSerializer.Serialize(sig));
|
||||
var sigData = SerializeToElement(sig, out var sigBytes);
|
||||
var dataHash = StellaOps.Canonical.Json.CanonJson.Sha256Prefixed(
|
||||
StellaOps.Canonical.Json.CanonJson.Canonicalize(sigData));
|
||||
StellaOps.Canonical.Json.CanonJson.CanonicalizeParsedJson(sigBytes));
|
||||
|
||||
evidences.Add(new ProofEvidence
|
||||
{
|
||||
@@ -242,9 +242,9 @@ public sealed class BackportProofService
|
||||
var matchResult = await _fingerprintFactory.MatchBestAsync(binaryPath, knownFingerprints, cancellationToken);
|
||||
if (matchResult?.IsMatch == true)
|
||||
{
|
||||
var fingerprintData = JsonDocument.Parse(JsonSerializer.Serialize(matchResult));
|
||||
var fingerprintData = SerializeToElement(matchResult, out var fingerprintBytes);
|
||||
var dataHash = StellaOps.Canonical.Json.CanonJson.Sha256Prefixed(
|
||||
StellaOps.Canonical.Json.CanonJson.Canonicalize(fingerprintData));
|
||||
StellaOps.Canonical.Json.CanonJson.CanonicalizeParsedJson(fingerprintBytes));
|
||||
|
||||
evidences.Add(new ProofEvidence
|
||||
{
|
||||
@@ -268,6 +268,13 @@ public sealed class BackportProofService
|
||||
await Task.CompletedTask;
|
||||
return null;
|
||||
}
|
||||
|
||||
private static JsonElement SerializeToElement<T>(T value, out byte[] jsonBytes)
|
||||
{
|
||||
jsonBytes = JsonSerializer.SerializeToUtf8Bytes(value);
|
||||
using var document = JsonDocument.Parse(jsonBytes);
|
||||
return document.RootElement.Clone();
|
||||
}
|
||||
}
|
||||
|
||||
// Repository interfaces (to be implemented by storage layer)
|
||||
|
||||
Reference in New Issue
Block a user