internal void SendToRecordLayer(DtlsRecordLayer recordLayer)
        {
            byte[] buffer = GetBuffer();
            int    len    = (int)Length;

            recordLayer.Send(buffer, 0, len);
            Platform.Dispose(this);
        }
 internal static void ApplyMaxFragmentLengthExtension(DtlsRecordLayer recordLayer, short maxFragmentLength)
 {
     if (maxFragmentLength >= 0)
     {
         if (!MaxFragmentLength.IsValid((byte)maxFragmentLength))
         {
             throw new TlsFatalAlert(80);
         }
         int plaintextLimit = 1 << 8 + maxFragmentLength;
         recordLayer.SetPlaintextLimit(plaintextLimit);
     }
 }
 internal DtlsReliableHandshake(TlsContext context, DtlsRecordLayer transport)
 {
     mRecordLayer   = transport;
     mHandshakeHash = new DeferredHash();
     mHandshakeHash.Init(context);
 }
 internal DtlsTransport(DtlsRecordLayer recordLayer)
 {
     mRecordLayer = recordLayer;
 }