save progress

This commit is contained in:
StellaOps Bot
2026-01-02 21:06:27 +02:00
parent f46bde5575
commit 3f197814c5
441 changed files with 21545 additions and 4306 deletions

View File

@@ -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)