stabilize tests

This commit is contained in:
master
2026-02-01 21:37:40 +02:00
parent 55744f6a39
commit 5d5e80b2e4
6435 changed files with 33984 additions and 13802 deletions

View File

@@ -9,7 +9,7 @@
- `docs/07_HIGH_LEVEL_ARCHITECTURE.md`
- `docs/modules/platform/architecture-overview.md`
- Relevant module dossiers referenced by the sprint.
- `docs/19_TEST_SUITE_OVERVIEW.md` (for test conventions)
- `docs/technical/testing/TEST_SUITE_OVERVIEW.md` (for test conventions)
## Working Agreements
- Target `net10.0` with C# preview where used in the repo.
@@ -21,3 +21,4 @@
- Add tests under `src/__Libraries/__Tests` with deterministic fixtures.
- Prefer focused test projects per library.
- Validate by `dotnet build` and `dotnet test` for affected projects.

View File

@@ -2,10 +2,11 @@
// Copyright (c) StellaOps. Licensed under the BUSL-1.1.
// </copyright>
using System.Collections.Concurrent;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.AdvisoryAI.Attestation.Models;
using System.Collections.Concurrent;
using System.Text.Json;
namespace StellaOps.AdvisoryAI.Attestation;

View File

@@ -2,12 +2,13 @@
// Copyright (c) StellaOps. Licensed under the BUSL-1.1.
// </copyright>
using Microsoft.Extensions.Logging;
using StellaOps.AdvisoryAI.Attestation.Models;
using System.Collections.Concurrent;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Logging;
using StellaOps.AdvisoryAI.Attestation.Models;
namespace StellaOps.AdvisoryAI.Attestation;

View File

@@ -2,8 +2,9 @@
// Copyright (c) StellaOps. Licensed under the BUSL-1.1.
// </copyright>
using System.Collections.Immutable;
using StellaOps.AdvisoryAI.Attestation.Models;
using System.Collections.Immutable;
namespace StellaOps.AdvisoryAI.Attestation.Storage;

View File

@@ -2,10 +2,11 @@
// Copyright (c) StellaOps. Licensed under the BUSL-1.1.
// </copyright>
using System.Collections.Concurrent;
using System.Collections.Immutable;
using Microsoft.Extensions.Logging;
using StellaOps.AdvisoryAI.Attestation.Models;
using System.Collections.Concurrent;
using System.Collections.Immutable;
namespace StellaOps.AdvisoryAI.Attestation.Storage;

View File

@@ -0,0 +1,8 @@
# StellaOps.AdvisoryAI.Attestation Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/__Libraries/StellaOps.AdvisoryAI.Attestation/StellaOps.AdvisoryAI.Attestation.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -0,0 +1,8 @@
# StellaOps.Artifact.Core.Tests Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/__Libraries/StellaOps.Artifact.Core.Tests/StellaOps.Artifact.Core.Tests.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -6,12 +6,13 @@
// Description: API controller for unified artifact storage
// -----------------------------------------------------------------------------
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using StellaOps.Artifact.Core;
using System.ComponentModel.DataAnnotations;
namespace StellaOps.Artifact.Api;

View File

@@ -5,14 +5,15 @@
// Description: Standalone service for extracting metadata from CycloneDX SBOMs
// -----------------------------------------------------------------------------
using Microsoft.Extensions.Logging.Abstractions;
using StellaOps.Concelier.SbomIntegration.Models;
using StellaOps.Concelier.SbomIntegration.Parsing;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Xml;
using System.Xml.Linq;
using Microsoft.Extensions.Logging.Abstractions;
using StellaOps.Concelier.SbomIntegration.Models;
using StellaOps.Concelier.SbomIntegration.Parsing;
namespace StellaOps.Artifact.Core;

View File

@@ -0,0 +1,8 @@
# StellaOps.Artifact.Core Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/__Libraries/StellaOps.Artifact.Core/StellaOps.Artifact.Core.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -7,7 +7,7 @@
## Required Reading (treat as read before edits)
- `docs/operations/artifact-migration-runbook.md`
- `docs/modules/platform/architecture-overview.md`
- `docs/19_TEST_SUITE_OVERVIEW.md`
- `docs/technical/testing/TEST_SUITE_OVERVIEW.md`
## Working Agreements
- Deterministic outputs (ordering, timestamps, hashing).
@@ -17,3 +17,4 @@
## Testing Expectations
- Add or update unit tests under `src/__Libraries/__Tests`.
- Run `dotnet test` for affected test projects when changes are made.

View File

@@ -5,9 +5,10 @@
// Description: Migrates existing evidence from legacy paths to unified store
// -----------------------------------------------------------------------------
using System.Runtime.CompilerServices;
using Microsoft.Extensions.Logging;
using StellaOps.Artifact.Core;
using System.Runtime.CompilerServices;
namespace StellaOps.Artifact.Infrastructure;

View File

@@ -5,10 +5,11 @@
// Description: S3-backed implementation of unified artifact store
// -----------------------------------------------------------------------------
using System.Security.Cryptography;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Artifact.Core;
using System.Security.Cryptography;
namespace StellaOps.Artifact.Infrastructure;

View File

@@ -5,6 +5,7 @@
// Description: DI registration for artifact store services
// -----------------------------------------------------------------------------
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;

View File

@@ -0,0 +1,8 @@
# StellaOps.Artifact.Infrastructure Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/__Libraries/StellaOps.Artifact.Infrastructure/StellaOps.Artifact.Infrastructure.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,7 +1,8 @@
using StellaOps.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.Audit.ReplayToken;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0043-M | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0043-T | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0043-A | TODO | Requires MAINT/TEST + approval. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,6 +1,7 @@
using System.Collections.Immutable;
namespace StellaOps.AuditPack.Models;
using System.Collections.Immutable;
/// <summary>
/// A sealed, self-contained audit pack for verification and compliance.

View File

@@ -1,3 +1,4 @@
using System.Buffers.Binary;
using System.Formats.Tar;
using System.IO.Compression;

View File

@@ -5,11 +5,12 @@
// Description: Reads and verifies audit bundles for offline replay.
// -----------------------------------------------------------------------------
using StellaOps.AuditPack.Models;
using System.Collections.Immutable;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AuditPack.Models;
namespace StellaOps.AuditPack.Services;

View File

@@ -5,6 +5,7 @@
// Description: Signs and verifies audit bundle manifests using DSSE.
// -----------------------------------------------------------------------------
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;

View File

@@ -5,10 +5,11 @@
// Description: Writes self-contained audit bundles for offline replay.
// -----------------------------------------------------------------------------
using StellaOps.AuditPack.Models;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AuditPack.Models;
namespace StellaOps.AuditPack.Services;

View File

@@ -1,9 +1,11 @@
namespace StellaOps.AuditPack.Services;
using StellaOps.AuditPack.Models;
using System.Collections.Immutable;
using System.Security.Cryptography;
using System.Text;
using AuditPackRecord = StellaOps.AuditPack.Models.AuditPack;
namespace StellaOps.AuditPack.Services;
/// <summary>
/// Builds audit packs from scan results.
@@ -22,7 +24,7 @@ public sealed class AuditPackBuilder : IAuditPackBuilder
/// <summary>
/// Builds an audit pack from a scan result.
/// </summary>
public async Task<AuditPack> BuildAsync(
public async Task<AuditPackRecord> BuildAsync(
ScanResult scanResult,
AuditPackOptions options,
CancellationToken ct = default)
@@ -41,7 +43,7 @@ public sealed class AuditPackBuilder : IAuditPackBuilder
// Create pack structure
var now = _timeProvider.GetUtcNow();
var pack = new AuditPack
var pack = new AuditPackRecord
{
PackId = _idGenerator.NewPackId(),
SchemaVersion = "1.0.0",
@@ -73,7 +75,7 @@ public sealed class AuditPackBuilder : IAuditPackBuilder
/// Exports audit pack to archive file.
/// </summary>
public async Task ExportAsync(
AuditPack pack,
AuditPackRecord pack,
string outputPath,
ExportOptions options,
CancellationToken ct = default)
@@ -95,7 +97,7 @@ public sealed class AuditPackBuilder : IAuditPackBuilder
await ArchiveUtilities.WriteTarGzAsync(outputPath, entries, ct);
}
private static AuditPack WithDigest(AuditPack pack)
private static AuditPackRecord WithDigest(AuditPackRecord pack)
{
var json = CanonicalJson.Serialize(pack with { PackDigest = null, Signature = null });
var digest = ComputeDigest(json);
@@ -157,7 +159,7 @@ public sealed class AuditPackBuilder : IAuditPackBuilder
return result.Envelope;
}
private static PackFileBuildResult BuildPackFiles(AuditPack pack)
private static PackFileBuildResult BuildPackFiles(AuditPackRecord pack)
{
var entries = new List<ArchiveEntry>();
var files = new List<PackFile>();
@@ -225,8 +227,8 @@ public sealed class AuditPackBuilder : IAuditPackBuilder
public interface IAuditPackBuilder
{
Task<AuditPack> BuildAsync(ScanResult scanResult, AuditPackOptions options, CancellationToken ct = default);
Task ExportAsync(AuditPack pack, string outputPath, ExportOptions options, CancellationToken ct = default);
Task<AuditPackRecord> BuildAsync(ScanResult scanResult, AuditPackOptions options, CancellationToken ct = default);
Task ExportAsync(AuditPackRecord pack, string outputPath, ExportOptions options, CancellationToken ct = default);
}
public sealed record AuditPackOptions

View File

@@ -4,11 +4,12 @@
// Task: T5 — Backend export service for audit packs
// -----------------------------------------------------------------------------
using StellaOps.AuditPack.Models;
using System.Globalization;
using System.IO.Compression;
using System.Text;
using System.Text.Json;
using StellaOps.AuditPack.Models;
namespace StellaOps.AuditPack.Services;

View File

@@ -1,8 +1,10 @@
namespace StellaOps.AuditPack.Services;
using StellaOps.AuditPack.Models;
using System.Security.Cryptography;
using System.Text.Json;
using AuditPackRecord = StellaOps.AuditPack.Models.AuditPack;
namespace StellaOps.AuditPack.Services;
/// <summary>
/// Imports and validates audit packs.
@@ -45,7 +47,7 @@ public sealed class AuditPackImporter : IAuditPackImporter
}
var manifestJson = await File.ReadAllBytesAsync(manifestPath, ct);
var pack = JsonSerializer.Deserialize<AuditPack>(manifestJson, JsonOptions);
var pack = JsonSerializer.Deserialize<AuditPackRecord>(manifestJson, JsonOptions);
if (pack == null)
{
@@ -94,7 +96,7 @@ public sealed class AuditPackImporter : IAuditPackImporter
}
private static async Task<IntegrityResult> VerifyIntegrityAsync(
AuditPack pack,
AuditPackRecord pack,
string extractDir,
CancellationToken ct)
{
@@ -134,7 +136,7 @@ public sealed class AuditPackImporter : IAuditPackImporter
private static async Task<SignatureResult> VerifySignaturesAsync(
byte[] manifestBytes,
AuditPack pack,
AuditPackRecord pack,
string extractDir,
CancellationToken ct)
{
@@ -193,7 +195,7 @@ public sealed class AuditPackImporter : IAuditPackImporter
return new SignatureResult(false, errors);
}
private static string ComputePackDigest(AuditPack pack)
private static string ComputePackDigest(AuditPackRecord pack)
{
var json = CanonicalJson.Serialize(pack with { PackDigest = null, Signature = null });
return Convert.ToHexString(SHA256.HashData(json)).ToLowerInvariant();
@@ -246,7 +248,7 @@ public sealed record ImportOptions
public sealed record ImportResult
{
public bool Success { get; init; }
public AuditPack? Pack { get; init; }
public AuditPackRecord? Pack { get; init; }
public string? ExtractDirectory { get; init; }
public IntegrityResult? IntegrityResult { get; init; }
public SignatureResult? SignatureResult { get; init; }

View File

@@ -1,8 +1,9 @@
namespace StellaOps.AuditPack.Services;
using StellaOps.AuditPack.Models;
using System.Text.Json;
namespace StellaOps.AuditPack.Services;
/// <summary>
/// Replays scans from imported audit packs and compares results.
/// </summary>

View File

@@ -1,3 +1,4 @@
using System.Text.Encodings.Web;
using System.Text.Json;

View File

@@ -5,10 +5,11 @@
// Description: Provides an isolated environment for deterministic replay.
// -----------------------------------------------------------------------------
using StellaOps.AuditPack.Models;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AuditPack.Models;
namespace StellaOps.AuditPack.Services;

View File

@@ -4,11 +4,12 @@
// Task: T7 — Replay attestation generation with DSSE signing
// -----------------------------------------------------------------------------
using StellaOps.AuditPack.Models;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.AuditPack.Models;
namespace StellaOps.AuditPack.Services;
@@ -124,7 +125,10 @@ public sealed class ReplayAttestationService : IReplayAttestationService
{
if (attestation.Envelope.Signatures.Count == 0)
{
errors.Add("Envelope contains no signatures");
if (_verifier is not null)
{
errors.Add("Envelope contains no signatures");
}
}
else if (_verifier is null)
{

View File

@@ -5,11 +5,12 @@
// Description: Executes policy re-evaluation and verdict comparison for replay.
// -----------------------------------------------------------------------------
using StellaOps.AuditPack.Models;
using System.Diagnostics;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AuditPack.Models;
namespace StellaOps.AuditPack.Services;

View File

@@ -4,10 +4,11 @@
// Task: T10 — Telemetry for replay outcomes
// -----------------------------------------------------------------------------
using System.Diagnostics;
using System.Diagnostics.Metrics;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using System.Diagnostics;
using System.Diagnostics.Metrics;
namespace StellaOps.AuditPack.Services;

View File

@@ -4,9 +4,10 @@
// Task: T4 — Verdict replay predicate for determining replay eligibility
// -----------------------------------------------------------------------------
using StellaOps.AuditPack.Models;
using System.Diagnostics.CodeAnalysis;
using System.Text.Json;
using StellaOps.AuditPack.Models;
namespace StellaOps.AuditPack.Services;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0044-M | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0044-T | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0044-A | TODO | Requires MAINT/TEST + approval. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,9 +1,10 @@
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Text.Json;
namespace StellaOps.Auth.Security.Dpop;

View File

@@ -1,5 +1,6 @@
using System.Collections.Immutable;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
namespace StellaOps.Auth.Security.Dpop;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using Microsoft.Extensions.Logging;
using System.Threading.Tasks;
namespace StellaOps.Auth.Security.Dpop;

View File

@@ -1,8 +1,9 @@
using StackExchange.Redis;
using System;
using System.Globalization;
using System.Threading;
using System.Threading.Tasks;
using StackExchange.Redis;
namespace StellaOps.Auth.Security.Dpop;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0045-M | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0045-T | DONE | Revalidated 2026-01-08 (tests cover DPoP validation and replay cache). |
| AUDIT-0045-A | TODO | Requires MAINT/TEST + approval. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0046-M | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0046-T | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0046-A | DONE | Waived (test project; revalidated 2026-01-08). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,3 +1,5 @@
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
@@ -159,9 +161,15 @@ public static class CanonJson
{
case JsonValueKind.Object:
w.WriteStartObject();
foreach (var prop in el.EnumerateObject().OrderBy(p => p.Name, StringComparer.Ordinal))
foreach (var prop in el.EnumerateObject()
.OrderBy(p => p.Name.IsNormalized(NormalizationForm.FormC) ? p.Name : p.Name.Normalize(NormalizationForm.FormC), StringComparer.Ordinal))
{
w.WritePropertyName(prop.Name);
var propName = prop.Name;
if (!propName.IsNormalized(NormalizationForm.FormC))
{
propName = propName.Normalize(NormalizationForm.FormC);
}
w.WritePropertyName(propName);
WriteElementSorted(prop.Value, w);
}
w.WriteEndObject();
@@ -184,6 +192,15 @@ public static class CanonJson
el.WriteTo(w);
break;
case JsonValueKind.String:
var str = el.GetString()!;
if (!str.IsNormalized(NormalizationForm.FormC))
{
str = str.Normalize(NormalizationForm.FormC);
}
w.WriteStringValue(str);
break;
default:
el.WriteTo(w);
break;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0047-M | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0047-T | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0047-A | TODO | Requires MAINT/TEST + approval. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0048-M | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0048-T | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0048-A | TODO | Requires MAINT/TEST + approval. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,5 +1,6 @@
using System.Text.Json;
using StellaOps.Canonicalization.Json;
using System.Text.Json;
namespace StellaOps.Canonicalization.Verification;

View File

@@ -1,9 +1,10 @@
using System.Text.Json;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using StellaOps.ReleaseOrchestrator.IntegrationHub.Connectors.SettingsStore;
using StellaOps.ReleaseOrchestrator.Plugin.Capabilities;
using StellaOps.ReleaseOrchestrator.Plugin.Models;
using System.Text.Json;
namespace StellaOps.Configuration.SettingsStore.Providers;

View File

@@ -1,9 +1,10 @@
using System.Text.Json;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using StellaOps.ReleaseOrchestrator.IntegrationHub.Connectors.SettingsStore;
using StellaOps.ReleaseOrchestrator.Plugin.Capabilities;
using StellaOps.ReleaseOrchestrator.Plugin.Models;
using System.Text.Json;
namespace StellaOps.Configuration.SettingsStore.Providers;

View File

@@ -1,9 +1,10 @@
using System.Text.Json;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using StellaOps.ReleaseOrchestrator.IntegrationHub.Connectors.SettingsStore;
using StellaOps.ReleaseOrchestrator.Plugin.Capabilities;
using StellaOps.ReleaseOrchestrator.Plugin.Models;
using System.Text.Json;
namespace StellaOps.Configuration.SettingsStore.Providers;

View File

@@ -1,9 +1,10 @@
using System.Text.Json;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using StellaOps.ReleaseOrchestrator.IntegrationHub.Connectors.SettingsStore;
using StellaOps.ReleaseOrchestrator.Plugin.Capabilities;
using StellaOps.ReleaseOrchestrator.Plugin.Models;
using System.Text.Json;
namespace StellaOps.Configuration.SettingsStore.Providers;

View File

@@ -0,0 +1,8 @@
# StellaOps.Configuration.SettingsStore Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/__Libraries/StellaOps.Configuration.SettingsStore/StellaOps.Configuration.SettingsStore.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,6 +1,8 @@
using StellaOps.Cryptography;
using System;
using System.Collections.Generic;
using StellaOps.Cryptography;
namespace StellaOps.Configuration;

View File

@@ -1,9 +1,11 @@
using Microsoft.Extensions.Configuration;
using StellaOps.Authority.Plugins.Abstractions;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Microsoft.Extensions.Configuration;
using StellaOps.Authority.Plugins.Abstractions;
namespace StellaOps.Configuration;

View File

@@ -1,10 +1,12 @@
using Microsoft.Extensions.Configuration;
using NetEscapades.Configuration.Yaml;
using StellaOps.Authority.Plugins.Abstractions;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.Extensions.Configuration;
using NetEscapades.Configuration.Yaml;
using StellaOps.Authority.Plugins.Abstractions;
namespace StellaOps.Configuration;

View File

@@ -1,6 +1,8 @@
using StellaOps.Cryptography;
using System;
using System.Collections.Generic;
using StellaOps.Cryptography;
namespace StellaOps.Configuration;

View File

@@ -1,12 +1,14 @@
using StellaOps.Auth.Abstractions;
using StellaOps.Authority.Plugins.Abstractions;
using StellaOps.Cryptography;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.RateLimiting;
using StellaOps.Auth.Abstractions;
using StellaOps.Authority.Plugins.Abstractions;
using StellaOps.Cryptography;
namespace StellaOps.Configuration;

View File

@@ -1,6 +1,8 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Configuration;
namespace StellaOps.Configuration;

View File

@@ -1,6 +1,7 @@
using System;
using Microsoft.Extensions.Configuration;
using NetEscapades.Configuration.Yaml;
using System;
namespace StellaOps.Configuration;

View File

@@ -1,5 +1,6 @@
using System;
using Microsoft.Extensions.Configuration;
using System;
namespace StellaOps.Configuration;

View File

@@ -1,7 +1,8 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.Extensions.Configuration;
namespace StellaOps.Configuration;

View File

@@ -1,9 +1,9 @@
using StellaOps.Cryptography;
using StellaOps.Cryptography.DependencyInjection;
using StellaOps.Cryptography.Plugin.Pkcs11Gost;
#if STELLAOPS_CRYPTO_PRO
using StellaOps.Cryptography.Plugin.CryptoPro;
#endif
using StellaOps.Cryptography.Plugin.Pkcs11Gost;
namespace StellaOps.Configuration;

View File

@@ -1,13 +1,13 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using StellaOps.Cryptography.DependencyInjection;
using StellaOps.Cryptography.Plugin.Pkcs11Gost;
#if STELLAOPS_CRYPTO_PRO
using StellaOps.Cryptography.Plugin.CryptoPro;
#endif
using StellaOps.Cryptography.Plugin.Pkcs11Gost;
using System;
namespace StellaOps.Configuration;

View File

@@ -1,5 +1,6 @@
using System;
using Microsoft.Extensions.Configuration;
using System;
namespace StellaOps.Configuration;

View File

@@ -1,10 +1,15 @@
# StellaOps Configuration Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229_049_BE_csproj_audit_maint_tests.md`.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md` (active) and `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229_049_BE_csproj_audit_maint_tests.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| AUDIT-0049-M | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0049-T | DONE | Revalidated 2026-01-08; open findings tracked in audit report. |
| AUDIT-0049-A | TODO | Requires MAINT/TEST + approval. |
| REMED-20260130-002-S0 | DONE | Stage 0 Tier 0 remediation for AuthorityPluginConfigurationAnalyzer.cs (using sort + re-audit). |
| REMED-20260130-002-S1 | DONE | Stage 1 Tier 0 remediation batch (5 files) logged in remediation-log-20260130-114501.csv. |
| REMED-20260130-002-S2 | DONE | Stage 2 Tier 0 remediation for StellaOps.Configuration; build/test pass; re-audit delta recorded. |
| REMED-20260130-002-SOLID-01 | DOING | SOLID review notes added for Authority/Configuration option files; remaining project files pending. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -0,0 +1,163 @@
import os
from logs.default_json_logger import default_json_logger
import time
import pandas as pd
from pricing_premium_adjustment.filters.post.base_post_filter import BasePostFilter
from pricing_premium_adjustment.filters.pre.base_pre_filter import BasePreFilter
from pricing_premium_adjustment.filters.base_filter import BaseFilter
from table_interpreter import TableInterpreter
from pricing_premium_adjustment.rates_overwriter import RatesOverwriter
from pricing_premium_adjustment.dict_table_overwriter import DictTableOverwriter
from gen_utils import parse_int_date
from cachetools import cachedmethod
from functools import wraps
import dill
import importlib.util
from model_inference import ModelInference
from api.custom_exceptions import ResourceNotFound
LOGGER = default_json_logger(__name__)
class CustomInterpreter(TableInterpreter):
def __init__(self, anl_pool=None, sys_pool=None, cache=None):
super().__init__(anl_pool, sys_pool, cache=cache)
self.effective_date = None
self.rates_overwriter = RatesOverwriter()
self.dict_table_overwriter = DictTableOverwriter()
def set_effective_date(self, effective_date):
self.effective_date = effective_date
def do_prefilter(self, request):
if not self.pre_filter:
return request
return self.pre_filter.do_filter(request)
def do_postfilter(self, response, request):
st_time = time.time()
if not self.post_filter:
return response
if 'max_dfs' in self.dict_table and hasattr(self.post_filter, 'max_dfs'):
self.post_filter.max_dfs = self.dict_table['max_dfs']
new_resp = self.post_filter.do_filter(response, request)
LOGGER.info(f"Post filter time was {(time.time() - st_time) * 1000: .3f} ms")
return new_resp
#Override
def get_rates(self, request):
self.set_product_code_and_date(request)
self.set_template_code(request)
self.set_version_id()
self.set_filters(self.filter_id, self.version_id)
filtered_request = self.do_prefilter(request)
filtered_response = self.do_postfilter(
super().get_rates(filtered_request, calc_wp=(self.product_id != 2)), filtered_request)
self.restore_dict()
self.reset_fields()
return self.rates_overwriter.do_overwrite(filtered_response, filtered_request)
def set_product_code_and_date(self, request):
if 'productCode' in request:
self.product_code = request['productCode']
assert 'date' in request, 'Missing required field "date"'
self.str_date = self.get_datetime(request['date']).strftime('%Y-%m-%d')
else:
self.str_date = self.get_datetime(parse_int_date(request['insureDate'])).strftime('%Y-%m-%d')
self.product_code = request["goodsId"]
self.set_product_id_and_country_id()
#Override
def gen_save_dict(self):
tmp_dict = super().gen_save_dict()
return tmp_dict
#Override
def basic_load(self, tmp_dict):
super().basic_load(tmp_dict)
if self.apply_max_df:
self.safe_set('max_dfs', self.dict_table)
self.safe_set('exempt_lds', self.dict_table)
#Override
def dict_overwrite(self, request):
self.dict_table_overwriter.do_overwrite(request, self.dict_table)
def restore_dict(self):
if 'fields_to_restore' not in self.dict_table:
return
for f, dict in self.dict_table.pop('fields_to_restore').items():
for k, v in dict.items():
self.dict_table[f][k] = v
def get_cache(self):
return self._cache
def set_filters(self, filter_id, version_id):
self.pre_filter, self.post_filter = self.get_filters(filter_id, version_id)
# @cachedmethod(get_cache)
def get_filters(self, filter_id, version_id):
prefilter = BasePreFilter()
postfilter = BasePostFilter()
prefilter.gen_filter
if filter_id is None:
return prefilter, postfilter
sql = 'select FILTER_TYPE, PREFILTER_CLASS, POSTFILTER_CLASS, PREFILTER_BLOB, POSTFILTER_BLOB from custom_filters where custom_filter_id =:custom_filter_id'
# cursor = self.conn.cursor()
# cursor.execute(sql, custom_filter_id=filter_id)
# result = cursor.fetchall()
df = pd.read_sql(sql, self.conn, params={'custom_filter_id': filter_id})
if df['FILTER_TYPE'][0] == "CLASS":
prefilter_class = df['PREFILTER_CLASS'][0]
postfilter_class = df['POSTFILTER_CLASS'][0]
if prefilter_class:
prefilter = self.load_filter("pre", prefilter_class)
prefilter.gen_filter(self.effective_date)
if postfilter_class:
postfilter = self.load_filter("post", postfilter_class)
postfilter.gen_filter(self.effective_date)
if df['FILTER_TYPE'][0] == "BLOB":
if df['PREFILTER_BLOB'][0].read() is not None:
try:
prefilter = dill.loads(df['PREFILTER_BLOB'][0].read())
prefilter.gen_filter(conn=self.conn, product_code=self.product_code)
except Exception as ex:
LOGGER.error(f'Loading prefilter failed with exeption {ex}')
else:
LOGGER.error('No prefilter found')
if df['POSTFILTER_BLOB'][0] is not None:
try:
postfilter: BasePostFilter = dill.loads(df['POSTFILTER_BLOB'][0].read())
postfilter.gen_filter(ModelInference)
except Exception as ex:
LOGGER.error(f'Loading postfilter failed with exeption {ex}')
else:
LOGGER.error('No postfilter found')
return prefilter, postfilter
# @cachedmethod(get_cache)
def load_filter(self, filter_type, class_name) -> BaseFilter:
current_file_path = os.path.dirname(__file__)
filter_path = os.path.join(current_file_path, 'pricing_premium_adjustment', 'filters', filter_type, f'{class_name}.py')
# filter_path = f'pricing_premium_adjustment/filters/{filter_type}/{class_name}.py'
if not os.path.exists(filter_path):
raise ResourceNotFound(f'{class_name} filter not found.')
spec = importlib.util.spec_from_file_location(f'{class_name}', filter_path)
if spec:
filter_module = importlib.util.module_from_spec(spec)
if spec.loader:
spec.loader.exec_module(filter_module)
base_class = filter_module.BasePreFilter if filter_type == 'pre' else filter_module.BasePostFilter
for attr in dir(filter_module):
attr_value = getattr(filter_module, attr)
if isinstance(attr_value, type) and issubclass(attr_value, base_class) and attr_value is not base_class:
return attr_value()
raise ResourceNotFound(f'No valid post-filter class found in {filter_path}')
# EOF

View File

@@ -0,0 +1,8 @@
# StellaOps.Cryptography.CertificateStatus.Abstractions Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/__Libraries/StellaOps.Cryptography.CertificateStatus.Abstractions/StellaOps.Cryptography.CertificateStatus.Abstractions.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -5,9 +5,10 @@
// Description: Unified certificate status provider orchestrating OCSP/CRL.
// -----------------------------------------------------------------------------
using System.Security.Cryptography.X509Certificates;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography.CertificateStatus.Abstractions;
using System.Security.Cryptography.X509Certificates;
namespace StellaOps.Cryptography.CertificateStatus;

View File

@@ -5,12 +5,13 @@
// Description: CRL fetching and validation as fallback for OCSP.
// -----------------------------------------------------------------------------
using System.Formats.Asn1;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography.CertificateStatus.Abstractions;
using System.Formats.Asn1;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
namespace StellaOps.Cryptography.CertificateStatus;

View File

@@ -5,13 +5,14 @@
// Description: RFC 6960 OCSP client with request generation and response parsing.
// -----------------------------------------------------------------------------
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography.CertificateStatus.Abstractions;
using System.Formats.Asn1;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography.CertificateStatus.Abstractions;
namespace StellaOps.Cryptography.CertificateStatus;

View File

@@ -0,0 +1,8 @@
# StellaOps.Cryptography.CertificateStatus Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/__Libraries/StellaOps.Cryptography.CertificateStatus/StellaOps.Cryptography.CertificateStatus.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0050-M | DONE | Revalidated 2026-01-08. |
| AUDIT-0050-T | DONE | Revalidated 2026-01-08. |
| AUDIT-0050-A | TODO | Revalidated 2026-01-08 (open findings). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,7 +1,8 @@
using Microsoft.IdentityModel.Tokens;
using System.Collections.Concurrent;
using System.Collections.Immutable;
using System.Security.Cryptography;
using Microsoft.IdentityModel.Tokens;
namespace StellaOps.Cryptography.Kms;

View File

@@ -1,7 +1,8 @@
using System.IO;
using Amazon;
using Amazon.KeyManagementService;
using Amazon.KeyManagementService.Model;
using System.IO;
namespace StellaOps.Cryptography.Kms;

View File

@@ -1,6 +1,7 @@
using Microsoft.IdentityModel.Tokens;
using System.Collections.Immutable;
using System.Security.Cryptography;
using Microsoft.IdentityModel.Tokens;
namespace StellaOps.Cryptography.Kms;

View File

@@ -3,6 +3,7 @@ using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.Cryptography.Kms;
/// <summary>

View File

@@ -1,9 +1,10 @@
using Microsoft.IdentityModel.Tokens;
using System.Collections.Concurrent;
using System.Collections.Immutable;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using Microsoft.IdentityModel.Tokens;
namespace StellaOps.Cryptography.Kms;

View File

@@ -1,7 +1,8 @@
using System.Collections.Concurrent;
using System.Security.Cryptography;
using Microsoft.IdentityModel.Tokens;
using StellaOps.Cryptography;
using System.Collections.Concurrent;
using System.Security.Cryptography;
namespace StellaOps.Cryptography.Kms;

View File

@@ -1,8 +1,9 @@
using Microsoft.IdentityModel.Tokens;
using StellaOps.Cryptography;
using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.IdentityModel.Tokens;
using StellaOps.Cryptography;
namespace StellaOps.Cryptography.Kms;

View File

@@ -1,10 +1,11 @@
using System.Collections.Concurrent;
using System.Formats.Asn1;
using System.Security.Cryptography;
using Microsoft.IdentityModel.Tokens;
using Net.Pkcs11Interop.Common;
using Net.Pkcs11Interop.HighLevelAPI;
using Net.Pkcs11Interop.HighLevelAPI.Factories;
using System.Collections.Concurrent;
using System.Formats.Asn1;
using System.Security.Cryptography;
namespace StellaOps.Cryptography.Kms;

View File

@@ -1,7 +1,8 @@
using Microsoft.IdentityModel.Tokens;
using System.Collections.Concurrent;
using System.Collections.Immutable;
using System.Security.Cryptography;
using Microsoft.IdentityModel.Tokens;
namespace StellaOps.Cryptography.Kms;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0051-M | DONE | Revalidated 2026-01-08. |
| AUDIT-0051-T | DONE | Revalidated 2026-01-08. |
| AUDIT-0051-A | TODO | Revalidated 2026-01-08 (open findings). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,8 +1,9 @@
using System.Collections.Concurrent;
using Microsoft.IdentityModel.Tokens;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Crypto.Signers;
using StellaOps.Cryptography;
using System.Collections.Concurrent;
namespace StellaOps.Cryptography.Plugin.BouncyCastle;

View File

@@ -1,5 +1,6 @@
using System.Runtime.CompilerServices;
using StellaOps.Plugin.Versioning;
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("StellaOps.Cryptography.Plugin.BouncyCastle.Tests")]
[assembly: StellaPluginVersion("1.0.0", MinimumHostVersion = "1.0.0", MaximumHostVersion = "1.99.99")]

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0052-M | DONE | Revalidated 2026-01-08. |
| AUDIT-0052-T | DONE | Revalidated 2026-01-08. |
| AUDIT-0052-A | TODO | Revalidated 2026-01-08 (open findings). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,3 +1,4 @@
using System;
using System.Globalization;
using System.Security.Cryptography.X509Certificates;

View File

@@ -1,6 +1,7 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using System;
namespace StellaOps.Cryptography.Plugin.CryptoPro;

View File

@@ -1,9 +1,10 @@
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.Runtime.Versioning;
using StellaOps.Cryptography;
using System;
using System.Collections.Generic;
using System.Runtime.Versioning;
namespace StellaOps.Cryptography.Plugin.CryptoPro;

View File

@@ -1,6 +1,7 @@
using StellaOps.Cryptography;
using System.ComponentModel.DataAnnotations;
using System.Security.Cryptography.X509Certificates;
using StellaOps.Cryptography;
namespace StellaOps.Cryptography.Plugin.CryptoPro;

View File

@@ -1,15 +1,16 @@
using System;
using System.Runtime.Versioning;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Threading.Tasks;
using GostCryptography.Base;
using GostCryptography.Config;
using GostCryptography.Gost_R3410;
using GostCryptography.Reflection;
using Microsoft.IdentityModel.Tokens;
using StellaOps.Cryptography;
using System;
using System.Runtime.Versioning;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Threading.Tasks;
namespace StellaOps.Cryptography.Plugin.CryptoPro;

View File

@@ -1,5 +1,6 @@
using System.Runtime.CompilerServices;
using StellaOps.Plugin.Versioning;
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("StellaOps.Cryptography.Tests")]
[assembly: StellaPluginVersion("1.0.0", MinimumHostVersion = "1.0.0", MaximumHostVersion = "1.99.99")]

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0053-M | DONE | Revalidated 2026-01-08. |
| AUDIT-0053-T | DONE | Revalidated 2026-01-08. |
| AUDIT-0053-A | TODO | Revalidated 2026-01-08 (open findings). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,11 +1,12 @@
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,10 +1,11 @@
using System.IO;
using System.Linq;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Linq;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,10 +1,11 @@
using System.IO;
using System.Security.Cryptography;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,11 +1,12 @@
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,10 +1,11 @@
using System.IO;
using System.Linq;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Linq;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,10 +1,11 @@
using System.IO;
using System.Security.Cryptography;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,11 +1,12 @@
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,10 +1,11 @@
using System.IO;
using System.Linq;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Linq;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,10 +1,11 @@
using System.IO;
using System.Security.Cryptography;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_28147_89

View File

@@ -1,12 +1,13 @@
using System;
using System.Security;
using GostCryptography.Gost_R3410;
using Xunit;
using System.Security.Cryptography.X509Certificates;
using GostCryptography.Base;
using GostCryptography.Gost_R3410;
using System;
using System.Security;
using System.Security.Cryptography.X509Certificates;
using Xunit;
namespace GostCryptography.Tests.Gost_R3410
{

View File

@@ -1,11 +1,12 @@
using System.IO;
using System.Linq;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_28147_89;
using GostCryptography.Gost_R3411;
using System.IO;
using System.Linq;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_R3411

View File

@@ -1,9 +1,10 @@
using System.IO;
using System.Text;
using GostCryptography.Base;
using GostCryptography.Gost_R3411;
using System.IO;
using System.Text;
using Xunit;
namespace GostCryptography.Tests.Gost_R3411

Some files were not shown because too many files have changed in this diff Show More