Class SignedGovernanceArtifacts
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
artifactTArtifactcanonicalPayloadCanonicalPayloadcanonicalHashCanonicalPayloadHashsigningMetadataSigningMetadata
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
artifactTArtifactcanonicalPayloadCanonicalPayloadcanonicalHashCanonicalPayloadHashsigningMetadataSigningMetadata
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
artifactTArtifactcanonicalPayloadCanonicalPayloadcanonicalHashCanonicalPayloadHashmetadataIReadOnlyDictionary<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
artifactTArtifactcanonicalPayloadCanonicalPayloadcanonicalHashCanonicalPayloadHash
Returns
- SignedGovernanceArtifact<TArtifact>
Type Parameters
TArtifact