This commit is contained in:
2025-09-28 16:43:36 +09:00
parent 584e43bfa9
commit 3a2325aef8
2 changed files with 21 additions and 5 deletions

View File

@ -3,6 +3,7 @@ using Hcs.Broker.Api;
using Hcs.Broker.Internal;
using Hcs.Broker.Logger;
using Hcs.Broker.MessageCapturer;
using System.Security;
using System.Security.Cryptography.X509Certificates;
namespace Hcs.Broker
@ -65,15 +66,25 @@ namespace Hcs.Broker
/// <summary>
/// Сертификат клиента для применения при формировании запросов
/// </summary>
internal CpX509Certificate2 Certificate { get; set; }
internal CpX509Certificate2 Certificate { get; private set; }
public void SetSigningCertificate(string serialNumber)
internal SecureString CertificatePin { get; private set; }
public void SetSigningCertificate(string serialNumber, string? pin = null)
{
using var store = new CpX509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var cert = store.Certificates.Find(X509FindType.FindBySerialNumber, serialNumber, false)[0];
Certificate = cert ?? throw new ArgumentNullException("Certificate not found");
pin ??= Constants.DEFAULT_CERTIFICATE_PIN;
CertificatePin = new SecureString();
foreach (var character in pin)
{
CertificatePin.AppendChar(character);
}
}
internal string ComposeEndpointUri(string endpointName)