Pass PIN
This commit is contained in:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user