12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using System.IO;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Tls.Crypto;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Tls
- {
- // TODO Rewrite without MemoryStream
- public sealed class HandshakeMessageInput
- : MemoryStream
- {
- private readonly int m_offset;
- internal HandshakeMessageInput(byte[] buf, int offset, int length)
- #if PORTABLE || NETFX_CORE
- : base(buf, offset, length, false)
- #else
- : base(buf, offset, length, false, true)
- #endif
- {
- #if PORTABLE || NETFX_CORE
- this.m_offset = 0;
- #else
- this.m_offset = offset;
- #endif
- }
- public void UpdateHash(TlsHash hash)
- {
- Streams.WriteBufTo(this, new TlsHashSink(hash));
- }
- internal void UpdateHashPrefix(TlsHash hash, int bindersSize)
- {
- #if PORTABLE || NETFX_CORE
- byte[] buf = ToArray();
- int count = buf.Length;
- #else
- byte[] buf = GetBuffer();
- int count = (int)Length;
- #endif
- hash.Update(buf, m_offset, count - bindersSize);
- }
- internal void UpdateHashSuffix(TlsHash hash, int bindersSize)
- {
- #if PORTABLE || NETFX_CORE
- byte[] buf = ToArray();
- int count = buf.Length;
- #else
- byte[] buf = GetBuffer();
- int count = (int)Length;
- #endif
- hash.Update(buf, m_offset + count - bindersSize, bindersSize);
- }
- }
- }
- #pragma warning restore
- #endif
|