in src/Testing/Emulator/Policies/AuthenticationCertificateHandler.cs [20:48]
protected override void Handle(GatewayContext context, CertificateAuthenticationConfig config)
{
var certificateFromCallback = CertificateSetup.Find(tuple => tuple.Item1(context, config))?.Item2;
if (certificateFromCallback is not null)
{
context.Request.Certificate = certificateFromCallback;
return;
}
var certificateStore = context.CertificateStore;
if (!string.IsNullOrWhiteSpace(config.Thumbprint))
{
context.Request.Certificate = certificateStore.ByThumbprint.GetValueOrDefault(config.Thumbprint);
}
else if (!string.IsNullOrWhiteSpace(config.CertificateId))
{
context.Request.Certificate = certificateStore.ById.GetValueOrDefault(config.CertificateId);
}
else if (config.Body is not null)
{
context.Request.Certificate = new X509Certificate2(config.Body, config.Password);
}
else
{
throw new InvalidOperationException(
"AuthenticationCertificatePolicy doesn't have certificate source defined");
}
}