34 lines
1.2 KiB
C#
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));
|
|
}
|
|
}
|