protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                if (_containerKey != null)
                {
                    _containerKey.Dispose();
                }

                if (_kdf != null)
                {
                    _kdf.Dispose();
                }

                if (_hmac != null)
                {
                    _hmac.Dispose();
                }
            }

            _disposed = true;
        }
        protected virtual void Dispose(bool disposing)
        {
            if (!disposed)
            {
                if (_containerKey != null)
                    _containerKey.Dispose();

                if (_kdf != null)
                    _kdf.Dispose();

                if (_hmac != null)
                    _hmac.Dispose();

                disposed = true;
            }
        }