source: branches/eraser6/DefaultPlugins/ISAAC.cs @ 185

Revision 185, 782 bytes checked in by lowjoel, 7 years ago (diff)

Added the GUID field to the PRNG class since it too is plugin based.

Line 
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5using Eraser.Manager;
6
7namespace Eraser.DefaultPlugins
8{
9    /// <summary>
10    /// ISAAC CSPRNG.
11    /// </summary>
12    public class ISAAC : PRNG
13    {
14        public override string Name
15        {
16            get { return "ISAAC CSPRNG"; }
17        }
18
19        public override Guid GUID
20        {
21            get { return new Guid("{CB7DE02E-8067-4270-B115-70AB49F23BB7}"); }
22        }
23
24        public override void NextBytes(byte[] buffer)
25        {
26            //Generate 256 ints.
27            lock (isaac)
28            {
29                for (uint intsGenerated = 0; intsGenerated * sizeof(int) < buffer.Length * sizeof(byte);
30                    intsGenerated += Rand.ISAAC.SIZE)
31                {
32                    isaac.Isaac();
33                    isaac.rsl.CopyTo(buffer, 0);
34                }
35            }
36        }
37
38        private Rand.ISAAC isaac = new Rand.ISAAC();
39    }
40}
Note: See TracBrowser for help on using the repository browser.