< 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: 35
Uncovered lines: 0
Coverable lines: 35
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%
get_Signature()100%11100%
get_SignatureAlgorithm()100%11100%
get_KeyId()100%11100%
get_KeyVersion()100%11100%
get_ProviderOperationId()100%11100%
get_SignedUtc()100%11100%
get_Metadata()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{
 328    private ManagedKeySignResult(
 329        string signature,
 3210        string signatureAlgorithm,
 3211        string keyId,
 3212        string? keyVersion,
 3213        string? providerOperationId,
 3214        DateTimeOffset signedUtc,
 3215        IReadOnlyDictionary<string, string> metadata)
 16    {
 3217        ArgumentException.ThrowIfNullOrWhiteSpace(signature);
 3218        ArgumentException.ThrowIfNullOrWhiteSpace(signatureAlgorithm);
 3219        ArgumentException.ThrowIfNullOrWhiteSpace(keyId);
 20
 3221        Signature = signature.Trim();
 3222        SignatureAlgorithm = signatureAlgorithm.Trim();
 3223        KeyId = keyId.Trim();
 3224        KeyVersion = NormalizeOptional(keyVersion);
 3225        ProviderOperationId = NormalizeOptional(providerOperationId);
 3226        SignedUtc = signedUtc.ToUniversalTime();
 3227        Metadata = metadata;
 3228    }
 29
 30    /// <summary>
 31    /// Gets the provider-neutral encoded signature value or provider signature reference.
 32    /// </summary>
 2433    public string Signature { get; }
 34
 35    /// <summary>
 36    /// Gets the provider-neutral signature algorithm descriptor.
 37    /// </summary>
 2438    public string SignatureAlgorithm { get; }
 39
 40    /// <summary>
 41    /// Gets the managed key identifier or key URI reference used to sign.
 42    /// </summary>
 2443    public string KeyId { get; }
 44
 45    /// <summary>
 46    /// Gets the managed key version used to sign, when supplied by the provider.
 47    /// </summary>
 2448    public string? KeyVersion { get; }
 49
 50    /// <summary>
 51    /// Gets a safe provider operation identifier, when supplied.
 52    /// </summary>
 3653    public string? ProviderOperationId { get; }
 54
 55    /// <summary>
 56    /// Gets the UTC timestamp when the provider completed signing.
 57    /// </summary>
 2458    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>
 3268    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    {
 3282        return new ManagedKeySignResult(
 3283            signature,
 3284            signatureAlgorithm,
 3285            keyId,
 3286            keyVersion,
 3287            providerOperationId,
 3288            signedUtc,
 3289            ManagedKeyProviderMetadataFilter.Filter(metadata));
 90    }
 91
 92    private static string? NormalizeOptional(string? value)
 93    {
 6494        return string.IsNullOrWhiteSpace(value) ? null : value.Trim();
 95    }
 96}