34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using System;
|
|
using static StellaOps.Localization.T;
|
|
|
|
namespace StellaOps.Provcache;
|
|
|
|
public sealed partial class VeriKeyBuilder
|
|
{
|
|
/// <summary>
|
|
/// Sets the SBOM canonical hash.
|
|
/// Automatically canonicalizes the SBOM content before hashing if raw bytes are provided.
|
|
/// </summary>
|
|
/// <param name="sbomHash">The SBOM canonical hash.</param>
|
|
/// <returns>This builder for fluent chaining.</returns>
|
|
public VeriKeyBuilder WithSbomHash(string sbomHash)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(sbomHash))
|
|
throw new ArgumentException(_t("common.provcache.sbom_hash_required"), nameof(sbomHash));
|
|
|
|
_sbomHash = NormalizeHash(sbomHash);
|
|
return this;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Computes SBOM hash from raw SBOM bytes using canonical serialization.
|
|
/// </summary>
|
|
/// <param name="sbomBytes">Raw SBOM content bytes.</param>
|
|
/// <returns>This builder for fluent chaining.</returns>
|
|
public VeriKeyBuilder WithSbomBytes(ReadOnlySpan<byte> sbomBytes)
|
|
{
|
|
_sbomHash = ComputeHash(sbomBytes);
|
|
return this;
|
|
}
|
|
}
|