コード例 #1
0
ファイル: Secure.cs プロジェクト: IPA-CyberLab/IPA-DN-Cores
        public ReadOnlyMemory <byte> GetBytes(int wantSize)
        {
            if (wantSize < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(wantSize));
            }
            if (wantSize == 0)
            {
                return(new byte[0]);
            }

            MemoryBuffer <byte> ret = new MemoryBuffer <byte>();

            while (true)
            {
                if (fifo.Length >= wantSize)
                {
                    return(fifo.DequeueContiguousSlow(wantSize));
                }

                var tmp = GenerateNextBlockInternal();

                fifo.Enqueue(tmp);
            }
        }