1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Tls
- {
- internal class TlsSessionImpl
- : TlsSession
- {
- private readonly byte[] m_sessionID;
- private readonly SessionParameters m_sessionParameters;
- private bool m_resumable;
- internal TlsSessionImpl(byte[] sessionID, SessionParameters sessionParameters)
- {
- if (sessionID == null)
- throw new ArgumentNullException("sessionID");
- if (sessionID.Length > 32)
- throw new ArgumentException("cannot be longer than 32 bytes", "sessionID");
- this.m_sessionID = Arrays.Clone(sessionID);
- this.m_sessionParameters = sessionParameters;
- this.m_resumable = sessionID.Length > 0 && null != sessionParameters;
- }
- public SessionParameters ExportSessionParameters()
- {
- lock (this)
- {
- return m_sessionParameters == null ? null : m_sessionParameters.Copy();
- }
- }
- public byte[] SessionID
- {
- get { lock (this) return m_sessionID; }
- }
- public void Invalidate()
- {
- lock (this)
- {
- this.m_resumable = false;
- }
- }
- public bool IsResumable
- {
- get { lock (this) return m_resumable; }
- }
- }
- }
- #pragma warning restore
- #endif
|