Table of Contents

Class SignedGovernanceArtifacts

Namespace
AsiBackbone.Core.Signing
Assembly
AsiBackbone.Core.dll

Provides non-generic factories for creating signed governance artifact wrappers.

public static class SignedGovernanceArtifacts
Inheritance
SignedGovernanceArtifacts
Inherited Members

Methods

FromSigningMetadata<TArtifact>(TArtifact, CanonicalPayload, CanonicalPayloadHash, SigningMetadata)

Creates an artifact wrapper from signing metadata returned by a host or provider package.

public static SignedGovernanceArtifact<TArtifact> FromSigningMetadata<TArtifact>(TArtifact artifact, CanonicalPayload canonicalPayload, CanonicalPayloadHash canonicalHash, SigningMetadata signingMetadata)

Parameters

artifact TArtifact
canonicalPayload CanonicalPayload
canonicalHash CanonicalPayloadHash
signingMetadata SigningMetadata

Returns

SignedGovernanceArtifact<TArtifact>

Type Parameters

TArtifact

Remarks

The supplied canonicalHash is trusted as given, which is appropriate immediately after a signing call produced it from canonicalPayload. Use Rehydrate<TArtifact>(TArtifact, CanonicalPayload, CanonicalPayloadHash, SigningMetadata) when the payload and hash were read back from storage or received over a wire, so the pair is checked rather than assumed.

Rehydrate<TArtifact>(TArtifact, CanonicalPayload, CanonicalPayloadHash, SigningMetadata)

Creates an artifact wrapper from a stored canonical payload, hash, and signing metadata, verifying that the payload hashes to the stored hash.

public static SignedGovernanceArtifact<TArtifact> Rehydrate<TArtifact>(TArtifact artifact, CanonicalPayload canonicalPayload, CanonicalPayloadHash canonicalHash, SigningMetadata signingMetadata)

Parameters

artifact TArtifact
canonicalPayload CanonicalPayload
canonicalHash CanonicalPayloadHash
signingMetadata SigningMetadata

Returns

SignedGovernanceArtifact<TArtifact>

Type Parameters

TArtifact

Remarks

Use this factory when rehydrating a previously signed artifact from storage, a queue, or any other channel outside the signing call itself. FromSigningMetadata<TArtifact>(TArtifact, CanonicalPayload, CanonicalPayloadHash, SigningMetadata) accepts the hash a caller supplies, which is correct immediately after signing but does not establish that a stored payload still hashes to a stored hash. Rehydration recomputes the hash and rejects the retained payload/hash pair when they disagree. It does not rebuild a payload from artifact and therefore does not authenticate that separately supplied typed object. Callers that consume the typed object should use VerifyTypedAsync<TArtifact>(SignedGovernanceArtifact<TArtifact>, IGovernanceSignatureVerificationService, Func<TArtifact, CanonicalPayload>, VerificationPolicyOptions?, VerificationPolicyContext?, CancellationToken) with the applicable canonical payload builder before trusting its values.

Exceptions

ArgumentException

The canonical payload does not hash to canonicalHash.

NotSupportedException

The canonical hash algorithm is not supported by the built-in hasher.

SigningReady<TArtifact>(TArtifact, CanonicalPayload, CanonicalPayloadHash, IReadOnlyDictionary<string, string>?)

Creates a signing-ready artifact wrapper. Hash metadata is attached without implying that a signature exists.

public static SignedGovernanceArtifact<TArtifact> SigningReady<TArtifact>(TArtifact artifact, CanonicalPayload canonicalPayload, CanonicalPayloadHash canonicalHash, IReadOnlyDictionary<string, string>? metadata = null)

Parameters

artifact TArtifact
canonicalPayload CanonicalPayload
canonicalHash CanonicalPayloadHash
metadata IReadOnlyDictionary<string, string>

Returns

SignedGovernanceArtifact<TArtifact>

Type Parameters

TArtifact

WithoutSignature<TArtifact>(TArtifact, CanonicalPayload, CanonicalPayloadHash)

Creates an artifact wrapper with no signing metadata attached.

public static SignedGovernanceArtifact<TArtifact> WithoutSignature<TArtifact>(TArtifact artifact, CanonicalPayload canonicalPayload, CanonicalPayloadHash canonicalHash)

Parameters

artifact TArtifact
canonicalPayload CanonicalPayload
canonicalHash CanonicalPayloadHash

Returns

SignedGovernanceArtifact<TArtifact>

Type Parameters

TArtifact