ISocketHandlerTLSConfiguration.cs

using System.Security.Authentication;
 
namespace GenXdev.AsyncSockets.Configuration
{
    public interface ISocketHandlerTLSConfiguration
    {
        /// <summary>
        /// Provides a uniquename by which certificates using this configuration will be cached
        /// </summary>
        string UniqueConfigurationName { get; set; }
 
        /// <summary>
        /// Determines when to start TLS
        /// </summary>
        SocketHandlerTLSActivationOptions TLS_ActivationOptions { get; }
 
        /// <summary>
        /// Determines how to obtain the server certificate for TLS usage
        /// </summary>
        SocketHandlerTLSCertificateUsage TLS_CertificateUsage { get; }
 
        /// <summary>
        /// Which SSL/TLS protocols to support
        /// </summary>
        SslProtocols TLS_EnabledProtocols { get; }
 
        /// <summary>
        /// The list of hostnames for auto generated (if enabled) server certificate
        /// </summary>
        string[] TLS_AdditionalHostNames { get; }
         
        /// <summary>
        /// The full PFX filepath to the load/store the certificate-authority certificate from
        /// This file must contain both public and private keys
        /// </summary>
        string TLS_CACertificate_PfxFilename { get; }
 
        /// <summary>
        /// The password for the PFX file, or null if none
        /// </summary>
        string TLS_CACertificate_Password { get; }
 
        /// <summary>
        /// The organisation name for the autogenerated (if enabled) CA Certificate
        /// </summary>
        string TLS_Default_CACertificate_AuthorityName { get; }
 
        /// <summary>
        /// The full PFX filepath to the load/store the server certificate from
        /// This file must contain both public and private keys
        /// </summary>
        string TLS_ServerCertificate_PfxFilename { get; }
 
        /// <summary>
        /// The password for the PFX file, or null if none
        /// </summary>
        string TLS_ServerCertificate_Password { get; }
    }
}