< Summary

Information
Class: AsiBackbone.Signing.ManagedKey.ManagedKeySignResult
Assembly: AsiBackbone.Signing.ManagedKey
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.Signing.ManagedKey/ManagedKeySignResult.cs
Line coverage
100%
Covered lines: 28
Uncovered lines: 0
Coverable lines: 28
Total lines: 96
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Create(...)100%11100%
NormalizeOptional(...)100%22100%

File(s)

/home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.Signing.ManagedKey/ManagedKeySignResult.cs

#LineLine coverage
 1namespace AsiBackbone.Signing.ManagedKey;
 2
 3/// <summary>
 4/// Represents the result returned by a host-owned managed-key signing client.
 5/// </summary>
 6public sealed class ManagedKeySignResult
 7{
 218    private ManagedKeySignResult(
 219        string signature,
 2110        string signatureAlgorithm,
 2111        string keyId,
 2112        string? keyVersion,
 2113        string? providerOperationId,
 2114        DateTimeOffset signedUtc,
 2115        IReadOnlyDictionary<string, string> metadata)
 16    {
 2117        ArgumentException.ThrowIfNullOrWhiteSpace(signature);
 2118        ArgumentException.ThrowIfNullOrWhiteSpace(signatureAlgorithm);
 2119        ArgumentException.ThrowIfNullOrWhiteSpace(keyId);
 20
 2121        Signature = signature.Trim();
 2122        SignatureAlgorithm = signatureAlgorithm.Trim();
 2123        KeyId = keyId.Trim();
 2124        KeyVersion = NormalizeOptional(keyVersion);
 2125        ProviderOperationId = NormalizeOptional(providerOperationId);
 2126        SignedUtc = signedUtc.ToUniversalTime();
 2127        Metadata = metadata;
 2128    }
 29
 30    /// <summary>
 31    /// Gets the provider-neutral encoded signature value or provider signature reference.
 32    /// </summary>
 33    public string Signature { get; }
 34
 35    /// <summary>
 36    /// Gets the provider-neutral signature algorithm descriptor.
 37    /// </summary>
 38    public string SignatureAlgorithm { get; }
 39
 40    /// <summary>
 41    /// Gets the managed key identifier or key URI reference used to sign.
 42    /// </summary>
 43    public string KeyId { get; }
 44
 45    /// <summary>
 46    /// Gets the managed key version used to sign, when supplied by the provider.
 47    /// </summary>
 48    public string? KeyVersion { get; }
 49
 50    /// <summary>
 51    /// Gets a safe provider operation identifier, when supplied.
 52    /// </summary>
 53    public string? ProviderOperationId { get; }
 54
 55    /// <summary>
 56    /// Gets the UTC timestamp when the provider completed signing.
 57    /// </summary>
 58    public DateTimeOffset SignedUtc { get; }
 59
 60    /// <summary>
 61    /// Gets minimized provider-neutral diagnostic metadata returned by the managed-key client.
 62    /// </summary>
 63    /// <remarks>
 64    /// Provider metadata is an untrusted input. Only documented provider-neutral diagnostic keys
 65    /// are retained, and key, value, count, and aggregate-size limits are applied before the
 66    /// metadata can reach signing or downstream audit records.
 67    /// </remarks>
 68    public IReadOnlyDictionary<string, string> Metadata { get; }
 69
 70    /// <summary>
 71    /// Creates a successful managed-key sign result.
 72    /// </summary>
 73    public static ManagedKeySignResult Create(
 74        string signature,
 75        string signatureAlgorithm,
 76        string keyId,
 77        string? keyVersion,
 78        DateTimeOffset signedUtc,
 79        string? providerOperationId = null,
 80        IReadOnlyDictionary<string, string>? metadata = null)
 81    {
 2182        return new ManagedKeySignResult(
 2183            signature,
 2184            signatureAlgorithm,
 2185            keyId,
 2186            keyVersion,
 2187            providerOperationId,
 2188            signedUtc,
 2189            ManagedKeyProviderMetadataFilter.Filter(metadata));
 90    }
 91
 92    private static string? NormalizeOptional(string? value)
 93    {
 4294        return string.IsNullOrWhiteSpace(value) ? null : value.Trim();
 95    }
 96}