summaryrefslogtreecommitdiff
path: root/src/crypto-types-random_source-file.ads
blob: 8a3e960a41659e5de6ce90d36f0bd73c68e3fb70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
with Ada.Streams.Stream_IO;
with Ada.Strings.Unbounded;

package Crypto.Types.Random_Source.File is
   package Rnd renames Crypto.Types.Random_Source;

   type Random_Source_File is new Rnd.Random_Source with private;
   type Random_Source_File_Access is access  Random_Source_File;

   Overriding
   procedure Finalize(This : in out  Random_Source_File);

   Overriding
   procedure Initialize(This : in out Random_Source_File);

   procedure Initialize(This : in out Random_Source_File;
			File_Path : in String);
   Overriding
   procedure Read(This : in out Random_Source_File; B : out Byte);

   Overriding
   procedure Read(This : in out Random_Source_File; Byte_Array : out Bytes);

   Overriding
   procedure Read(This : in out Random_Source_File; B : out B_Block128);

   Overriding
   procedure Read(This : in out Random_Source_File; W : out Word);

   Overriding
   Procedure Read(This : in out Random_Source_File; Word_Array : out Words);

   Overriding
   procedure Read(This : in out Random_Source_File; D : out DWord);

   Overriding
   procedure Read(This : in out Random_Source_File; DWord_Array : out DWords);
private
   type File_Access is access Ada.Streams.Stream_IO.File_Type;

   type Random_Source_File is new Rnd.Random_Source with
      record
	      Source_Path : Ada.Strings.Unbounded.Unbounded_String;
         Source_File : File_Access;
      end record;

   function Path_Starts_With(This : Random_Source_File; S : String)
      return Boolean;

end Crypto.Types.Random_Source.File;