68 lines
2.0 KiB
C#
68 lines
2.0 KiB
C#
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
|
#pragma warning disable
|
|
using System;
|
|
using System.Runtime.Serialization;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Tls
|
|
{
|
|
[Serializable]
|
|
public class TlsFatalAlert
|
|
: TlsException
|
|
{
|
|
private static string GetMessage(short alertDescription, string detailMessage)
|
|
{
|
|
string msg = Tls.AlertDescription.GetText(alertDescription);
|
|
if (null != detailMessage)
|
|
{
|
|
msg += "; " + detailMessage;
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
protected readonly byte m_alertDescription;
|
|
|
|
public TlsFatalAlert(short alertDescription)
|
|
: this(alertDescription, null, null)
|
|
{
|
|
}
|
|
|
|
public TlsFatalAlert(short alertDescription, string detailMessage)
|
|
: this(alertDescription, detailMessage, null)
|
|
{
|
|
}
|
|
|
|
public TlsFatalAlert(short alertDescription, Exception alertCause)
|
|
: this(alertDescription, null, alertCause)
|
|
{
|
|
}
|
|
|
|
public TlsFatalAlert(short alertDescription, string detailMessage, Exception alertCause)
|
|
: base(GetMessage(alertDescription, detailMessage), alertCause)
|
|
{
|
|
if (!TlsUtilities.IsValidUint8(alertDescription))
|
|
throw new ArgumentOutOfRangeException(nameof(alertDescription));
|
|
|
|
m_alertDescription = (byte)alertDescription;
|
|
}
|
|
|
|
protected TlsFatalAlert(SerializationInfo info, StreamingContext context)
|
|
: base(info, context)
|
|
{
|
|
m_alertDescription = info.GetByte("alertDescription");
|
|
}
|
|
|
|
public override void GetObjectData(SerializationInfo info, StreamingContext context)
|
|
{
|
|
base.GetObjectData(info, context);
|
|
info.AddValue("alertDescription", m_alertDescription);
|
|
}
|
|
|
|
public virtual short AlertDescription
|
|
{
|
|
get { return m_alertDescription; }
|
|
}
|
|
}
|
|
}
|
|
#pragma warning restore
|
|
#endif
|