using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Security.Cryptography.X509Certificates;
using System.Security;
namespace Intel.WebStorage
{
///
/// Verifies the remote server certificate used for authentication.
///
/// The certificate used to authenticate
/// One or more errors associated with the remote certificate.
/// bool, determines whether the specified certificate is accepted for authentication.
public delegate bool ServerCertificateValidationCallback(X509Certificate certificate,
System.Net.Security.SslPolicyErrors errors);
///
/// Represents various options for a Wsman connection
///
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("58A73241-12B8-4d6d-BA33-F8492A085E24")]
[ComVisible(true)]
public interface IWebStorageConnectionOptions
{
///
/// Gets or sets the amount of time in milliseconds connection will
/// wait for responses from the server
///
int TimeOut { get; set; }
///
/// Gets or sets the proxy Address
///
string ProxyAddress { get; set; }
///
/// Gets or sets the proxy user name
///
string ProxyUser { get; set; }
///
/// Gets or sets the proxy password
///
SecureString ProxyPassword { get; set; }
///
/// Gets or sets the client certificate for mutual authentication from the Windows Certificate Store
///
string ClientCertificateCommonName { get; set; }
///
/// The certificate to use for establishing the connection.
/// To set this property by providing a certificate name string only, use the ClientCertificateCommonName property.
///
X509Certificate2 ClientCertificate { get; set; }
///
/// Gets or sets the callback for custom validation by the client of the server certificate.
///
ServerCertificateValidationCallback ServerCertificateValidationCallback { get; set; }
} // interface
}// end namespace