<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.0-beta.106" />

TlsProtocol

public abstract class TlsProtocol : TlsCloseable
protected const short ADS_MODE_0_N = 1

protected const short ADS_MODE_0_N_FIRSTONLY = 2

protected const short ADS_MODE_1_Nsub1 = 0

protected const short CS_CLIENT_CERTIFICATE = 15

protected const short CS_CLIENT_CERTIFICATE_VERIFY = 17

protected const short CS_CLIENT_END_OF_EARLY_DATA = 13

protected const short CS_CLIENT_FINISHED = 18

protected const short CS_CLIENT_HELLO = 1

protected const short CS_CLIENT_HELLO_RETRY = 3

protected const short CS_CLIENT_KEY_EXCHANGE = 16

protected const short CS_CLIENT_SUPPLEMENTAL_DATA = 14

protected const short CS_END = 21

protected const short CS_SERVER_CERTIFICATE = 7

protected const short CS_SERVER_CERTIFICATE_REQUEST = 11

protected const short CS_SERVER_CERTIFICATE_STATUS = 8

protected const short CS_SERVER_CERTIFICATE_VERIFY = 9

protected const short CS_SERVER_ENCRYPTED_EXTENSIONS = 5

protected const short CS_SERVER_FINISHED = 20

protected const short CS_SERVER_HELLO = 4

protected const short CS_SERVER_HELLO_DONE = 12

protected const short CS_SERVER_HELLO_RETRY_REQUEST = 2

protected const short CS_SERVER_KEY_EXCHANGE = 10

protected const short CS_SERVER_SESSION_TICKET = 19

protected const short CS_SERVER_SUPPLEMENTAL_DATA = 6

protected const short CS_START = 0

protected readonly bool m_blocking

protected IDictionary<int, byte[]> m_clientExtensions

protected short m_connectionState

protected bool m_expectSessionTicket

protected byte[] m_retryCookie

protected int m_retryGroup

protected bool m_selectedPsk13

protected IDictionary<int, byte[]> m_serverExtensions

public virtual int AppDataSplitMode { get; set; }

public virtual int ApplicationDataAvailable { get; }

public virtual int ApplicationDataLimit { get; }

protected abstract TlsContext Context { get; }

public virtual bool IsClosed { get; }

public virtual bool IsConnected { get; }

public virtual bool IsHandshaking { get; }

public virtual bool IsResumableHandshake { get; set; }

protected abstract TlsPeer Peer { get; }

public virtual Stream Stream { get; }

The secure bidirectional stream for this connection

protected TlsProtocol()

public TlsProtocol(Stream stream)

public TlsProtocol(Stream input, Stream output)

protected virtual void ApplyMaxFragmentLengthExtension(short maxFragmentLength)

protected virtual void BeginHandshake()

protected virtual void BlockForHandshake()

protected virtual void CancelSession()

protected virtual void CheckReceivedChangeCipherSpec(bool expected)

protected virtual void CleanupHandshake()

public virtual void Close()

protected virtual void CloseConnection()

public virtual void CloseInput()

Should be called in non-blocking mode when the input data reaches EOF.

protected virtual void CompleteHandshake()

protected virtual bool EstablishSession(TlsSession sessionToResume)

public virtual void Flush()

public virtual int GetAvailableInputBytes()

Gets the amount of received application data.

public virtual int GetAvailableOutputBytes()

Gets the amount of encrypted data available to be sent.

protected virtual void HandleAlertMessage(short alertLevel, short alertDescription)

protected virtual void HandleAlertWarningMessage(short alertDescription)

protected virtual void HandleChangeCipherSpecMessage()

protected virtual void HandleClose(bool user_canceled)

protected virtual void HandleException(short alertDescription, string message, Exception e)

protected virtual void HandleFailure()

protected abstract void HandleHandshakeMessage(short type, HandshakeMessageInput buf)

protected virtual void InvalidateSession()

protected bool IsLegacyConnectionState()

protected bool IsTlsV13ConnectionState()

public virtual void OfferInput(byte[] input)

Equivalent to OfferInput(input, 0, input.Length).

public virtual void OfferInput(byte[] input, int inputOff, int inputLen)

Offer input from an arbitrary source.

public virtual RecordPreview PreviewInputRecord(byte[] recordHeader)

public virtual int PreviewOutputRecord()

public virtual RecordPreview PreviewOutputRecord(int applicationDataSize)

protected virtual void Process13FinishedMessage(MemoryStream buf)

protected virtual void ProcessFinishedMessage(MemoryStream buf)

protected virtual short ProcessMaxFragmentLengthExtension(IDictionary<int, byte[]> clientExtensions, IDictionary<int, byte[]> serverExtensions, short alertDescription)

protected virtual void RaiseAlertFatal(short alertDescription, string message, Exception cause)

protected virtual void RaiseAlertWarning(short alertDescription, string message)

public virtual int ReadApplicationData(byte[] buffer, int offset, int count)

Read data from the network.

public virtual int ReadInput(byte[] buf, int off, int len)

Retrieves received application data.

public virtual int ReadOutput(byte[] buffer, int offset, int length)

Retrieves encrypted data to be sent.

protected virtual void Receive13KeyUpdate(MemoryStream buf)

protected virtual void RefuseRenegotiation()

public virtual void ResumeHandshake()

protected virtual RecordPreview SafePreviewRecordHeader(byte[] recordHeader)

protected virtual bool SafeReadFullRecord(byte[] input, int inputOff, int inputLen)

protected virtual void SafeReadRecord()

protected virtual void SafeWriteRecord(short type, byte[] buf, int offset, int len)

protected virtual void Send13CertificateMessage(Certificate certificate)

protected virtual void Send13CertificateVerifyMessage(DigitallySigned certificateVerify)

protected virtual void Send13FinishedMessage()

protected virtual void Send13KeyUpdate(bool updateRequested)

protected virtual void SendCertificateMessage(Certificate certificate, Stream endPointHash)

protected virtual void SendChangeCipherSpec()

protected virtual void SendChangeCipherSpecMessage()

protected virtual void SendFinishedMessage()

protected virtual void SendSupplementalDataMessage(IList<SupplementalDataEntry> supplementalData)

public virtual void WriteApplicationData(byte[] buffer, int offset, int count)

Write some application data.