From bf36bb6bbcf930633421752c0c5ec214f79fe275 Mon Sep 17 00:00:00 2001 From: Khwezi Mngoma Date: Sun, 14 Jun 2026 23:34:25 +0200 Subject: [PATCH] Hardened certificate loading --- LiteCharms.Features/Extensions/Api.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/LiteCharms.Features/Extensions/Api.cs b/LiteCharms.Features/Extensions/Api.cs index a283486..33851ad 100644 --- a/LiteCharms.Features/Extensions/Api.cs +++ b/LiteCharms.Features/Extensions/Api.cs @@ -54,7 +54,13 @@ public static class Api public static IServiceCollection AddLiteCharmsWebSecurity(this IServiceCollection services, IConfiguration configuration) { - var certificate = X509CertificateLoader.LoadPkcs12(Convert.FromBase64String(configuration["DataProtection:Certificate"]!), configuration["DataProtection:Password"]); + var certString = configuration["DataProtection:Certificate"] ?? configuration["DataProtection__Certificate"]; + var certPassword = configuration["DataProtection:Password"] ?? configuration["DataProtection__Password"]; + + if (string.IsNullOrEmpty(certString)) + throw new InvalidOperationException("Data Protection Certificate configuration is missing."); + + var certificate = X509CertificateLoader.LoadPkcs12(Convert.FromBase64String(certString), certPassword); services.AddDataProtection().PersistKeysToDbContext() .ProtectKeysWithCertificate(certificate)