public static IEnumerable <byte> GenerateKeyData( long lengthBytes, int seed, int gridWidth, int gridHeight, int generationsPerBlock) { CAGrid grid = new CAGrid(); grid.BuildFromPseudoRandomNumbers(seed, gridWidth, gridHeight); long written = 0; long remaining = lengthBytes; while (written < lengthBytes) { for (int i = 0; i < generationsPerBlock; i++) { grid.RunFredkinRule(); } byte[] buffer = grid.GetBytes(); long toWrite = buffer.Length; if (remaining < buffer.Length) { toWrite = remaining; } for (int i = 0; i < toWrite; i++) { yield return(buffer[i]); } written += toWrite; remaining = lengthBytes - written; Debug.Print("Written:" + written + " bytes, remaining: " + remaining); OnProgress(lengthBytes, written, remaining); } }
public static void GenerateRandomFile( Stream outputStream, int lengthBytes, int seed, int gridWidth, int gridHeight, int generationsPerBlock) { CAGrid grid = new CAGrid(); grid.BuildFromPseudoRandomNumbers(seed, gridWidth, gridHeight); int written = 0; int remaining = lengthBytes; while (written < lengthBytes) { for (int i = 0; i < generationsPerBlock; i++) { grid.RunFredkinRule(); } byte[] buffer = grid.GetBytes(); int toWrite = buffer.Length; if (remaining < buffer.Length) { toWrite = remaining; } outputStream.Write(buffer, 0, toWrite); written += toWrite; remaining = lengthBytes - written; Debug.Print("Written:" + written + " bytes, remaining: " + remaining); } }
public String EncryptString(String toEncrypt) { return(SimpleBinaryEncoder.Encode(toEncrypt, _caGrid.GetBytes(toEncrypt.Length))); }