1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
- {
- /**
- * Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
- */
- public class NonMemoableDigest
- : IDigest
- {
- protected readonly IDigest mBaseDigest;
- /**
- * Base constructor.
- *
- * @param baseDigest underlying digest to use.
- * @exception IllegalArgumentException if baseDigest is null
- */
- public NonMemoableDigest(IDigest baseDigest)
- {
- if (baseDigest == null)
- throw new ArgumentNullException("baseDigest");
- this.mBaseDigest = baseDigest;
- }
- public virtual string AlgorithmName
- {
- get { return mBaseDigest.AlgorithmName; }
- }
- public virtual int GetDigestSize()
- {
- return mBaseDigest.GetDigestSize();
- }
- public virtual void Update(byte input)
- {
- mBaseDigest.Update(input);
- }
- public virtual void BlockUpdate(byte[] input, int inOff, int len)
- {
- mBaseDigest.BlockUpdate(input, inOff, len);
- }
- #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER || UNITY_2021_2_OR_NEWER
- public virtual void BlockUpdate(ReadOnlySpan<byte> input)
- {
- mBaseDigest.BlockUpdate(input);
- }
- #endif
- public virtual int DoFinal(byte[] output, int outOff)
- {
- return mBaseDigest.DoFinal(output, outOff);
- }
- #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER || UNITY_2021_2_OR_NEWER
- public virtual int DoFinal(Span<byte> output)
- {
- return mBaseDigest.DoFinal(output);
- }
- #endif
- public virtual void Reset()
- {
- mBaseDigest.Reset();
- }
- public virtual int GetByteLength()
- {
- return mBaseDigest.GetByteLength();
- }
- }
- }
- #pragma warning restore
- #endif
|