Files
Omika/tests/Omika.Tests/Mobile/Local/EnrollmentVerificationKeyTests.cs
T
2026-10-23 18:46:50 +02:00

34 lines
1.2 KiB
C#

using System.Security.Cryptography;
using Omika.App.Local.Security;
using Omika.Core.Services.Mobile;
namespace Omika.Tests.Mobile.Local;
/// <summary>
/// Vérifie qu'une clé de démonstration (dont la clé privée a circulé dans les
/// journaux/outils de développement) n'est jamais approuvée dans le registre
/// Production final.
/// </summary>
public class EnrollmentVerificationKeyTests
{
[Fact]
public void CleDemo_Refusee_DansRegistreProduction()
{
// Le registre Production ne contient pas la clé de démonstration.
Assert.False(
EnrollmentVerificationKey.PublicKeysByKeyId.ContainsKey(EnrollmentVerificationKey.DemoKeyId));
// Un QR signé sous le kid de démonstration est donc refusé.
using var demoRsa = RSA.Create(3072);
string qr = EnrollmentQrCodec.Sign(
EnrollmentQrCodec.BuildPayloadJson(
EnrollmentVerificationKey.DemoKeyId,
"BATIK.01",
"LIC-001",
"https://licence.example.com"),
demoRsa.ToXmlString(true));
Assert.Null(EnrollmentQrCodec.Decode(qr, EnrollmentVerificationKey.PublicKeysByKeyId));
}
}