summaryrefslogtreecommitdiff
path: root/src/crypto-types-random_source.adb
blob: 5fd4dbb985bc79f9259ae26309d3d86fee1b39b9 (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
51
52
53
54
55
package body Crypto.Types.Random_Source is
   
   procedure Read(This : in out Random_Source; Byte_Array : out Bytes) is
   begin
      for I in Byte_Array'Range loop
	 Read(Random_Source'class(This),Byte_Array(I));
      end loop;
   end Read;
   
   ----------------------------------------------------------------------
   
   procedure Read(This : in out Random_Source; B : out B_Block128) is 
   begin
      for I in B'Range loop
	 Read(Random_Source'class(This),B(I));
      end loop;
   end Read;
   
   ----------------------------------------------------------------------
   
   procedure Read(This : in out Random_Source; W : out Word) is
      B : Byte_Word;
   begin
      This.Read(Bytes(B));
      W := To_Word(B);
   end Read;	 
   
   ----------------------------------------------------------------------
   
   procedure Read(This : in out Random_Source; Word_Array : out Words) is
   begin
      for I in Word_Array'Range loop
	 This.Read(Word_Array(I));
      end loop;
   end Read;
   
   ----------------------------------------------------------------------
   
  procedure Read(This : in out Random_Source; D : out DWord) is
      B : Byte_DWord;
   begin
      This.Read(Bytes(B));
      D := To_DWord(B);
   end Read;	 
   
   ----------------------------------------------------------------------
   
   procedure Read(This : in out Random_Source; DWord_Array : out DWords) is
   begin
      for I in DWord_Array'Range loop
	 This.Read(DWord_Array(I));
      end loop;
   end Read;
   
end Crypto.Types.Random_Source;