Premiere commit - Omika

This commit is contained in:
2026-10-23 18:46:50 +02:00
commit 8ea76c1b24
2155 changed files with 984301 additions and 0 deletions
@@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>Omika.DiagnosticHashTool</AssemblyName>
<RootNamespace>Omika.DiagnosticHashTool</RootNamespace>
</PropertyGroup>
<!--
Outil hors-ligne de génération de hash PBKDF2-SHA256 pour le COMPTE BOOTSTRAP uniquement
(T23, §39). N'est PAS un endpoint Web anonyme. Utilisé sur une machine admin pour préparer
la valeur DiagnosticsAuth:Operators[].PasswordHash du premier déploiement.
-->
<ItemGroup>
<ProjectReference Include="..\..\src\Omika.Diagnostics.Core\Omika.Diagnostics.Core.csproj" />
</ItemGroup>
</Project>
+45
View File
@@ -0,0 +1,45 @@
using Omika.Diagnostics.Security;
// ============================================================
// Omika.DiagnosticHashTool — génération HORS LIGNE d'un hash
// PBKDF2-SHA256 pour le COMPTE BOOTSTRAP Diagnostics.Web (T23 §39).
//
// Usage :
// Omika.DiagnosticHashTool "<mot-de-passe-bootstrap>"
// Omika.DiagnosticHashTool --stdin (lit une ligne sur stdin)
//
// ⚠️ Réservé au bootstrap du PREMIER admin Production. Le mot de passe ne
// doit jamais être placé dans Git / le rapport / appsettings versionné.
// Seul le HASH est ensuite mis dans la configuration / le secret store.
// Préférez --stdin pour éviter de laisser le mot de passe dans
// l'historique du shell.
// ============================================================
string? password;
if (args.Length == 0)
{
Console.Error.WriteLine("Usage: Omika.DiagnosticHashTool \"<mot-de-passe>\" | --stdin");
return 2;
}
if (args[0] == "--stdin")
{
password = Console.ReadLine();
}
else
{
password = args[0];
}
if (string.IsNullOrWhiteSpace(password))
{
Console.Error.WriteLine("Mot de passe vide refusé.");
return 2;
}
string hash = DiagnosticPasswordHasher.Hash(password);
// Affichage du HASH uniquement (jamais le mot de passe).
Console.WriteLine(hash);
return 0;